Ver Fonte

Remove activate_userkey permission

Jeremy Stretch há 5 anos atrás
pai
commit
c6e85970d4

+ 4 - 0
docs/release-notes/version-2.9.md

@@ -11,3 +11,7 @@ NetBox v2.9 replaces Django's built-in permissions framework with one that suppo
 ### Configuration Changes
 ### Configuration Changes
 
 
 * `REMOTE_AUTH_DEFAULT_PERMISSIONS` now takes a dictionary rather than a list. This is a mapping of permission names to a dictionary of constraining attributes, or `None`. For example, `['dcim.add_site', 'dcim.change_site']` would become `{'dcim.add_site': None, 'dcim.change_site': None}`.
 * `REMOTE_AUTH_DEFAULT_PERMISSIONS` now takes a dictionary rather than a list. This is a mapping of permission names to a dictionary of constraining attributes, or `None`. For example, `['dcim.add_site', 'dcim.change_site']` would become `{'dcim.add_site': None, 'dcim.change_site': None}`.
+
+### Other Changes
+
+* The `secrets.activate_userkey` permission no longer exists. Instead, `secrets.change_userkey` is checked to determine whether a user has the ability to activate a UserKey.

+ 1 - 1
netbox/secrets/admin.py

@@ -23,7 +23,7 @@ class UserKeyAdmin(admin.ModelAdmin):
         actions = super().get_actions(request)
         actions = super().get_actions(request)
         if 'delete_selected' in actions:
         if 'delete_selected' in actions:
             del actions['delete_selected']
             del actions['delete_selected']
-        if not request.user.has_perm('secrets.activate_userkey'):
+        if not request.user.has_perm('secrets.change_userkey'):
             del actions['activate_selected']
             del actions['activate_selected']
         return actions
         return actions
 
 

+ 0 - 1
netbox/secrets/migrations/0001_initial.py

@@ -56,7 +56,6 @@ class Migration(migrations.Migration):
             ],
             ],
             options={
             options={
                 'ordering': ['user__username'],
                 'ordering': ['user__username'],
-                'permissions': (('activate_userkey', 'Can activate user keys for decryption'),),
             },
             },
         ),
         ),
         migrations.AddField(
         migrations.AddField(

+ 0 - 3
netbox/secrets/models.py

@@ -64,9 +64,6 @@ class UserKey(models.Model):
 
 
     class Meta:
     class Meta:
         ordering = ['user__username']
         ordering = ['user__username']
-        permissions = (
-            ('activate_userkey', "Can activate user keys for decryption"),
-        )
 
 
     def __init__(self, *args, **kwargs):
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
         super().__init__(*args, **kwargs)

+ 4 - 1
netbox/users/migrations/0009_replicate_permissions.py

@@ -14,9 +14,12 @@ def replicate_permissions(apps, schema_editor):
     # TODO: Optimize this iteration so that ObjectPermissions with identical sets of users and groups
     # TODO: Optimize this iteration so that ObjectPermissions with identical sets of users and groups
     # are combined into a single ObjectPermission instance.
     # are combined into a single ObjectPermission instance.
     for perm in Permission.objects.all():
     for perm in Permission.objects.all():
-        # Account for non-standard permission names; e.g. napalm_read
         if perm.codename.split('_')[0] in ACTIONS:
         if perm.codename.split('_')[0] in ACTIONS:
+            # Account for non-standard legacy permission names; e.g. napalm_read
             action = perm.codename.split('_')[0]
             action = perm.codename.split('_')[0]
+        elif perm.codename == 'activate_userkey':
+            # Rename activate_userkey permission
+            action = 'change'
         else:
         else:
             action = perm.codename
             action = perm.codename