Sindbad~EG File Manager
from core import app
from flask import url_for, session, redirect,request,flash,render_template
from datetime import datetime, date, time, timedelta
from functools import wraps
from core.library.auth import Auth
from core.model.CertificateModel import CertificateModel
# Flask View decorators
class RouteGroup:
def login_required(f):
@wraps(f)
def wrap(*args, **kwargs):
# if user is not logged in, redirect to login page
conf = Auth.getSociety(conf_id=request.view_args['conf_id'],conf_key=request.view_args['conf_key'])
if Auth.check(conf['society_id']):
return f(*args, **kwargs)
else:
flash("Session Invalid!. Please login.." , "errorMsg")
return redirect(url_for('certificate.Login',conf_id=request.view_args['conf_id'],conf_key=request.view_args['conf_key']))
return wrap
def check_date_open(f):
@wraps(f)
def wrap(*args, **kwargs):
conf_id = request.view_args['conf_id']
conf_key = request.view_args['conf_key']
conf = Auth.getSociety(conf_id,conf_key)
start_date1 = conf["app_start_at"]
start_date = start_date1.strftime("%Y-%m-%d %H:%M")
end_date1 = conf["app_end_at"]
end_date = end_date1.strftime("%Y-%m-%d %H:%M")
start_dt_msg= start_date1.strftime("%d/%b/%Y")
end_dt_msg = end_date1.strftime("%d/%b/%Y")
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M")
# return "test 2"
open_status = 1 # 1 is app open , 2 = yet open , 3 = closed
if curr_dt < start_date:
open_status = 2
elif curr_dt >= end_date:
open_status = 3
if open_status != 1:
return render_template('certificate_design/app_start_and_end.html',conf_id=conf_id,conf_key=conf_key,conf=conf,start_date=start_date,start_dt_msg=start_dt_msg,end_dt_msg=end_dt_msg,open_status=open_status)
else:
return f(*args, **kwargs)
return wrap
def society_required(f):
@wraps(f)
def wrap(*args, **kwargs):
# if user is not logged in, redirect to login page
if Auth.checkConf(request.view_args['conf_id'],request.view_args['conf_key']):
return f(*args, **kwargs)
else:
return "<h1> Invaild Link</h1>"
return wrap
def bologin_required(f):
@wraps(f)
def wrap(*args, **kwargs):
# if user is not logged in, redirect to login page
if Auth.bocheck():
return f(*args, **kwargs)
else:
return redirect(url_for('back_office.Home',conf_id=request.view_args['conf_id'],conf_key=request.view_args['conf_key']))
return wrap
# def logout_required(f):
# @wraps(f)
# def wrap(*args, **kwargs):
# # if user is not logged in, redirect to login page
# if Auth.check():
# return f(*args, **kwargs)
# else:
# return redirect(url_for('user.Home',conf_id=request.view_args['conf_id'],conf_key=request.view_args['conf_key']))
# return wrap
def bo_login_required(f):
@wraps(f)
def wrap(*args, **kwargs):
# if user is not logged in, redirect to login page
if session.get('backoffice'):
return f(*args, **kwargs)
else:
return redirect(url_for('backoffice.BOLogin'))
return wrap
# def profile_required(f):
# @wraps(f)
# def wrap(*args, **kwargs):
# u=User()
# user = session.get('user')
# user_id = user.get('user_id')
# user = User().get_user(user_id)
# is_profile_update = user.get('is_profile_update')
# print(str(is_profile_update))
# # return str(is_profile_update)
# if is_profile_update != 1 :
# return redirect(url_for('user.UserProfile',user_id= user_id))
# else :
# return f(*args, **kwargs)
# return wrap
# def payment_required(f):
# @wraps(f)
# def wrap(*args, **kwargs):
# p = Payment()
# user = session.get('user')
# user_id = user.get('user_id')
# checkpayment = p.checkuserinpayment(user_id)
# # return len(checkpayment)
# if (len(checkpayment)) == 1 :
# return f(*args, **kwargs)
# else:
# return redirect(url_for('payupayment.payment'))
# return wrap
# Controller Sample :
# from flask import request, Blueprint, jsonify, redirect, url_for,flash, render_template
# from core.library.route_group import RouteGroup
# @app.route('/home' , methods = ["GET"])
# @RouteGroup.login_required #check if login else automatically redirect to login page
# def home():
# return "welcome home"
# @app.route('/payment' , methods = ["GET"])
# @RouteGroup.login_required #check if login else automatically redirect to login page
# @RouteGroup.payment_required #check if payment done else automatically redirect to payment page
# def payment():
# return "payment page here"
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists