Files
@ c8218bb9d0ea
Branch filter:
Location: symposion_app/vendor/symposion/teams/backends.py - annotation
c8218bb9d0ea
1.6 KiB
text/x-python
Correct variable name to reflect what it's naming
IT's not the container name, it's the image name. Fix the name to be
less confusing.
IT's not the container name, it's the image name. Fix the name to be
less confusing.
5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 36ab6d599ffc 5dfd74c36023 5dfd74c36023 36ab6d599ffc 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 298b162be697 5dfd74c36023 298b162be697 a6405ccfc7f5 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 298b162be697 a6405ccfc7f5 a6405ccfc7f5 a6405ccfc7f5 a6405ccfc7f5 a6405ccfc7f5 a6405ccfc7f5 a6405ccfc7f5 a6405ccfc7f5 a6405ccfc7f5 298b162be697 a6405ccfc7f5 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 5dfd74c36023 | from django.db.models import Q
from .models import Team
class TeamPermissionsBackend(object):
def authenticate(self, username=None, password=None):
return None
def get_team_permissions(self, user_obj, obj=None):
"""
Returns a set of permission strings that this user has through his/her
team memberships.
"""
if user_obj.is_anonymous() or obj is not None:
return set()
if not hasattr(user_obj, "_team_perm_cache"):
# Member permissions
memberships = Team.objects.filter(
Q(memberships__user=user_obj),
Q(memberships__state="member"),
)
perms = memberships.values_list(
"permissions__content_type__app_label",
"permissions__codename"
).order_by()
permissions = ["%s.%s" % (ct, name) for ct, name in perms]
# Manager permissions
memberships = Team.objects.filter(
Q(memberships__user=user_obj),
Q(memberships__state="manager"),
)
perms = memberships.values_list(
"manager_permissions__content_type__app_label",
"manager_permissions__codename"
).order_by()
permissions += ["%s.%s" % (ct, name) for ct, name in perms]
user_obj._team_perm_cache = set(permissions)
return user_obj._team_perm_cache
def has_perm(self, user_obj, perm, obj=None):
if not user_obj.is_active:
return False
return perm in self.get_team_permissions(user_obj, obj)
|