diff --git a/paramecio2/libraries/db/sqlalchemy.py b/paramecio2/libraries/db/sqlalchemy.py index 93b75d4..c7da074 100644 --- a/paramecio2/libraries/db/sqlalchemy.py +++ b/paramecio2/libraries/db/sqlalchemy.py @@ -97,18 +97,22 @@ class SqlClass: pymysql.install_as_MySQLdb SqlClass.pymysql_install=True - self.conn=pymysql.connect(self.connection['host'], - user=self.connection['user'], - passwd=self.connection['password'], - db=self.connection['db'], - charset='utf8mb4', - cursorclass=pymysql.cursors.DictCursor) + """ + connection = pymysql.connect(host='localhost', + user='user', + password='passwd', + database='db', + charset='utf8mb4', + cursorclass=pymysql.cursors.DictCursor) + """ + + self.conn=pymysql.connect(host=self.connection['host'], user=self.connection['user'], passwd=self.connection['password'], db=self.connection['db'], charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) else: import MySQLdb.cursors - self.conn=MySQLdb.connect(self.connection['host'], + self.conn=MySQLdb.connect(host=self.connection['host'], user=self.connection['user'], passwd=self.connection['password'], db=self.connection['db'], diff --git a/paramecio2/modules/admin/admin/ausers.py b/paramecio2/modules/admin/admin/ausers.py index d3e027c..644e640 100644 --- a/paramecio2/modules/admin/admin/ausers.py +++ b/paramecio2/modules/admin/admin/ausers.py @@ -18,10 +18,18 @@ def ausers(): user_admin.fields['privileges'].name_form=SelectForm - user_admin.create_forms(['username', 'password', 'email', 'privileges', 'lang']) + user_admin.fields['disabled'].name_form=SelectForm + + user_admin.fields['double_auth'].name_form=SelectForm + + user_admin.create_forms(['username', 'password', 'email', 'privileges', 'lang', 'disabled', 'double_auth']) user_admin.forms['privileges'].arr_select={0: I18n.lang('admin', 'without_privileges', 'Without privileges'), 1: I18n.lang('admin', 'selected_privileges', 'Selected privileges'), 2: I18n.lang('admin', 'administrator', 'Administrator')} + user_admin.forms['disabled'].arr_select={0: I18n.lang('admin', 'user_enabled', 'User enabled'), 1: I18n.lang('admin', 'user_disabled', 'User disabled')} + + user_admin.forms['double_auth'].arr_select={0: I18n.lang('admin', 'no', 'No'), 1: I18n.lang('admin', 'yes', 'Yes')} + user_admin.fields['password'].protected=False user_admin.check_user=False @@ -31,11 +39,11 @@ def ausers(): admin=GenerateAdminClass(user_admin, url, t) - admin.list.fields_showed=['username', 'privileges'] + admin.list.fields_showed=['username'] admin.list.search_fields=['username'] - admin.arr_fields_edit=['username', 'password', 'repeat_password', 'email', 'privileges', 'lang'] + admin.arr_fields_edit=['username', 'password', 'repeat_password', 'email', 'lang', 'double_auth', 'disabled'] form_admin=admin.show() diff --git a/paramecio2/modules/admin/app.py b/paramecio2/modules/admin/app.py index 27ed2e3..747368a 100644 --- a/paramecio2/modules/admin/app.py +++ b/paramecio2/modules/admin/app.py @@ -96,7 +96,7 @@ for app_load in config_admin: @admin_app.route('/admin/') def admin(): - return t.load_template('home.phtml', title=I18n.lang('admin', 'paramecio_admin', 'Paramecio admin')) + return t.load_template('home.phtml', title=I18n.lang('admin', 'admin', 'Admin')) """ @admin_app.route('/admin/') @@ -182,26 +182,34 @@ def login(): if arr_user: if user_admin.fields['password'].verify(password, arr_user['password']): + + if not arr_user['disabled']: - session['login_admin']=True - - resp = make_response({'error': 0}) - - if 'remember_login' in request.form: + session['login_admin']=True - remember_key=create_key_encrypt() + resp = make_response({'error': 0}) - user_admin.safe_query() + if 'remember_login' in request.form: + + remember_key=create_key_encrypt() + + user_admin.safe_query() + + user_admin.check_user=False + + user_admin.set_conditions('WHERE id=%s', [arr_user['id']]).update({'token_login': remember_key}) + + timestamp=int(time())+315360000 + + resp.set_cookie('remember_login_admin', value=remember_key, max_age=315360000, expires=timestamp, path=config.application_root) + + return resp + + else: - user_admin.check_user=False + resp = make_response({'error': 1, 'disable': 1}) - user_admin.set_conditions('WHERE id=%s', [arr_user['id']]).update({'token_login': remember_key}) - - timestamp=int(time())+315360000 - - resp.set_cookie('remember_login_admin', value=remember_key, max_age=315360000, expires=timestamp, path=config.application_root) - - return resp + return resp else: diff --git a/paramecio2/modules/admin/models/admin.py b/paramecio2/modules/admin/models/admin.py index f9d3313..a748c6d 100644 --- a/paramecio2/modules/admin/models/admin.py +++ b/paramecio2/modules/admin/models/admin.py @@ -82,12 +82,16 @@ class UserAdmin(UserModel): self.register(corefields.CharField('token_login')) + self.register(corefields.CharField('token_auth')) + self.register(PrivilegesField('privileges')) self.register(LangField('lang', 20)) self.register(corefields.BooleanField('disabled')) + self.register(corefields.BooleanField('double_auth')) + self.register(corefields.IntegerField('num_tries', 1)) """ diff --git a/paramecio2/modules/admin/templates/dashboard.phtml b/paramecio2/modules/admin/templates/dashboard.phtml index 46c3005..2cd227d 100644 --- a/paramecio2/modules/admin/templates/dashboard.phtml +++ b/paramecio2/modules/admin/templates/dashboard.phtml @@ -31,7 +31,18 @@ ${load_js()|n}