about summary refs log tree commit diff
path: root/gn_auth/auth/authorisation/resources
diff options
context:
space:
mode:
authorMunyoki Kilyungi2024-03-12 00:29:30 +0300
committerMunyoki Kilyungi2024-03-13 10:30:09 +0300
commit8ccf7409f6c89c3c5079a73c73dc2f6bfae086a7 (patch)
tree71a46ef3fe602bda25ec99fc0ecda93f6ed6a81f /gn_auth/auth/authorisation/resources
parent6b529aa323b065dee0e387f06e6c0d2264ac542e (diff)
downloadgn-auth-8ccf7409f6c89c3c5079a73c73dc2f6bfae086a7.tar.gz
Define Privilege/Role using frozen dataclass.
* gn_auth/auth/authorisation/privileges.py: Import dataclass.  Remove
NamedTuple import.
(Privilege): Use frozen dataclass.
(Privelege.dictify): Delete.
* gn_auth/auth/authorisation/resources/groups/views.py: Import
dataclasses.asdict.
(group_privileges): Replace dictify with asdict.
(add_priv_to_role): Ditto.
(delete_priv_from_role): Ditto.
* gn_auth/auth/authorisation/resources/models.py:
(assign_resource_user): Replace dictify with asdict.
(unassign_resource_user): Ditto.
* gn_auth/auth/authorisation/resources/system/views.py: Import
dataclasses.asdict.  Remove dictify import.
(system_roles): Replace dictify with asdict.
* gn_auth/auth/authorisation/resources/views.py:
(resource_users): Replace dictify with asdict.
(resources_authorisation): Ditto.
* gn_auth/auth/authorisation/roles/models.py: Remove dictify and
NameTuple import.
(Role): Use frozen dataclass.
(Role.dictify): Replace dictify(priv) with asdict(priv).
* gn_auth/auth/authorisation/roles/views.py: Import
dataclasses.asdict.  Remove dictify import.
(view_role): Replace dictify with asdict.
* gn_auth/auth/authorisation/users/views.py:
(user_roles): Replace dictify with asdict.

Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
Diffstat (limited to 'gn_auth/auth/authorisation/resources')
-rw-r--r--gn_auth/auth/authorisation/resources/groups/views.py8
-rw-r--r--gn_auth/auth/authorisation/resources/models.py4
-rw-r--r--gn_auth/auth/authorisation/resources/system/views.py5
-rw-r--r--gn_auth/auth/authorisation/resources/views.py4
4 files changed, 10 insertions, 11 deletions
diff --git a/gn_auth/auth/authorisation/resources/groups/views.py b/gn_auth/auth/authorisation/resources/groups/views.py
index 8b471ff..303368c 100644
--- a/gn_auth/auth/authorisation/resources/groups/views.py
+++ b/gn_auth/auth/authorisation/resources/groups/views.py
@@ -5,8 +5,8 @@ import uuid
 import datetime
 from typing import Iterable
 from functools import partial
-
 from dataclasses import asdict
+
 from MySQLdb.cursors import DictCursor
 from flask import request, jsonify, Response, Blueprint, current_app
 
@@ -331,7 +331,7 @@ def group_privileges():
                 privilege for arole in this_user_roles
                 for privilege in arole.privileges) + group_level_roles #type: ignore[attr-defined]
         return jsonify(tuple(
-            dictify(priv) for priv in with_db_connection(__list_privileges__)))
+            asdict(priv) for priv in with_db_connection(__list_privileges__)))
 
 
 
@@ -420,7 +420,7 @@ def add_priv_to_role(group_role_id: uuid.UUID) -> Response:
     """Add privilege to group role."""
     with require_oauth.acquire("profile group role") as the_token:
         return jsonify({
-            **dictify(with_db_connection(partial(
+            **asdict(with_db_connection(partial(
                 __add_remove_priv_to_from_role__, group_role_id=group_role_id,
                 direction="ADD", user=the_token.user))),
             "description": "Privilege added successfully"
@@ -432,7 +432,7 @@ def delete_priv_from_role(group_role_id: uuid.UUID) -> Response:
     """Delete privilege from group role."""
     with require_oauth.acquire("profile group role") as the_token:
         return jsonify({
-            **dictify(with_db_connection(partial(
+            **asdict(with_db_connection(partial(
                 __add_remove_priv_to_from_role__, group_role_id=group_role_id,
                 direction="DELETE", user=the_token.user))),
             "description": "Privilege deleted successfully"
diff --git a/gn_auth/auth/authorisation/resources/models.py b/gn_auth/auth/authorisation/resources/models.py
index 7ebf5f7..97e6adf 100644
--- a/gn_auth/auth/authorisation/resources/models.py
+++ b/gn_auth/auth/authorisation/resources/models.py
@@ -343,7 +343,7 @@ def assign_resource_user(
         return {
             "resource": dictify(resource),
             "user": asdict(user),
-            "role": dictify(role),
+            "role": asdict(role),
             "description": (
                 f"The user '{user.name}'({user.email}) was assigned the "
                 f"'{role.role.role_name}' role on resource with ID "
@@ -367,7 +367,7 @@ def unassign_resource_user(
         return {
             "resource": dictify(resource),
             "user": asdict(user),
-            "role": dictify(role),
+            "role": asdict(role),
             "description": (
                 f"The user '{user.name}'({user.email}) had the "
                 f"'{role.role.role_name}' role on resource with ID "
diff --git a/gn_auth/auth/authorisation/resources/system/views.py b/gn_auth/auth/authorisation/resources/system/views.py
index 70e28d6..b0d40c2 100644
--- a/gn_auth/auth/authorisation/resources/system/views.py
+++ b/gn_auth/auth/authorisation/resources/system/views.py
@@ -1,12 +1,11 @@
 """Views relating to `System` resource(s)."""
+from dataclasses import asdict
 from flask import jsonify, Blueprint
 
 from gn_auth.auth.db.sqlite3 import with_db_connection
 
 from gn_auth.auth.authentication.oauth2.resource_server import require_oauth
 
-from gn_auth.auth.dictify import dictify
-
 from .models import user_roles_on_system
 
 system = Blueprint("system", __name__)
@@ -17,4 +16,4 @@ def system_roles():
     with require_oauth.acquire("profile group") as the_token:
         roles = with_db_connection(
             lambda conn: user_roles_on_system(conn, the_token.user))
-        return jsonify(tuple(dictify(role) for role in roles))
+        return jsonify(tuple(asdict(role) for role in roles))
diff --git a/gn_auth/auth/authorisation/resources/views.py b/gn_auth/auth/authorisation/resources/views.py
index 5d00f8c..43ee08b 100644
--- a/gn_auth/auth/authorisation/resources/views.py
+++ b/gn_auth/auth/authorisation/resources/views.py
@@ -193,9 +193,9 @@ def resource_users(resource_id: uuid.UUID):
                 "users.")
         results = (
             {
-                "roles": tuple(dictify(role) for role in row["roles"])
                 "user": asdict(row["user"]),
                 "user_group": asdict(row["user_group"]),
+                "roles": tuple(asdict(role) for role in row["roles"])
             } for row in (
                 user_row for user_id, user_row
                 in with_db_connection(__the_users__).items()))
@@ -347,7 +347,7 @@ def resources_authorisation():
                 str(resid): {
                     "public-read": resid in pubres,
                     "roles": tuple(
-                        dictify(rol) for rol in
+                        asdict(rol) for rol in
                         the_resources.get(resid, {}).get("roles", tuple()))
                 } for resid in resource_ids
             })