aboutsummaryrefslogtreecommitdiff
path: root/gn_auth/auth/authorisation/resources/groups/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'gn_auth/auth/authorisation/resources/groups/models.py')
-rw-r--r--gn_auth/auth/authorisation/resources/groups/models.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/gn_auth/auth/authorisation/resources/groups/models.py b/gn_auth/auth/authorisation/resources/groups/models.py
index ee77654..3263e37 100644
--- a/gn_auth/auth/authorisation/resources/groups/models.py
+++ b/gn_auth/auth/authorisation/resources/groups/models.py
@@ -5,6 +5,7 @@ from functools import reduce
from dataclasses import dataclass
from typing import Any, Sequence, Iterable, Optional
+import sqlite3
from flask import g
from pymonad.maybe import Just, Maybe, Nothing
@@ -63,6 +64,13 @@ class MembershipError(AuthorisationError):
super().__init__(f"{type(self).__name__}: {error_description}.")
+def db_row_to_group(row: sqlite3.Row) -> Group:
+ """Convert a database row into a group."""
+ return Group(UUID(row["group_id"]),
+ row["group_name"],
+ json.loads(row["group_metadata"]))
+
+
def user_membership(conn: db.DbConnection, user: User) -> Sequence[Group]:
"""Returns all the groups that a member belongs to"""
query = (