Sindbad~EG File Manager
from core import app
from flask import url_for, session, redirect,request,flash,jsonify
from datetime import datetime, date, time, timedelta
from functools import wraps
from core.library.auth import Auth
from core.library.helper import Helper
from core.model.UserModel import UserModel
# Flask View decorators
class RouteGroup:
def login_required(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
conf_key = request.view_args['conf_key']
# if user is not logged in, redirect to login page
if Auth.check():
return f(*args, **kwargs)
else:
if Helper.isAjax(request):
json = {'msg':'Your Session has been expired. Please <a href="'+ request.host_url + url_for('user.Login',conf_id=conf_id,conf_key=conf_key) +'">click here to login</a>','status' : 0,'data':''}
return jsonify(json)
else:
return redirect(url_for('user.Login',conf_id=conf_id,conf_key=conf_key))
return wrap
def profile_required(f):
@wraps(f)
def wrap(*args, **kwargs):
# if user is not logged in, redirect to login page
conf_id = request.view_args['conf_id']
society_id = Auth.get_conference(conf_id).get("society_id")
if Auth.get_user(society_id).get('profile_updated_at'):
return f(*args, **kwargs)
else:
flash('Please update your profile and click on the "Update" button to proceed further','warning')
conf_key = Auth.get_conference(conf_id).get('conf_key')
return redirect(url_for('user.Profile_update',conf_id=conf_id,conf_key=conf_key))
return wrap
def conf_required(f):
@wraps(f)
def wrap(*args, **kwargs):
# if user is not logged in, redirect to login page
conf_id = request.view_args['conf_id']
conf_key = request.view_args['conf_key']
conf_data = Auth.get_conference(conf_id)
if conf_data and conf_data["conf_key"] == conf_key :
return f(*args, **kwargs) # redirect to current url
else:
conf_data = UserModel().get_confe(conf_id,conf_key)
if conf_data:
Auth.conference(conf_data,conf_id)
return f(*args, **kwargs) # redirect to current url
else:
return ("<html><h1>Invalid URL</h1></html>")
return wrap
def faculty_login_required(f):
@wraps(f)
def wrap(*args, **kwargs):
# if user is not logged in, redirect to login page
conf_id = request.view_args['conf_id']
conf_key = request.view_args['conf_key']
if Auth.check():
return f(*args, **kwargs)
else:
if Helper.isAjax(request):
json = {'msg':'Your Session has been expired. Please <a href="'+ request.host_url + url_for('user.Login',conf_id=conf_id,conf_key=conf_key) +'">click here to login</a>','status' : 0,'data':''}
return jsonify(json)
else:
return redirect(url_for('faculty.Login',conf_id=conf_id,conf_key=conf_key))
return wrap
def bo_login_required(f):
@wraps(f)
def wrap(*args, **kwargs):
# checking for backoffice access only admin can access
conf_id = request.view_args['conf_id']
conf_key = request.view_args['conf_key']
if Auth.user() :
return f(*args, **kwargs)
else:
return redirect(url_for('aios_workshop.Login',conf_id=conf_id,conf_key=conf_key))
return wrap
def validation_OP_required(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
abs_type = request.view_args['abs_type']
society_id = Auth.get_conference(conf_id).get("society_id")
validation = AbstractModel().abstract_home_validation(abs_type,Auth.get_user(society_id).get('user_id'),conf_id)
if(validation["status"] == 1 or validation["status"] == 0 ):
return f(*args, **kwargs)
else:
# flash(validation["msg"])
return redirect(url_for('main.AbstractsIndex',abs_type=abs_type))
return wrap
def validation_VP_required(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
society_id = Auth.get_conference(conf_id).get("society_id")
validation = AbstractModel().abstract_home_validation('VP',Auth.get_user(society_id).get('user_id'),conf_id)
if(validation["status"] == 1 or validation["status"] == 0 ):
return f(*args, **kwargs)
else:
# flash(validation["msg"])
return redirect(url_for('VP.AbstractsIndex',abs_type='VP'))
return wrap
def validation_EP_required(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
society_id = Auth.get_conference(conf_id).get("society_id")
validation = AbstractModel().abstract_home_validation('EP',Auth.get_user(society_id).get('user_id'),conf_id)
if(validation["status"] == 1 or validation["status"] == 0 ):
return f(*args, **kwargs)
else:
# flash(validation["msg"])
return redirect(url_for('EP.AbstractsIndex',abs_type='EP'))
return wrap
def validation_IC_required(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
society_id = Auth.get_conference(conf_id).get("society_id")
validation = AbstractModel().abstract_home_validation('IC',Auth.get_user(society_id).get('user_id'),conf_id)
if(validation["status"] == 1 or validation["status"] == 0 ):
return f(*args, **kwargs)
else:
# flash(validation["msg"])
return redirect(url_for('IC.AbstractsIndex',abs_type='IC'))
return wrap
def validation_FP_required(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
society_id = Auth.get_conference(conf_id).get("society_id")
validation = AbstractModel().abstract_home_validation('FP',Auth.get_user(society_id).get('user_id'),conf_id)
if(validation["status"] == 1 or validation["status"] == 0 ):
return f(*args, **kwargs)
else:
# flash(validation["msg"])
return redirect(url_for('FP.AbstractsIndex',abs_type='FP'))
return wrap
def validation_VT_required(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
society_id = Auth.get_conference(conf_id).get("society_id")
validation = AbstractModel().abstract_home_validation('VT',Auth.get_user(society_id).get('user_id'),conf_id)
if(validation["status"] == 1 or validation["status"] == 0 ):
return f(*args, **kwargs)
else:
# flash(validation["msg"])
return redirect(url_for('VT.AbstractsIndex',abs_type='VT'))
return wrap
def validation_PP_required(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
society_id = Auth.get_conference(conf_id).get("society_id")
validation = AbstractModel().abstract_home_validation('PP',Auth.get_user(society_id).get('user_id'),conf_id)
if(validation["status"] == 1 or validation["status"] == 0 ):
return f(*args, **kwargs)
else:
# flash(validation["msg"])
return redirect(url_for('PP.AbstractsIndex',abs_type='PP'))
return wrap
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists