From 013a7438d8d8c995f231405ff98ed1d605bec902 Mon Sep 17 00:00:00 2001
From: Mart van Santen <mart@greenhost.nl>
Date: Tue, 21 Dec 2021 08:33:48 +0100
Subject: [PATCH] Cleanup code

---
 login/app.py    | 24 ++++++++++++++----------
 login/kratos.py |  1 +
 login/models.py |  5 +++--
 3 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/login/app.py b/login/app.py
index 546963e..183ec07 100644
--- a/login/app.py
+++ b/login/app.py
@@ -165,26 +165,30 @@ app.cli.add_command(app_cli)
 @click.argument('app_slug')
 @click.argument('role')
 def setrole(email, app_slug, role):
-    app.logger.info(f"Assiging role {role} to {email} for app {app_slug}");
+    """Set role for a sure
+    :param email: Email address of user to assign role
+    :param app_slug: Slug name of the app, for example 'nextcloud'
+    :param role: Role to assign. currently only 'admin', 'user'
+    """
+ 
+    app.logger.info(f"Assiging role {role} to {email} for app {app_slug}")
 
     # Find user
     user = KratosUser.find_by_email(KRATOS_ADMIN, email)
 
     if role != 'admin' and role != 'user':
-        print("At this point only the roles 'admin' and 'user' are accepted");
-        exit(1)
-
+        print("At this point only the roles 'admin' and 'user' are accepted")
+        sys.exit(1)
 
 
     if not user:
-        print("User not found. Abort");
-        exit(1)
+        print("User not found. Abort")
+        sys.exit(1)
 
     app_obj = db.session.query(App).filter(App.slug==app_slug).first()
     if not app_obj:
-        print("App not found. Abort.");
-        exit(1)
-
+        print("App not found. Abort.")
+        sys.exit(1)
 
     role_obj = db.session.query(AppRole).\
                     filter(AppRole.app_id==app_obj.id).\
@@ -199,7 +203,6 @@ def setrole(email, app_slug, role):
     obj.app_id = app_obj.id
     obj.role = role
 
-
     db.session.add(obj)
     db.session.commit()
 
@@ -549,6 +552,7 @@ def consent():
                     filter(AppRole.user_id==user.uuid).first()
         if role_obj:
             role = role_obj.role
+    app.logger.info(f"Using {role} when applying consent for {kratos_id}")
 
     # Get claims for this user, provided the current app
     claims = user.get_claims(app_name, role)
diff --git a/login/kratos.py b/login/kratos.py
index 0f473ad..46ef594 100644
--- a/login/kratos.py
+++ b/login/kratos.py
@@ -359,6 +359,7 @@ class KratosUser():
             "preferred_username": username,
             "email": self.email,
             "stackspin_roles": role,
+            "openappstack_roles": role,
         }
 
 
diff --git a/login/models.py b/login/models.py
index de62e60..93d04ca 100644
--- a/login/models.py
+++ b/login/models.py
@@ -36,13 +36,14 @@ class AppRole(db.Model):
     The AppRole object, stores the roles Users have on Apps
     """
 
+    # pylint: disable=no-member
     user_id = db.Column(String, primary_key=True)
+    # pylint: disable=no-member
     app_id = db.Column(Integer, ForeignKey('app.id'),
                              primary_key=True)
 
+    # pylint: disable=no-member
     role = db.Column(String)
 
     def __repr__(self):
         return f"{self.role} for {self.user_id} on {self.app_id}"
-
-
-- 
GitLab