From 8e069cc6531b932589b38b7cfb0b704369d3f542 Mon Sep 17 00:00:00 2001 From: Josako Date: Tue, 30 Apr 2024 15:08:04 +0200 Subject: [PATCH] Correct tenant in session using to_dict --- eveai_app/models/user.py | 11 ++++++++++- eveai_app/templates/navbar.html | 9 ++++++--- eveai_app/utils/security.py | 2 +- eveai_app/views/user_views.py | 8 ++++++-- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/eveai_app/models/user.py b/eveai_app/models/user.py index b54e07f..573ad31 100644 --- a/eveai_app/models/user.py +++ b/eveai_app/models/user.py @@ -28,6 +28,16 @@ class Tenant(db.Model): def __repr__(self): return '' % self.name + def to_dict(self): + return { + 'id': self.id, + 'name': self.name, + 'website': self.website, + 'license_start_date': self.license_start_date, + 'license_end_date': self.license_end_date, + 'allowed_monthly_interactions': self.allowed_monthly_interactions + } + class Role(db.Model, RoleMixin): __bind_key__ = 'public' @@ -85,4 +95,3 @@ class User(db.Model, UserMixin): def has_roles(self, *args): return any(role.name in args for role in self.roles) - diff --git a/eveai_app/templates/navbar.html b/eveai_app/templates/navbar.html index 1121f84..cdcec0b 100644 --- a/eveai_app/templates/navbar.html +++ b/eveai_app/templates/navbar.html @@ -43,7 +43,6 @@ {% endmacro %} \ No newline at end of file diff --git a/eveai_app/utils/security.py b/eveai_app/utils/security.py index b0c6fed..39a44f8 100644 --- a/eveai_app/utils/security.py +++ b/eveai_app/utils/security.py @@ -5,4 +5,4 @@ from ..models.user import User, Tenant # Definition of Trigger Handlers def set_tenant_session_data(sender, user, **kwargs): tenant = Tenant.query.filter_by(id=user.tenant_id).first() - session['tenant'] = tenant + session['tenant'] = tenant.to_dict() diff --git a/eveai_app/views/user_views.py b/eveai_app/views/user_views.py index b568b79..207213e 100644 --- a/eveai_app/views/user_views.py +++ b/eveai_app/views/user_views.py @@ -15,6 +15,8 @@ user_bp = Blueprint('user_bp', __name__, url_prefix='/user') @user_bp.route('/tenant', methods=['GET', 'POST']) @roles_required('Super User') def tenant(): + print("SESSION:") + print(session) if request.method == 'POST': # Handle the required attributes name = request.form.get('name') @@ -180,7 +182,9 @@ def select_tenant(): def handle_tenant_selection(): tenant_id = request.form['tenant_id'] the_tenant = Tenant.query.get(tenant_id) - session['tenant'] = the_tenant + session['tenant'] = the_tenant.to_dict() + print("SESSION TENANT") + print(session['tenant']) action = request.form['action'] if action == 'view_users': @@ -191,7 +195,7 @@ def handle_tenant_selection(): return redirect(url_for('select_tenant')) -@user_bp.route('/view_users/') +@user_bp.route('/view_users/') @roles_accepted('Super User', 'Tenant Admin') def view_users(tenant_id): print(tenant_id)