From 758d7e4cef0f7f2b041d8a387c8a8365b00eff57 Mon Sep 17 00:00:00 2001 From: Antonio de la Rosa Date: Mon, 8 Feb 2021 14:09:09 +0100 Subject: [PATCH] Added module for login --- paramecio2/modules/admin/media/css/admin.css | 25 ++++-- paramecio2/modules/login/__init__.py | 37 +++++++++ paramecio2/modules/login/admin/__init__.py | 0 paramecio2/modules/login/admin/login.py | 82 +++++++++++++++++++ .../login/admin/templates/loginform.phtml | 14 ++++ paramecio2/modules/login/app.py | 2 + paramecio2/modules/login/settings/__init__.py | 0 .../modules/login/settings/config_admin.py | 9 ++ 8 files changed, 163 insertions(+), 6 deletions(-) create mode 100644 paramecio2/modules/login/__init__.py create mode 100644 paramecio2/modules/login/admin/__init__.py create mode 100644 paramecio2/modules/login/admin/login.py create mode 100644 paramecio2/modules/login/admin/templates/loginform.phtml create mode 100644 paramecio2/modules/login/app.py create mode 100644 paramecio2/modules/login/settings/__init__.py create mode 100644 paramecio2/modules/login/settings/config_admin.py diff --git a/paramecio2/modules/admin/media/css/admin.css b/paramecio2/modules/admin/media/css/admin.css index 1af9f79..92327c3 100644 --- a/paramecio2/modules/admin/media/css/admin.css +++ b/paramecio2/modules/admin/media/css/admin.css @@ -3,7 +3,7 @@ body { margin:0px; - background-color:#f7f6f1; + background-color:#f4f6f9; font-family: "Roboto", sans, sans-serif, serif; font-size: 16px; @@ -134,7 +134,7 @@ p { { float:left; - width:20%; + width:18%; margin-right:0px; position:relative; /* border:solid #cccccc; @@ -240,13 +240,13 @@ p { margin:auto; background: rgba(18,47,59,1); - background: -moz-linear-gradient(left, rgba(18,47,59,1) 0%, rgba(18,47,59,1) 51%, rgba(18,47,59,1) 74%, rgba(8,59,77,1) 100%); + /*background: -moz-linear-gradient(left, rgba(18,47,59,1) 0%, rgba(18,47,59,1) 51%, rgba(18,47,59,1) 74%, rgba(8,59,77,1) 100%); background: -webkit-gradient(left top, right top, color-stop(0%, rgba(18,47,59,1)), color-stop(51%, rgba(18,47,59,1)), color-stop(74%, rgba(18,47,59,1)), color-stop(100%, rgba(8,59,77,1))); background: -webkit-linear-gradient(left, rgba(18,47,59,1) 0%, rgba(18,47,59,1) 51%, rgba(18,47,59,1) 74%, rgba(8,59,77,1) 100%); background: -o-linear-gradient(left, rgba(18,47,59,1) 0%, rgba(18,47,59,1) 51%, rgba(18,47,59,1) 74%, rgba(8,59,77,1) 100%); - background: -ms-linear-gradient(left, rgba(18,47,59,1) 0%, rgba(18,47,59,1) 51%, rgba(18,47,59,1) 74%, rgba(8,59,77,1) 100%); + background: -ms-linear-gradient(left, rgba(18,47,59,1) 0%, rgba(18,47,59,1) 51%, rgba(18,47,59,1) 74%, rgba(8,59,77,1) 100%);*/ background: linear-gradient(to right, rgba(18,47,59,1) 0%, rgba(18,47,59,1) 51%, rgba(18,47,59,1) 74%, rgba(8,59,77,1) 100%); - background-size: 20% 100%; + background-size: 18% 100%; background-repeat:no-repeat; padding:0px; border:solid #bcbcbc; @@ -268,7 +268,7 @@ p { .contents { float:right; - width:80%; + width:82%; padding:0px 0px 0px 0px; box-sizing: border-box; } @@ -313,6 +313,10 @@ p { padding:10px; margin:10px 0px 10px 0px; border-radius:5px; + background: #fbfbfb; + -webkit-box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.75); + -moz-box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.75); + box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.75); } @@ -386,6 +390,14 @@ margin-right:auto; } +table { + + -webkit-box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.75); + -moz-box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.75); + box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.75); + +} + .table_list { width:100%; @@ -433,6 +445,7 @@ margin-right:auto; /*border:solid #cccccc; border-width:1px;*/ padding:4px; + background: #fbfbfb; } diff --git a/paramecio2/modules/login/__init__.py b/paramecio2/modules/login/__init__.py new file mode 100644 index 0000000..fb30e37 --- /dev/null +++ b/paramecio2/modules/login/__init__.py @@ -0,0 +1,37 @@ +from flask import Blueprint, g, request, session, redirect, url_for +from paramecio2.libraries.db.webmodel import WebModel +from functools import wraps +from paramecio2.libraries.mtemplates import PTemplate, env_theme +try: + import ujson as json +except: + import json + +#Load json config + +login_app=Blueprint('login_app', __name__) + +env=env_theme(__file__) + +t=PTemplate(env) + +def login_site(f): + + @wraps(f) + + def wrapper(*args, **kwds): + + session_name='login_site' + + if 'sesion_name' in kwds: + session_name=kwds['session_name'] + + if not session_name in session: + + return redirect(url_for('.login')) + + else: + + return f(*args, **kwds) + + return wrapper diff --git a/paramecio2/modules/login/admin/__init__.py b/paramecio2/modules/login/admin/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/paramecio2/modules/login/admin/login.py b/paramecio2/modules/login/admin/login.py new file mode 100644 index 0000000..4e0af83 --- /dev/null +++ b/paramecio2/modules/login/admin/login.py @@ -0,0 +1,82 @@ +from settings import config +from flask import g, url_for +from paramecio2.libraries.i18n import I18n +import copy +from paramecio2.modules.admin import admin_app, t as admin_t +from paramecio2.libraries.db import coreforms +from paramecio2.libraries.formsutils import show_form +from paramecio2.libraries.mtemplates import PTemplate, env_theme +import os + +#env=env_theme(__file__) + +#t=PTemplate(env) + +t=copy.copy(admin_t) + +t.env.directories.insert(1, os.path.dirname(__file__)+'/templates') + +print(t.env.directories) + +@admin_app.route('/admin/login/', methods=['GET', 'POST']) +def admin_login(): + """ + connection=g.connection + + user_admin=UserAdmin(connection) + + user_admin.fields['privileges'].name_form=SelectForm + + user_admin.create_forms(['username', 'password', 'email', 'privileges', 'lang']) + + 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.fields['password'].protected=False + + user_admin.check_user=False + user_admin.check_email=False + + url=url_for('admin_app.login') + + admin=GenerateAdminClass(user_admin, url, t) + + admin.list.fields_showed=['username', 'privileges'] + + admin.list.search_fields=['username'] + + admin.arr_fields_edit=['username', 'password', 'repeat_password', 'email', 'privileges', 'lang'] + + form_admin=admin.show() + + if type(form_admin).__name__=='str': + + return t.load_template('content.phtml', title=I18n.lang('admin', 'users_edit', 'Users edit'), contents=form_admin, path_module='/admin/login') + else: + + return form_admin + + """ + + form_admin='' + + arr_forms={} + + arr_forms['name']=coreforms.BaseForm('name', '') + + arr_forms['name'].label='Name' + + arr_forms['activate_double_check']=coreforms.SelectForm('activate_double_check', 0, {0: I18n.lang('admin', 'no', 'No'), 1: I18n.lang('admin', 'yes', 'Yes')}) + + arr_forms['activate_double_check'].label='Activate double check' + + form_admin=show_form({}, arr_forms, t, yes_error=True, pass_values=True, modelform_tpl='forms/modelform.phtml') + + login_form=t.load_template('loginform.phtml', content_form=form_admin) + + if type(form_admin).__name__=='str': + + return t.load_template('content.phtml', title=I18n.lang('admin', 'login_edit', 'Login edit'), contents=login_form, path_module='/admin/login') + else: + + return form_admin + diff --git a/paramecio2/modules/login/admin/templates/loginform.phtml b/paramecio2/modules/login/admin/templates/loginform.phtml new file mode 100644 index 0000000..f8d1899 --- /dev/null +++ b/paramecio2/modules/login/admin/templates/loginform.phtml @@ -0,0 +1,14 @@ +${content_form|n} +

+ diff --git a/paramecio2/modules/login/app.py b/paramecio2/modules/login/app.py new file mode 100644 index 0000000..a227c13 --- /dev/null +++ b/paramecio2/modules/login/app.py @@ -0,0 +1,2 @@ +from paramecio2.modules.login import login_app + diff --git a/paramecio2/modules/login/settings/__init__.py b/paramecio2/modules/login/settings/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/paramecio2/modules/login/settings/config_admin.py b/paramecio2/modules/login/settings/config_admin.py new file mode 100644 index 0000000..0f4ed30 --- /dev/null +++ b/paramecio2/modules/login/settings/config_admin.py @@ -0,0 +1,9 @@ +from paramecio2.libraries.config_admin import config_admin +from paramecio2.libraries.i18n import I18n + +#modules_admin=[[I18n.lang('admin', 'users_admin', 'User\'s Admin'), 'paramecio.modules.admin.admin.ausers', 'ausers']] + +config_admin.append([I18n.lang('admin', 'login_admin', 'Login admin')]) + +config_admin.append([I18n.lang('admin', 'login_config', 'Login configuration'), 'paramecio2.modules.login.admin.login', 'admin_app.admin_login']) +