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.ImagePollModel import ImagePollModel
# 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(society_id=request.view_args['society_id'],society_key=request.view_args['society_key'])
if Auth.check(conf['society_id']):
return f(*args, **kwargs)
else:
flash("Session Invalid!. Please login.." , "errorMsg")
return redirect(url_for('image_poll.home',society_id=request.view_args['society_id'],society_key=request.view_args['society_key']))
return wrap
def bo_cert_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.bocheck(conf['society_id']):
return f(*args, **kwargs)
else:
flash("Session Invalid!. Please login.." , "errorMsg")
return redirect(url_for('bocertificate.BOlogin',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):
society_id = request.view_args['society_id']
society_key = request.view_args['society_key']
session_id = request.view_args['session_id']
session_key = request.view_args['session_key']
society = Auth.getSociety(society_id,society_key)
# print(session_id)
session_data =Auth.checkSession(session_id,session_key)
start_date1 = session_data["start_date"]
start_date = start_date1.strftime("%Y-%m-%d %H:%M")
end_date1 = session_data["end_date"]
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('image_poll/app_start_and_end.html',society_id=society_id,society_key=society_key,society=society,session_id=session_id,session_key=session_key,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.getSociety(request.view_args['society_id'],request.view_args['society_key']):
return f(*args, **kwargs)
else:
return "<h1> Invaild Link</h1>"
return wrap
def session_required(f):
@wraps(f)
def wrap(*args, **kwargs):
society_id = request.view_args['society_id']
society_key = request.view_args['society_key']
session_id=request.view_args['session_id']
session_key=request.view_args['session_key']
society = Auth.getSociety(society_id,society_key)
# print(conf)
# if user is not logged in, redirect to login page
if Auth.checkSession(request.view_args['session_id'],request.view_args['session_key']):
return f(*args, **kwargs)
else:
open_status = 3
# return "<h1> Invaild Link</h1>"
return render_template('image_poll/app_start_and_end.html',society_id=society_id,society_key=society_key,society=society,session_id=session_id,session_key=session_key,open_status=open_status)
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