jumpserver/apps/perms/utils/application/user_permission.py

22 lines
776 B
Python

from perms.models import ApplicationPermission
from applications.models import Application
def get_user_all_applicationpermission_ids(user):
application_perm_ids = set()
application_perm_ids.update(
ApplicationPermission.objects.valid().filter(users=user).distinct().values_list('id', flat=True)
)
application_perm_ids.update(
ApplicationPermission.objects.valid().filter(user_groups__users=user).distinct().values_list('id', flat=True)
)
return application_perm_ids
def get_user_granted_all_applications(user):
application_perm_ids = get_user_all_applicationpermission_ids(user)
applications = Application.objects.filter(
granted_by_permissions__id__in=application_perm_ids
).distinct()
return applications