From a1c66152ae20eb5f2a0c85f4a1086929e33f649a Mon Sep 17 00:00:00 2001 From: Andrea Mistrali Date: Thu, 5 Sep 2024 11:12:55 +0200 Subject: [PATCH] Fixed view for non admin users --- app/__init__.py | 9 +++++---- app/lib.py | 17 ++++++++++++++++- app/templates/base.html | 2 ++ app/templates/error.html | 7 ++++--- app/templates/index.html | 19 ++++++++++--------- app/templates/node.html | 1 - app/views/main.py | 9 +++------ app/views/rest.py | 6 ++---- wsgi.py | 2 +- 9 files changed, 43 insertions(+), 29 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index dc420de..1ed143b 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,9 +1,7 @@ -from flask import Flask, render_template +from flask import Flask, render_template, g from werkzeug.exceptions import HTTPException from flask_mobility import Mobility -from flask_pyoidc.provider_configuration import ProviderConfiguration, ClientMetadata - from . import filters from .lib import OIDCAuthentication @@ -53,9 +51,12 @@ def create_app(environment='development'): filters.init_app(app) # Error handlers. - @app.errorhandler(HTTPException) def handle_http_error(exc): return render_template('error.html', error=exc), exc.code + @app.context_processor + def inject_auth(): + return dict(auth=auth) + return app diff --git a/app/lib.py b/app/lib.py index 303650e..a00670e 100644 --- a/app/lib.py +++ b/app/lib.py @@ -56,11 +56,26 @@ class OIDCAuthentication(_OIDCAuth): userinfo = flask_session['userinfo'] return userinfo['email'].split('@')[0] + @property + def email(self) -> str: + userinfo = flask_session['userinfo'] + return userinfo['email'] + @property def login_name(self) -> str: userinfo = flask_session['userinfo'] return userinfo.get('preferred_username', self.username) + @property + def full_name(self) -> str: + userinfo = flask_session['userinfo'] + return userinfo.get('name') + + @property + def groups(self) -> list: + userinfo = flask_session['userinfo'] + return userinfo.get('groups') + @property def isAdmin(self) -> bool: userinfo = flask_session['userinfo'] @@ -73,7 +88,7 @@ class OIDCAuthentication(_OIDCAuth): if len(authorized_groups): log.debug(f"'{self.username}' is a member of { - authorized_groups}") + authorized_groups}. isAdmin == True") return True if self.username in admin_users: diff --git a/app/templates/base.html b/app/templates/base.html index bd3d3f6..13ba30c 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -50,6 +50,7 @@