From 2241b119b0d3407412909d65f2074f35f8f9b600 Mon Sep 17 00:00:00 2001 From: Ben Thorner Date: Thu, 15 Jul 2021 11:33:13 +0100 Subject: [PATCH] Split (has_)permissions_for_service method This avoids duplicating the code to get user permissions ("admin roles") for a service, which we'll need in the next commit. --- app/models/user.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/models/user.py b/app/models/user.py index 03cfb7e94..aaaf827c7 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -215,8 +215,7 @@ class User(JSONModel, UserMixin): return True if any( - self.has_permission_for_service(service_id, permission) - for permission in permissions + self.permissions_for_service(service_id) & set(permissions) ): return True @@ -226,6 +225,9 @@ class User(JSONModel, UserMixin): Service.from_id(service_id).organisation_id ) + def permissions_for_service(self, service_id): + return self._permissions.get(service_id, set()) + def has_permission_for_service(self, service_id, permission): return permission in self._permissions.get(service_id, [])