Fix in autologin
This commit is contained in:
parent
828a16f235
commit
c34ab254ed
1 changed files with 36 additions and 6 deletions
|
|
@ -11,7 +11,7 @@ from paramecio.libraries.keyutils import create_key_encrypt, create_key
|
||||||
from time import time
|
from time import time
|
||||||
from paramecio.wsgiapp import app
|
from paramecio.wsgiapp import app
|
||||||
#from paramecio.modules.admin2 import admin_app
|
#from paramecio.modules.admin2 import admin_app
|
||||||
from bottle import request, redirect, Bottle
|
from bottle import request, redirect, Bottle, response
|
||||||
from paramecio.modules.admin2.libraries.loginplugin import check_login
|
from paramecio.modules.admin2.libraries.loginplugin import check_login
|
||||||
from paramecio.libraries.sessionplugin import SessionPlugin
|
from paramecio.libraries.sessionplugin import SessionPlugin
|
||||||
from paramecio.libraries.httputils import GetPostFiles
|
from paramecio.libraries.httputils import GetPostFiles
|
||||||
|
|
@ -81,19 +81,27 @@ def login_admin(session={}):
|
||||||
|
|
||||||
if cookie_name+'_remember' in request.cookies:
|
if cookie_name+'_remember' in request.cookies:
|
||||||
|
|
||||||
arr_user=simplequery.select(usermodel, db, dict_fields=['id', 'username'], where_sql='WHERE token_login=%s', dict_values=[request.cookies[cookie_name+'_remember']])
|
arr_user=simplequery.select(usermodel, db, dict_fields=['id', 'username', 'dark_theme', 'privileges', 'lang'], where_sql='WHERE token_login=%s', dict_values=[request.cookies[cookie_name+'_remember']])
|
||||||
|
|
||||||
if len(arr_user)>0:
|
if len(arr_user)>0:
|
||||||
now_str=now()
|
now_str=now()
|
||||||
|
|
||||||
date_now=format_local_strtime('YYYY-MM-DD HH:mm:ss', now_str)
|
date_now=format_local_strtime('YYYY-MM-DD HH:mm:ss', now_str)
|
||||||
|
|
||||||
db.query('update useradmin2 set last_login=%s WHERE id=%s', [date_now, arr_user[0]['id']])
|
db.query('update useradmin2 set last_login=%s WHERE id=%s', [date_now, arr_user[0]['id']])
|
||||||
|
|
||||||
request.session['login_admin']=True
|
session['login_admin']=True
|
||||||
|
session['user_id']=arr_user[0]['id']
|
||||||
|
session['theme']=arr_user[0]['dark_theme']
|
||||||
|
session['modules']=get_modules_user(arr_user[0], db)
|
||||||
|
session['privileges']=arr_user[0]['privileges']
|
||||||
|
session['lang']=arr_user[0]['lang']
|
||||||
|
|
||||||
|
session.save()
|
||||||
|
|
||||||
db.close()
|
db.close()
|
||||||
|
|
||||||
redirect(app.get_url('app_admin.home_admin'))
|
redirect(app.get_url('admin_app.home_admin'))
|
||||||
|
|
||||||
with db.query('select count(id) as num_users from useradmin2', []) as cursor:
|
with db.query('select count(id) as num_users from useradmin2', []) as cursor:
|
||||||
num_users=cursor.fetchone()['num_users']
|
num_users=cursor.fetchone()['num_users']
|
||||||
|
|
@ -167,7 +175,8 @@ def check_login_admin(session={}):
|
||||||
|
|
||||||
timestamp=int(time())+315360000
|
timestamp=int(time())+315360000
|
||||||
|
|
||||||
response.set_cookie(key=cookie_name+'_remember', value=remember_key, expires=timestamp, max_age=315360000, httponly=True, path=config.application_root)
|
#response.set_cookie(key=cookie_name+'_remember', value=remember_key, expires=timestamp, max_age=315360000, httponly=True, path=config.session_opts['session.path'])
|
||||||
|
response.set_cookie(config.cookie_name+'_remember', remember_key, expires=timestamp, max_age=315360000, path=config.session_opts['session.path'], httponly=True)
|
||||||
|
|
||||||
now_str=now()
|
now_str=now()
|
||||||
date_now=format_local_strtime('YYYY-MM-DD HH:mm:ss', now_str)
|
date_now=format_local_strtime('YYYY-MM-DD HH:mm:ss', now_str)
|
||||||
|
|
@ -273,7 +282,7 @@ def logout_admin(session={}):
|
||||||
del session['login_admin']
|
del session['login_admin']
|
||||||
|
|
||||||
if cookie_name+'_remember' in request.cookies:
|
if cookie_name+'_remember' in request.cookies:
|
||||||
response.delete_cookie(cookie_name+'_remember', path=session_opts['session.path'])
|
response.delete_cookie(cookie_name+'_remember', path=config.session_opts['session.path'])
|
||||||
|
|
||||||
redirect(app.get_url('admin_app.login_admin'))
|
redirect(app.get_url('admin_app.login_admin'))
|
||||||
|
|
||||||
|
|
@ -412,3 +421,24 @@ def check_login_tries(request, db):
|
||||||
|
|
||||||
#app.mount(admin_folder, admin_app)
|
#app.mount(admin_folder, admin_app)
|
||||||
|
|
||||||
|
def get_modules_user(arr_user, db):
|
||||||
|
|
||||||
|
if arr_user['privileges']==0:
|
||||||
|
with db.query('select module from privilegesmodule2 WHERE user_id=%s', [arr_user['id']]) as cursor:
|
||||||
|
modules_priv=[v['module'] for v in cursor.fetchall()]
|
||||||
|
|
||||||
|
for k, v in modules_admin.items():
|
||||||
|
if k in modules_priv:
|
||||||
|
if len(v)>2:
|
||||||
|
modules_priv+=v[2]
|
||||||
|
else:
|
||||||
|
|
||||||
|
modules_priv=[]
|
||||||
|
for k, v in modules_admin.items():
|
||||||
|
modules_priv.append(k)
|
||||||
|
if len(v)==3:
|
||||||
|
modules_priv+=v[2]
|
||||||
|
|
||||||
|
modules_priv.append('admin_app.home_admin')
|
||||||
|
|
||||||
|
return modules_priv
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue