From 56586d1d5dc97b19e98c08b45a74936d7169cc8b Mon Sep 17 00:00:00 2001 From: ditaajipratama Date: Wed, 19 Jun 2024 06:53:25 +0700 Subject: [PATCH] Check validity on each modules --- app/modules/public/home.py | 39 ++++++++++++----------- app/modules/public/login.py | 42 +++++++++++++------------ app/modules/public/notme.py | 57 ++++++++++++++++++++++------------ app/modules/public/register.py | 54 ++++++++++++++++---------------- app/modules/public/verify.py | 55 ++++++++++++++++++++------------ 5 files changed, 143 insertions(+), 104 deletions(-) diff --git a/app/modules/public/home.py b/app/modules/public/home.py index 37375f5..a38416c 100644 --- a/app/modules/public/home.py +++ b/app/modules/public/home.py @@ -22,29 +22,28 @@ class home: } def html(self, params): - 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 - if jwt is not None: - self.user = procedure_session.session().user(jwt, allowed_roles) + self.user = procedure_session.session().user(jwt, allowed_roles) if jwt is not None else self.user user = self.user['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 + 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 + ) ) - ) diff --git a/app/modules/public/login.py b/app/modules/public/login.py index 4c7731a..c3ee2c0 100644 --- a/app/modules/public/login.py +++ b/app/modules/public/login.py @@ -1,26 +1,30 @@ -import mysql.connector as mariadb from mako.template import Template -from config import globalvar, database +from config import globalvar +from bottle import request class login: def __init__(self): - self.db_main = mariadb.connect(**database.db_main) - self.cursor = self.db_main.cursor(dictionary=True) - self.user_roles = [0] # Cari user roles disini + pass def html(self, params): - active_page = "Login" - 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 = self.user_roles, - active_page = active_page - ), - footer = Template(params["mako"]["website"]['footer']).render( - copyright = globalvar.copyright, - ), - container = Template(params["mako"]["website"]['container']).render() - ) + 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() + ) diff --git a/app/modules/public/notme.py b/app/modules/public/notme.py index 7c7053c..7ebbef4 100644 --- a/app/modules/public/notme.py +++ b/app/modules/public/notme.py @@ -1,28 +1,45 @@ -import mysql.connector as mariadb from mako.template import Template -from config import globalvar, database +from config import globalvar +from bottle import request + +import procedure.session as procedure_session class notme: def __init__(self): - self.db_main = mariadb.connect(**database.db_main) - self.cursor = self.db_main.cursor(dictionary=True) - self.user_roles = [0] # Cari user roles disini + self.user = { + "data":{ + "profile":{ + "username":None, + "email":None, + "phone":None, + "roles":[0] + } + } + } def html(self, params): - active_page = None - 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 = self.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 + 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( + title = globalvar.title + ) ) - ) diff --git a/app/modules/public/register.py b/app/modules/public/register.py index afe2b2b..50c9225 100644 --- a/app/modules/public/register.py +++ b/app/modules/public/register.py @@ -1,34 +1,36 @@ -import mysql.connector as mariadb from mako.template import Template -from config import globalvar, database +from config import globalvar +from bottle import request class register: def __init__(self): - self.db_main = mariadb.connect(**database.db_main) - self.cursor = self.db_main.cursor(dictionary=True) - self.user_roles = [0] # Cari user roles disini + pass def html(self, params): - - roles = params["roles"] - active_page = "Register" - - 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 = self.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 + roles = params["roles"] + 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 + ) ) - ) diff --git a/app/modules/public/verify.py b/app/modules/public/verify.py index 922ba0c..c6a2612 100644 --- a/app/modules/public/verify.py +++ b/app/modules/public/verify.py @@ -1,26 +1,43 @@ -import mysql.connector as mariadb from mako.template import Template -from config import globalvar, database +from config import globalvar +from bottle import request + +import procedure.session as procedure_session class verify: def __init__(self): - self.db_main = mariadb.connect(**database.db_main) - self.cursor = self.db_main.cursor(dictionary=True) - self.user_roles = [0] # Cari user roles disini + self.user = { + "data":{ + "profile":{ + "username":None, + "email":None, + "phone":None, + "roles":[0] + } + } + } def html(self, params): - active_page = None - 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 = self.user_roles, - active_page = active_page - ), - footer = Template(params["mako"]["website"]['footer']).render( - copyright = globalvar.copyright, - ), - container = Template(params["mako"]["website"]['container']).render() - ) + 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() + )