|
@@ -1,49 +0,0 @@
|
|
|
-from django.contrib import admin
|
|
|
|
|
-from django.contrib.auth.models import Group, User
|
|
|
|
|
-
|
|
|
|
|
-from users.models import UserConfig
|
|
|
|
|
-
|
|
|
|
|
-__all__ = (
|
|
|
|
|
- 'GroupObjectPermissionInline',
|
|
|
|
|
- 'UserConfigInline',
|
|
|
|
|
- 'UserObjectPermissionInline',
|
|
|
|
|
-)
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-class ObjectPermissionInline(admin.TabularInline):
|
|
|
|
|
- exclude = None
|
|
|
|
|
- extra = 3
|
|
|
|
|
- readonly_fields = ['object_types', 'actions', 'constraints']
|
|
|
|
|
- verbose_name = 'Permission'
|
|
|
|
|
- verbose_name_plural = 'Permissions'
|
|
|
|
|
-
|
|
|
|
|
- def get_queryset(self, request):
|
|
|
|
|
- return super().get_queryset(request).prefetch_related('objectpermission__object_types')
|
|
|
|
|
-
|
|
|
|
|
- @staticmethod
|
|
|
|
|
- def object_types(instance):
|
|
|
|
|
- # Don't call .values_list() here because we want to reference the pre-fetched object_types
|
|
|
|
|
- return ', '.join([ot.name for ot in instance.objectpermission.object_types.all()])
|
|
|
|
|
-
|
|
|
|
|
- @staticmethod
|
|
|
|
|
- def actions(instance):
|
|
|
|
|
- return ', '.join(instance.objectpermission.actions)
|
|
|
|
|
-
|
|
|
|
|
- @staticmethod
|
|
|
|
|
- def constraints(instance):
|
|
|
|
|
- return instance.objectpermission.constraints
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-class GroupObjectPermissionInline(ObjectPermissionInline):
|
|
|
|
|
- model = Group.object_permissions.through
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-class UserObjectPermissionInline(ObjectPermissionInline):
|
|
|
|
|
- model = User.object_permissions.through
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-class UserConfigInline(admin.TabularInline):
|
|
|
|
|
- model = UserConfig
|
|
|
|
|
- readonly_fields = ('data',)
|
|
|
|
|
- can_delete = False
|
|
|
|
|
- verbose_name = 'Preferences'
|
|
|