mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
703 B
25 lines
703 B
from rest_framework import permissions |
|
|
|
from common.utils import get_logger |
|
|
|
logger = get_logger(__file__) |
|
|
|
__all__ = ['IsSessionAssignee'] |
|
|
|
|
|
class IsSessionAssignee(permissions.IsAuthenticated): |
|
def has_permission(self, request, view): |
|
if not request.user: |
|
return False |
|
if request.user.is_anonymous: |
|
return False |
|
if view.action == 'retrieve': |
|
# Why return True? please refer to the issue: #11678 |
|
return True |
|
return False |
|
|
|
def has_object_permission(self, request, view, obj): |
|
try: |
|
return obj.ticket_relation.first().ticket.has_all_assignee(request.user) |
|
except: |
|
return False
|
|
|