about summary refs log tree commit diff
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.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/gn_auth/auth/authorisation/resources/groups/models.py b/gn_auth/auth/authorisation/resources/groups/models.py
index 959389c..9a60df9 100644
--- a/gn_auth/auth/authorisation/resources/groups/models.py
+++ b/gn_auth/auth/authorisation/resources/groups/models.py
@@ -2,6 +2,7 @@
 import json
 from uuid import UUID, uuid4
 from functools import reduce
+from dataclasses import dataclass
 from typing import Any, Sequence, Iterable, Optional, NamedTuple
 
 from flask import g
@@ -21,18 +22,14 @@ from gn_auth.auth.authorisation.roles.models import (
     Role, create_role, check_user_editable, revoke_user_role_by_name,
     assign_user_role_by_name)
 
-class Group(NamedTuple):
+
+@dataclass(frozen=True)
+class Group:
     """Class representing a group."""
     group_id: UUID
     group_name: str
     group_metadata: dict[str, Any]
 
-    def dictify(self):
-        """Return a dict representation of `Group` objects."""
-        return {
-            "group_id": self.group_id, "group_name": self.group_name,
-            "group_metadata": self.group_metadata
-        }
 
 DUMMY_GROUP = Group(
     group_id=UUID("77cee65b-fe29-4383-ae41-3cb3b480cc70"),
@@ -50,8 +47,8 @@ class GroupRole(NamedTuple):
     def dictify(self) -> dict[str, Any]:
         """Return a dict representation of `GroupRole` objects."""
         return {
-            "group_role_id": self.group_role_id, "group": dictify(self.group),
             "role": dictify(self.role)
+            "group_role_id": self.group_role_id, "group": asdict(self.group),
         }
 
 class GroupCreationError(AuthorisationError):