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.models import Group, ObjectPermission
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()
@ -284,11 +284,9 @@ class RemoteUserBackend(_RemoteUserBackend):
permissions_list = []
for permission_name, constraints in settings.REMOTE_AUTH_DEFAULT_PERMISSIONS.items():
try:
object_type, action = resolve_permission_ct(
permission_name)
# TODO: Merge multiple actions into a single ObjectPermission per content type
obj_perm = ObjectPermission(
actions=[action], constraints=constraints)
object_type, action = resolve_permission_type(permission_name)
# TODO: Merge multiple actions into a single ObjectPermission per object type
obj_perm = ObjectPermission(actions=[action], constraints=constraints)
obj_perm.save()
obj_perm.users.add(user)
obj_perm.object_types.add(object_type)
@ -303,7 +301,9 @@ class RemoteUserBackend(_RemoteUserBackend):
f"Assigned permissions to remotely-authenticated user {user}: {permissions_list}")
else:
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

View File

@ -7,7 +7,7 @@ __all__ = (
'permission_is_exempt',
'qs_filter_from_constraints',
'resolve_permission',
'resolve_permission_ct',
'resolve_permission_type',
)
@ -42,9 +42,9 @@ def resolve_permission(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").
: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
app_label, action, model_name = resolve_permission(name)
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:
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 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 .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>.
"""
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.save()
obj_perm.users.add(self.user)
obj_perm.object_types.add(ct)
obj_perm.object_types.add(object_type)
#
# Custom assertions