from rest_framework.permissions import BasePermission class IsSuperAdmin(BasePermission): """超级管理员:is_staff=True 且 team=NULL""" def has_permission(self, request, view): return ( request.user and request.user.is_authenticated and request.user.is_staff and request.user.team is None ) class IsTeamAdmin(BasePermission): """团队管理员:is_team_admin=True 且 team≠NULL""" def has_permission(self, request, view): return ( request.user and request.user.is_authenticated and request.user.is_team_admin and request.user.team is not None ) class IsTeamAdminOrSuperAdmin(BasePermission): """团队管理员或超级管理员""" def has_permission(self, request, view): if not (request.user and request.user.is_authenticated): return False if request.user.is_staff and request.user.team is None: return True if request.user.is_team_admin and request.user.team is not None: return True return False class IsTeamMember(BasePermission): """团队成员(含团管):team≠NULL""" def has_permission(self, request, view): return ( request.user and request.user.is_authenticated and request.user.team is not None )