From 96ba36523b83ab47513078c697df741c958ed794 Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Tue, 31 Mar 2026 10:10:35 -0500 Subject: Rename module and add privileges to checks. * checks.py --> resources.py * Add privileges for InbredSet groups editing. --- gn_libs/privileges/__init__.py | 7 +++++-- gn_libs/privileges/checks.py | 34 --------------------------------- gn_libs/privileges/resources.py | 42 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 36 deletions(-) delete mode 100644 gn_libs/privileges/checks.py create mode 100644 gn_libs/privileges/resources.py diff --git a/gn_libs/privileges/__init__.py b/gn_libs/privileges/__init__.py index 9b2af85..b356ca7 100644 --- a/gn_libs/privileges/__init__.py +++ b/gn_libs/privileges/__init__.py @@ -1,2 +1,5 @@ -from .authspec import check, parse, SpecificationValueError -from .checks import can_view, can_edit, can_create, can_delete +from .authspec import (check, + parse, + SpecificationValueError, + privileges_fulfill_specs) +from . import resources diff --git a/gn_libs/privileges/checks.py b/gn_libs/privileges/checks.py deleted file mode 100644 index a7cc003..0000000 --- a/gn_libs/privileges/checks.py +++ /dev/null @@ -1,34 +0,0 @@ -import uuid -import logging -from functools import partial - -from gn_libs.sqlite3 import DbConnection - -from .authspec import privileges_fulfill_specs - - -logger = logging.getLogger(__name__) - - -can_view = partial( - privileges_fulfill_specs, - resource_spec="(OR group:resource:view-resource system:resource:view)", - system_spec="(OR system:system-wide:data:view system:resource:view)") - - -can_edit = partial( - privileges_fulfill_specs, - resource_spec="(OR group:resource:edit-resource system:resource:edit)", - system_spec="(OR system:system-wide:data:edit system:resource:edit)") - - -can_create = partial( - privileges_fulfill_specs, - resource_spec="(OR group:resource:create-resource)", - system_spec="(OR system:system-wide:data:create)") - - -can_delete = partial( - privileges_fulfill_specs, - resource_spec="(OR group:resource:delete-resource system:resource:delete)", - system_spec="(OR system:system-wide:data:delete system:resource:delete)") diff --git a/gn_libs/privileges/resources.py b/gn_libs/privileges/resources.py new file mode 100644 index 0000000..dea02f9 --- /dev/null +++ b/gn_libs/privileges/resources.py @@ -0,0 +1,42 @@ +"""Privilege checks for resources""" +import uuid +import logging +from functools import partial + +from gn_libs.sqlite3 import DbConnection + +from .authspec import privileges_fulfill_specs + + +logger = logging.getLogger(__name__) + + +can_view = partial( + privileges_fulfill_specs, + resource_spec=( + "(OR group:resource:view-resource system:resource:view " + "system:inbredset:view-case-attribute)"), + system_spec="(OR system:system-wide:data:view system:resource:view)") + + +can_edit = partial( + privileges_fulfill_specs, + resource_spec=( + "(OR group:resource:edit-resource system:resource:edit " + "system:inbredset:edit-case-attribute)"), + system_spec="(OR system:system-wide:data:edit system:resource:edit)") + + +can_create = partial( + privileges_fulfill_specs, + resource_spec=("(OR group:resource:create-resource " + "system:inbredset:create-case-attribute)"), + system_spec="(OR system:system-wide:data:create)") + + +can_delete = partial( + privileges_fulfill_specs, + resource_spec=("(OR group:resource:delete-resource " + "system:inbredset:delete-case-attribute " + "system:resource:delete)"), + system_spec="(OR system:system-wide:data:delete system:resource:delete)") -- cgit 1.4.1