Rename resolve_permission_ct() to resolve_permission_type()

This commit is contained in:
Jeremy Stretch 2024-03-21 11:28:32 -04:00
parent f48d1c9410
commit 73bb175afa
3 changed files with 14 additions and 14 deletions

View File

@ -12,7 +12,7 @@ from django.utils.translation import gettext_lazy as _
from users.constants import CONSTRAINT_TOKEN_USER from users.constants import CONSTRAINT_TOKEN_USER
from users.models import Group, ObjectPermission from users.models import Group, ObjectPermission
from utilities.permissions import ( from utilities.permissions import (
permission_is_exempt, qs_filter_from_constraints, resolve_permission, resolve_permission_ct, permission_is_exempt, qs_filter_from_constraints, resolve_permission, resolve_permission_type,
) )
UserModel = get_user_model() UserModel = get_user_model()
@ -284,11 +284,9 @@ class RemoteUserBackend(_RemoteUserBackend):
permissions_list = [] permissions_list = []
for permission_name, constraints in settings.REMOTE_AUTH_DEFAULT_PERMISSIONS.items(): for permission_name, constraints in settings.REMOTE_AUTH_DEFAULT_PERMISSIONS.items():
try: try:
object_type, action = resolve_permission_ct( object_type, action = resolve_permission_type(permission_name)
permission_name) # TODO: Merge multiple actions into a single ObjectPermission per object type
# TODO: Merge multiple actions into a single ObjectPermission per content type obj_perm = ObjectPermission(actions=[action], constraints=constraints)
obj_perm = ObjectPermission(
actions=[action], constraints=constraints)
obj_perm.save() obj_perm.save()
obj_perm.users.add(user) obj_perm.users.add(user)
obj_perm.object_types.add(object_type) obj_perm.object_types.add(object_type)
@ -303,7 +301,9 @@ class RemoteUserBackend(_RemoteUserBackend):
f"Assigned permissions to remotely-authenticated user {user}: {permissions_list}") f"Assigned permissions to remotely-authenticated user {user}: {permissions_list}")
else: else:
logger.debug( logger.debug(
f"Skipped initial assignment of permissions and groups to remotely-authenticated user {user} as Group sync is enabled") f"Skipped initial assignment of permissions and groups to remotely-authenticated user {user} as "
f"Group sync is enabled"
)
return user return user

View File

@ -7,7 +7,7 @@ __all__ = (
'permission_is_exempt', 'permission_is_exempt',
'qs_filter_from_constraints', 'qs_filter_from_constraints',
'resolve_permission', 'resolve_permission',
'resolve_permission_ct', 'resolve_permission_type',
) )
@ -42,9 +42,9 @@ def resolve_permission(name):
return app_label, action, model_name return app_label, action, model_name
def resolve_permission_ct(name): def resolve_permission_type(name):
""" """
Given a permission name, return the relevant ContentType and action. For example, "dcim.view_site" returns Given a permission name, return the relevant ObjectType and action. For example, "dcim.view_site" returns
(Site, "view"). (Site, "view").
:param name: Permission name in the format <app_label>.<action>_<model> :param name: Permission name in the format <app_label>.<action>_<model>
@ -52,7 +52,7 @@ def resolve_permission_ct(name):
from core.models import ObjectType from core.models import ObjectType
app_label, action, model_name = resolve_permission(name) app_label, action, model_name = resolve_permission(name)
try: try:
object_type = ObjectType.objects.get(app_label=app_label, model=model_name) object_type = ObjectType.objects.get_by_natural_key(app_label=app_label, model=model_name)
except ObjectType.DoesNotExist: except ObjectType.DoesNotExist:
raise ValueError(_("Unknown app_label/model_name for {name}").format(name=name)) raise ValueError(_("Unknown app_label/model_name for {name}").format(name=name))

View File

@ -12,7 +12,7 @@ from taggit.managers import TaggableManager
from core.models import ObjectType from core.models import ObjectType
from users.models import ObjectPermission from users.models import ObjectPermission
from utilities.permissions import resolve_permission_ct from utilities.permissions import resolve_permission_type
from utilities.utils import content_type_identifier from utilities.utils import content_type_identifier
from .utils import extract_form_failures from .utils import extract_form_failures
@ -44,11 +44,11 @@ class TestCase(_TestCase):
Assign a set of permissions to the test user. Accepts permission names in the form <app>.<action>_<model>. Assign a set of permissions to the test user. Accepts permission names in the form <app>.<action>_<model>.
""" """
for name in names: for name in names:
ct, action = resolve_permission_ct(name) object_type, action = resolve_permission_type(name)
obj_perm = ObjectPermission(name=name, actions=[action]) obj_perm = ObjectPermission(name=name, actions=[action])
obj_perm.save() obj_perm.save()
obj_perm.users.add(self.user) obj_perm.users.add(self.user)
obj_perm.object_types.add(ct) obj_perm.object_types.add(object_type)
# #
# Custom assertions # Custom assertions