From a440a32ad6468abc3e64fb0033e4047c673924f3 Mon Sep 17 00:00:00 2001 From: Dita Aji Pratama Date: Tue, 13 Aug 2024 18:02:49 +0700 Subject: [PATCH] Implementing account validation on all public pages --- app/modules/public/forgot.py | 50 ++++++++++++++----------- app/modules/public/home.py | 68 +++++++++++++++------------------- app/modules/public/login.py | 50 ++++++++++++++----------- app/modules/public/notme.py | 65 +++++++++++++++----------------- app/modules/public/register.py | 60 ++++++++++++++++-------------- app/modules/public/reset.py | 50 ++++++++++++++----------- app/modules/public/verify.py | 65 +++++++++++++++----------------- 7 files changed, 204 insertions(+), 204 deletions(-) diff --git a/app/modules/public/forgot.py b/app/modules/public/forgot.py index 3397756..e695b4b 100644 --- a/app/modules/public/forgot.py +++ b/app/modules/public/forgot.py @@ -1,6 +1,9 @@ -from mako.template import Template -from config import globalvar -from bottle import request +from mako.template import Template +from config import globalvar +from bottle import redirect, abort +from scripts import loggorilla + +import procedure.validation as procedure_validation class forgot: @@ -8,23 +11,26 @@ class forgot: pass def html(self, params): + APIADDR = "/forgot" + + loggorilla.prcss(APIADDR, "Define page parameters") active_page = "Forgot" - user_roles = [0] - beaker_session = request.environ.get('beaker.session') - jwt = beaker_session["token"] if "token" in beaker_session else None - if jwt is not None: - return redirect('/') - else: - return Template(params["mako"]["website"]['index']).render( - title = globalvar.title, - header = globalvar.header, - navbar = Template(params["mako"]["website"]['navbar']).render( - menu = globalvar.menu['public']['navbar'], - user_roles = user_roles, - active_page = active_page - ), - footer = Template(params["mako"]["website"]['footer']).render( - copyright = globalvar.copyright, - ), - container = Template(params["mako"]["website"]['container']).render() - ) + allowed_roles = [0] + + loggorilla.prcss(APIADDR, "Account validation") + user_validation = procedure_validation.validation().account(APIADDR, allowed_roles) + user = user_validation['data'] + + return Template(params["mako"]["website"]['index']).render( + title = globalvar.title, + header = globalvar.header, + navbar = Template(params["mako"]["website"]['navbar']).render( + menu = globalvar.menu['public']['navbar'], + user_roles = user['profile']['roles'], + active_page = active_page + ), + footer = Template(params["mako"]["website"]['footer']).render( + copyright = globalvar.copyright, + ), + container = Template(params["mako"]["website"]['container']).render() + ) diff --git a/app/modules/public/home.py b/app/modules/public/home.py index a38416c..cb53f86 100644 --- a/app/modules/public/home.py +++ b/app/modules/public/home.py @@ -1,49 +1,39 @@ -import mysql.connector as mariadb -from mako.template import Template -from config import globalvar, database -from bottle import request +from mako.template import Template +from config import globalvar +from bottle import redirect, abort +from scripts import loggorilla -import procedure.session as procedure_session +import procedure.validation as procedure_validation class home: def __init__(self): - self.db_main = mariadb.connect(**database.db_main) - self.cursor = self.db_main.cursor(dictionary=True) - self.user = { - "data":{ - "profile":{ - "username":None, - "email":None, - "phone":None, - "roles":[0] - } - } - } + pass def html(self, params): + APIADDR = "/" + + loggorilla.prcss(APIADDR, "Define page parameters") active_page = "Home" allowed_roles = [0,1,2,3] - beaker_session = request.environ.get('beaker.session') - jwt = beaker_session["token"] if "token" in beaker_session else None - self.user = procedure_session.session().user(jwt, allowed_roles) if jwt is not None else self.user - user = self.user['data'] - if 'valid' in user and user['valid']['status'] == 0: - return redirect('/logout') - else: - return Template(params["mako"]["website"]['index']).render( - title = globalvar.title, - header = globalvar.header, - navbar = Template(params["mako"]["website"]['navbar']).render( - menu = globalvar.menu['public']['navbar'], - user_roles = user['profile']['roles'], - active_page = active_page - ), - footer = Template(params["mako"]["website"]['footer']).render( - copyright = globalvar.copyright, - ), - container = Template(params["mako"]["website"]['container']).render( - greeting = f"Welcome to your new web application! This placeholder page is here to let you know that your web framework is successfully set up and ready to go. Now, it's time to start building your project. Dive into the documentation to explore the features and capabilities at your disposal.", - user = user - ) + + loggorilla.prcss(APIADDR, "Account validation") + user_validation = procedure_validation.validation().account(APIADDR, allowed_roles) + user = user_validation['data'] + + return Template(params["mako"]["website"]['index']).render( + title = globalvar.title, + header = globalvar.header, + navbar = Template(params["mako"]["website"]['navbar']).render( + menu = globalvar.menu['public']['navbar'], + user_roles = user['profile']['roles'], + active_page = active_page + ), + footer = Template(params["mako"]["website"]['footer']).render( + copyright = globalvar.copyright, + ), + container = Template(params["mako"]["website"]['container']).render( + greeting = f"Welcome to your new web application! This placeholder page is here to let you know that your web framework is successfully set up and ready to go. Now, it's time to start building your project. Dive into the documentation to explore the features and capabilities at your disposal.", + user = user ) + ) diff --git a/app/modules/public/login.py b/app/modules/public/login.py index c3ee2c0..a55081e 100644 --- a/app/modules/public/login.py +++ b/app/modules/public/login.py @@ -1,6 +1,9 @@ -from mako.template import Template -from config import globalvar -from bottle import request +from mako.template import Template +from config import globalvar +from bottle import redirect, abort +from scripts import loggorilla + +import procedure.validation as procedure_validation class login: @@ -8,23 +11,26 @@ class login: pass def html(self, params): + APIADDR = "/login" + + loggorilla.prcss(APIADDR, "Define page parameters") active_page = "Login" - user_roles = [0] - beaker_session = request.environ.get('beaker.session') - jwt = beaker_session["token"] if "token" in beaker_session else None - if jwt is not None: - return redirect('/') - else: - return Template(params["mako"]["website"]['index']).render( - title = globalvar.title, - header = globalvar.header, - navbar = Template(params["mako"]["website"]['navbar']).render( - menu = globalvar.menu['public']['navbar'], - user_roles = user_roles, - active_page = active_page - ), - footer = Template(params["mako"]["website"]['footer']).render( - copyright = globalvar.copyright, - ), - container = Template(params["mako"]["website"]['container']).render() - ) + allowed_roles = [0] + + loggorilla.prcss(APIADDR, "Account validation") + user_validation = procedure_validation.validation().account(APIADDR, allowed_roles) + user = user_validation['data'] + + return Template(params["mako"]["website"]['index']).render( + title = globalvar.title, + header = globalvar.header, + navbar = Template(params["mako"]["website"]['navbar']).render( + menu = globalvar.menu['public']['navbar'], + user_roles = user['profile']['roles'], + active_page = active_page + ), + footer = Template(params["mako"]["website"]['footer']).render( + copyright = globalvar.copyright, + ), + container = Template(params["mako"]["website"]['container']).render() + ) diff --git a/app/modules/public/notme.py b/app/modules/public/notme.py index 7ebbef4..e16f6ed 100644 --- a/app/modules/public/notme.py +++ b/app/modules/public/notme.py @@ -1,45 +1,38 @@ -from mako.template import Template -from config import globalvar -from bottle import request +from mako.template import Template +from config import globalvar +from bottle import redirect, abort +from scripts import loggorilla -import procedure.session as procedure_session +import procedure.validation as procedure_validation class notme: def __init__(self): - self.user = { - "data":{ - "profile":{ - "username":None, - "email":None, - "phone":None, - "roles":[0] - } - } - } + pass def html(self, params): - active_page = None + APIADDR = "/notme" + + loggorilla.prcss(APIADDR, "Define page parameters") + active_page = "Not Me" allowed_roles = [0,1,2,3] - beaker_session = request.environ.get('beaker.session') - jwt = beaker_session["token"] if "token" in beaker_session else None - self.user = procedure_session.session().user(jwt, allowed_roles) if jwt is not None else self.user - user = self.user['data'] - if 'valid' in user and user['valid']['status'] == 0: - return redirect('/logout') - else: - return Template(params["mako"]["website"]['index']).render( - title = globalvar.title, - header = globalvar.header, - navbar = Template(params["mako"]["website"]['navbar']).render( - menu = globalvar.menu['public']['navbar'], - user_roles = user['profile']['roles'], - active_page = active_page - ), - footer = Template(params["mako"]["website"]['footer']).render( - copyright = globalvar.copyright, - ), - container = Template(params["mako"]["website"]['container']).render( - title = globalvar.title - ) + + loggorilla.prcss(APIADDR, "Account validation") + user_validation = procedure_validation.validation().account(APIADDR, allowed_roles) + user = user_validation['data'] + + return Template(params["mako"]["website"]['index']).render( + title = globalvar.title, + header = globalvar.header, + navbar = Template(params["mako"]["website"]['navbar']).render( + menu = globalvar.menu['public']['navbar'], + user_roles = user['profile']['roles'], + active_page = active_page + ), + footer = Template(params["mako"]["website"]['footer']).render( + copyright = globalvar.copyright, + ), + container = Template(params["mako"]["website"]['container']).render( + title = globalvar.title ) + ) diff --git a/app/modules/public/register.py b/app/modules/public/register.py index 50c9225..af7f3f8 100644 --- a/app/modules/public/register.py +++ b/app/modules/public/register.py @@ -1,6 +1,9 @@ -from mako.template import Template -from config import globalvar -from bottle import request +from mako.template import Template +from config import globalvar +from bottle import redirect, abort +from scripts import loggorilla + +import procedure.validation as procedure_validation class register: @@ -8,29 +11,32 @@ class register: pass def html(self, params): - roles = params["roles"] + APIADDR = "/register" + + loggorilla.prcss(APIADDR, "Define page parameters") active_page = "Register" - user_roles = [0] - beaker_session = request.environ.get('beaker.session') - jwt = beaker_session["token"] if "token" in beaker_session else None - if jwt is not None: - return redirect('/') - else: - return Template(params["mako"]["website"]['index']).render( - title = globalvar.title, - header = globalvar.header, - navbar = Template(params["mako"]["website"]['navbar']).render( - menu = globalvar.menu['public']['navbar'], - user_roles = user_roles, - active_page = active_page - ), - footer = Template(params["mako"]["website"]['footer']).render( - copyright = globalvar.copyright, - ), - container = Template(params["mako"]["website"]['container']).render( - title = globalvar.title, - reCAPTCHA_client = globalvar.reCAPTCHA['client'], - roles = roles, - production = globalvar.production - ) + allowed_roles = [0] + roles = params["roles"] + + loggorilla.prcss(APIADDR, "Account validation") + user_validation = procedure_validation.validation().account(APIADDR, allowed_roles) + user = user_validation['data'] + + return Template(params["mako"]["website"]['index']).render( + title = globalvar.title, + header = globalvar.header, + navbar = Template(params["mako"]["website"]['navbar']).render( + menu = globalvar.menu['public']['navbar'], + user_roles = user['profile']['roles'], + active_page = active_page + ), + footer = Template(params["mako"]["website"]['footer']).render( + copyright = globalvar.copyright, + ), + container = Template(params["mako"]["website"]['container']).render( + title = globalvar.title, + reCAPTCHA_client = globalvar.reCAPTCHA['client'], + roles = roles, + production = globalvar.production ) + ) diff --git a/app/modules/public/reset.py b/app/modules/public/reset.py index 1397789..f6bafcf 100644 --- a/app/modules/public/reset.py +++ b/app/modules/public/reset.py @@ -1,6 +1,9 @@ -from mako.template import Template -from config import globalvar -from bottle import request +from mako.template import Template +from config import globalvar +from bottle import redirect, abort +from scripts import loggorilla + +import procedure.validation as procedure_validation class reset: @@ -8,23 +11,26 @@ class reset: pass def html(self, params): + APIADDR = "/reset" + + loggorilla.prcss(APIADDR, "Define page parameters") active_page = "Reset" - user_roles = [0] - beaker_session = request.environ.get('beaker.session') - jwt = beaker_session["token"] if "token" in beaker_session else None - if jwt is not None: - return redirect('/') - else: - return Template(params["mako"]["website"]['index']).render( - title = globalvar.title, - header = globalvar.header, - navbar = Template(params["mako"]["website"]['navbar']).render( - menu = globalvar.menu['public']['navbar'], - user_roles = user_roles, - active_page = active_page - ), - footer = Template(params["mako"]["website"]['footer']).render( - copyright = globalvar.copyright, - ), - container = Template(params["mako"]["website"]['container']).render() - ) + allowed_roles = [0] + + loggorilla.prcss(APIADDR, "Account validation") + user_validation = procedure_validation.validation().account(APIADDR, allowed_roles) + user = user_validation['data'] + + return Template(params["mako"]["website"]['index']).render( + title = globalvar.title, + header = globalvar.header, + navbar = Template(params["mako"]["website"]['navbar']).render( + menu = globalvar.menu['public']['navbar'], + user_roles = user['profile']['roles'], + active_page = active_page + ), + footer = Template(params["mako"]["website"]['footer']).render( + copyright = globalvar.copyright, + ), + container = Template(params["mako"]["website"]['container']).render() + ) diff --git a/app/modules/public/verify.py b/app/modules/public/verify.py index c6a2612..3e92085 100644 --- a/app/modules/public/verify.py +++ b/app/modules/public/verify.py @@ -1,43 +1,36 @@ -from mako.template import Template -from config import globalvar -from bottle import request +from mako.template import Template +from config import globalvar +from bottle import redirect, abort +from scripts import loggorilla -import procedure.session as procedure_session +import procedure.validation as procedure_validation class verify: def __init__(self): - self.user = { - "data":{ - "profile":{ - "username":None, - "email":None, - "phone":None, - "roles":[0] - } - } - } + pass def html(self, params): - active_page = None - allowed_roles = [0,1,2,3] - beaker_session = request.environ.get('beaker.session') - jwt = beaker_session["token"] if "token" in beaker_session else None - self.user = procedure_session.session().user(jwt, allowed_roles) if jwt is not None else self.user - user = self.user['data'] - if 'valid' in user and user['valid']['status'] == 0: - return redirect('/logout') - else: - return Template(params["mako"]["website"]['index']).render( - title = globalvar.title, - header = globalvar.header, - navbar = Template(params["mako"]["website"]['navbar']).render( - menu = globalvar.menu['public']['navbar'], - user_roles = user['profile']['roles'], - active_page = active_page - ), - footer = Template(params["mako"]["website"]['footer']).render( - copyright = globalvar.copyright, - ), - container = Template(params["mako"]["website"]['container']).render() - ) + APIADDR = "/verify" + + loggorilla.prcss(APIADDR, "Define page parameters") + active_page = "Verify" + allowed_roles = [0] + + loggorilla.prcss(APIADDR, "Account validation") + user_validation = procedure_validation.validation().account(APIADDR, allowed_roles) + user = user_validation['data'] + + return Template(params["mako"]["website"]['index']).render( + title = globalvar.title, + header = globalvar.header, + navbar = Template(params["mako"]["website"]['navbar']).render( + menu = globalvar.menu['public']['navbar'], + user_roles = user['profile']['roles'], + active_page = active_page + ), + footer = Template(params["mako"]["website"]['footer']).render( + copyright = globalvar.copyright, + ), + container = Template(params["mako"]["website"]['container']).render() + )