85 lines
3.2 KiB
Python
85 lines
3.2 KiB
Python
from flask import g, request, redirect, session, url_for
|
|
from paramecio2.libraries.db.webmodel import WebModel
|
|
from settings import config
|
|
from paramecio2.libraries.db.extrafields.passwordfield import PasswordField
|
|
from paramecio2.libraries.i18n import I18n, PGetText
|
|
|
|
try:
|
|
import ujson as json
|
|
except:
|
|
import json
|
|
|
|
modules_access=[]
|
|
|
|
def admin_prepare():
|
|
|
|
g.connection=WebModel.connection()
|
|
|
|
if request.endpoint!='admin_app.login' and request.endpoint!='admin_app.signup' and request.endpoint!='admin_app.need_auth' and request.endpoint!='admin_app.auth_check':
|
|
|
|
if 'login_admin' not in session:
|
|
|
|
if 'remember_login_admin' in request.cookies:
|
|
|
|
try:
|
|
|
|
arr_cookie=json.loads(request.cookies['remember_login_admin'])
|
|
|
|
except:
|
|
|
|
arr_cookie=(0, '')
|
|
|
|
#print(arr_cookie)
|
|
#with g.connection.query('select count(id) as count_id from useradmin where token_login=%s', [request.cookies['remember_login_admin']]) as cursor:
|
|
with g.connection.query('select id, token_login, dark_theme from useradmin where id=%s', [arr_cookie[0]]) as cursor:
|
|
|
|
arr_user=cursor.fetchone()
|
|
|
|
if arr_user:
|
|
|
|
passfield=PasswordField('token_login')
|
|
|
|
if passfield.verify(arr_cookie[1], arr_user['token_login']):
|
|
|
|
session['login_admin']=True
|
|
session['user_id']=arr_user['id']
|
|
|
|
if arr_user['dark_theme']:
|
|
session['theme']='1'
|
|
else:
|
|
session['theme']='0'
|
|
|
|
session['lang']=arr_user.get('lang', I18n.default_lang)
|
|
|
|
else:
|
|
|
|
url_redirect=config.domain_url+url_for('admin_app.logout', _external=False)
|
|
|
|
return redirect(url_redirect)
|
|
else:
|
|
|
|
url_redirect=config.domain_url+url_for('admin_app.logout', _external=False)
|
|
|
|
return redirect(url_redirect)
|
|
|
|
else:
|
|
|
|
url_redirect=config.domain_url+url_for('admin_app.login', _external=False)
|
|
|
|
return redirect(url_redirect)
|
|
else:
|
|
|
|
#print(session['verify_auth'])
|
|
if request.endpoint!='admin_app.logout':
|
|
|
|
if not session.get('verify_auth', True):
|
|
|
|
url_redirect=config.domain_url+url_for('admin_app.need_auth', _external=False)
|
|
|
|
return redirect(url_redirect)
|
|
|
|
def admin_finished(response):
|
|
|
|
g.connection.close()
|
|
|
|
return response
|