From 473763af3654b91326f1e4a31beb15ae5591219b Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 20 May 2025 05:08:03 +0930 Subject: [PATCH] feat(core): permissions getter for role model ref: #765 #551 --- app/access/models/role.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/app/access/models/role.py b/app/access/models/role.py index 4a7d34a6..36b20a8f 100644 --- a/app/access/models/role.py +++ b/app/access/models/role.py @@ -130,6 +130,37 @@ class Role( ] + _permissions: list[ Permission ] = None + + _permissions_int: list[ int ] = None + + def get_permissions(self, as_int_list = False ): + + if self._permissions is None: + + permissions = [] + permissions_int = [] + + for permission in self.permissions: # pylint: disable=E1133:not-an-iterable + + if permission in _permissions: + continue + + permissions += [ permission ] + permissions_int += [ permission.id ] + + self._permissions = permissions + self._permissions_int = permissions_int + + if as_int_list: + return self._permissions_int + + return self._permissions_int + + + + + def save_history(self, before: dict, after: dict) -> bool: from access.models.role_history import RoleHistory