Sindbad~EG File Manager
from core import app
from flask import url_for, session, redirect,request
from datetime import datetime, date, time, timedelta
from functools import wraps
from core.library.auth import Auth
from core.model.LoginModel import LoginModel
from core.library.helper import Helper
# 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']
# start
if session.get('conf_'+str(conf_id),None):
conf_data = session.get('conf_'+str(conf_id))
society_id = conf_data.get('society_id')
if conf_key == conf_data["conf_key"] :
pass
else:
return ("<html><h1>Invalid URL</h1></html>")
else:
conf = LoginModel().GetConf(conf_id,conf_key)
if conf :
session['conf_'+str(conf_id)] = conf
conf_data = session.get('conf_'+str(conf_id),None)
society_id = conf_data['society_id']
else :
return ("<html><h1>Invalid URL</h1></html>")
if session.get('login_'+str(society_id),None):
return f(*args, **kwargs)
else:
return redirect(url_for('login.Home',conf_id=request.view_args['conf_id'],conf_key=request.view_args['conf_key']))
# return f(*args, **kwargs)
# end
return wrap
def conf_required(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
conf_key = request.view_args['conf_key']
# start
if session.get('conf_'+str(conf_id),None):
conf_data = session.get('conf_'+str(conf_id),None)
if conf_key == conf_data["conf_key"] :
app_style = LoginModel().GetAppStyle(conf_id)
if app_style:
Auth.app_style(app_style,conf_id)
return f(*args, **kwargs)
else:
return ("<html><h1>Invalid URL</h1></html>")
else:
conf = LoginModel().GetConf(conf_id,conf_key)
if conf :
session['conf_'+str(conf_id)] = conf
conf_data = session.get('conf_'+str(conf_id),None)
if conf_key == conf_data["conf_key"] :
app_style = LoginModel().GetAppStyle(conf_id)
if app_style:
Auth.app_style(app_style,conf_id)
return f(*args, **kwargs)
else:
return ("<html><h1>Invalid URL</h1></html>")
else :
return ("<html><h1>Invalid URL</h1></html>")
return wrap
def conf_active_required(f):
@wraps(f)
def wrap(*args, **kwargs):
# if user is not logged in, redirect to login page
allow_access,auth_check = Auth.checkConfActive(request.view_args['conf_id'],request.view_args['conf_key'])
if allow_access == True:
return f(*args, **kwargs)
else:
return str(auth_check)
if Auth.checkConfActive(request.view_args['conf_id'],request.view_args['conf_key']):
return f(*args, **kwargs)
else:
return "<h1> Access Denied</h1>"
return wrap
def bologin_required(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
conf_key = request.view_args['conf_key']
if session.get('conf_'+str(conf_id),None):
conf_data = session.get('conf_'+str(conf_id))
society_id = conf_data.get("society_id")
if conf_key == conf_data["conf_key"] :
pass
else:
return ("<html><h1>Invalid URL</h1></html>")
else :
conf_data = LoginModel().GetConf(conf_id,conf_key)
if conf_data :
society_id = conf_data["society_id"]
session['conf_'+str(conf_id)] = conf_data
if conf_key == conf_data["conf_key"] :
pass
else:
return ("<html><h1>Invalid URL</h1></html>")
else :
return ("<html><h1>Invalid URL</h1></html>")
user = session.get('login_'+str(society_id),None)
if user:
email = user.get('email')
bo_access = LoginModel().check_bo_access(email,2,society_id,conf_id) # for check back office admin access
if bo_access and bo_access["is_admin"] == 1:
return f(*args, **kwargs)
else :
return redirect(url_for('login.DashboardLoginPage',conf_id=request.view_args['conf_id'],conf_key=request.view_args['conf_key']))
else :
return redirect(url_for('login.DashboardLoginPage',conf_id=request.view_args['conf_id'],conf_key=request.view_args['conf_key']))
return wrap
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists