1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Introduce resolve_permission() utility function

This commit is contained in:
Jeremy Stretch
2020-05-28 10:35:59 -04:00
parent ca199cdefe
commit dc56e49410
4 changed files with 30 additions and 15 deletions

View File

@@ -7,6 +7,7 @@ from django.contrib.contenttypes.models import ContentType
from django.db.models import Q
from users.models import ObjectPermission
from utilities.permissions import resolve_permission
class ObjectPermissionBackend(ModelBackend):
@@ -40,7 +41,6 @@ class ObjectPermissionBackend(ModelBackend):
return user_obj._object_perm_cache
def has_perm(self, user_obj, perm, obj=None):
# print(f'has_perm({perm})')
app_label, codename = perm.split('.')
action, model_name = codename.split('_')
@@ -120,10 +120,9 @@ class RemoteUserBackend(_RemoteUserBackend):
permissions_list = []
for permission_name in settings.REMOTE_AUTH_DEFAULT_PERMISSIONS:
try:
app_label, codename = permission_name.split('.')
action, model_name = codename.split('_')
content_type, action = resolve_permission(permission_name)
user.object_permissions.create(**{
'model': ContentType.objects.get(app_label=app_label, model=model_name),
'model': content_type,
f'can_{action}': True
})
permissions_list.append(permission_name)