share ticket and ticket message

This commit is contained in:
javad committed 2026-10-04 16:42:19 +03:30
1 parent 39e64854b8
commit 79fe1cddbb
35 files changed
+1742 -95

No files matched your search

+7 -4
View File
@@ -4,6 +4,11 @@ from .models import TicketAccessGrant
class TicketPolicy:
@classmethod
def can_operate(cls, user, ticket):
profile = getattr(user, "staff_profile", None)
return bool(user.is_authenticated and user.is_active and getattr(user, "account_type", None) == "STAFF"
and (profile is None or profile.is_active) and cls.can_view(user, ticket))
@staticmethod
def is_customer(user): return getattr(user,"account_type",None)=="CUSTOMER"
@staticmethod
@@ -118,12 +123,10 @@ class TicketPolicy:
return permitted and cls.can_view(user, ticket) and ticket.owner_id is None and ticket.selected_expert_id is None
@classmethod
def can_transfer(cls,user,ticket):
permitted=user.has_perm("tickets.transfer_ticket") or cls.has_unit_permission(user,ticket.owning_unit,"tickets.transfer_ticket")
return permitted and cls.can_view(user,ticket) and (ticket.owner_id==user.id or (ticket.owner_id is None and ticket.selected_expert_id==user.id) or user.has_perm("tickets.view_all_tickets"))
return cls.can_operate(user, ticket)
@classmethod
def can_share(cls,user,ticket):
permitted=user.has_perm("tickets.share_ticket") or cls.has_unit_permission(user,ticket.owning_unit,"tickets.share_ticket")
return permitted and cls.can_view(user,ticket) and (ticket.owner_id==user.id or (ticket.owner_id is None and ticket.selected_expert_id==user.id) or user.has_perm("tickets.view_all_tickets"))
return cls.can_operate(user, ticket)
@classmethod
def can_delete(cls, user, ticket):
if not user.is_authenticated or cls.is_customer(user):