61 lines
1.5 KiB
Python
61 lines
1.5 KiB
Python
from django.contrib.auth.models import Permission
|
|
|
|
def permission_queryset():
|
|
"""Filter Permissions to those used within the application
|
|
|
|
Returns:
|
|
list: Filtered queryset that only contains the used permissions
|
|
"""
|
|
|
|
apps = [
|
|
'access',
|
|
'accounting',
|
|
'assistance',
|
|
'config_management',
|
|
'core',
|
|
'devops',
|
|
'django_celery_results',
|
|
'human_resources',
|
|
'itam',
|
|
'itim',
|
|
'project_management',
|
|
'settings',
|
|
]
|
|
|
|
exclude_models = [
|
|
'appsettings',
|
|
'chordcounter',
|
|
'comment',
|
|
'groupresult',
|
|
'history',
|
|
'modelnotes',
|
|
'usersettings',
|
|
]
|
|
|
|
exclude_permissions = [
|
|
'add_checkin',
|
|
'add_history',
|
|
'add_organization',
|
|
'add_taskresult',
|
|
'add_ticketcommentaction',
|
|
'change_checkin',
|
|
'change_history',
|
|
'change_organization',
|
|
'change_taskresult',
|
|
'change_ticketcommentaction',
|
|
'delete_checkin',
|
|
'delete_history',
|
|
'delete_organization',
|
|
'delete_taskresult',
|
|
'delete_ticketcommentaction',
|
|
'view_checkin',
|
|
'view_history',
|
|
]
|
|
|
|
return Permission.objects.select_related('content_type').filter(
|
|
content_type__app_label__in=apps,
|
|
).exclude(
|
|
content_type__model__in=exclude_models
|
|
).exclude(
|
|
codename__in = exclude_permissions
|
|
) |