|
@@ -14,7 +14,16 @@ def remove_attachment(request, attachment_id):
|
|
|
attachment = get_object_or_404(Attachment, pk=attachment_id)
|
|
|
|
|
|
# Permissions
|
|
|
- if not (attachment.ticket.ticket_list.group in request.user.groups.all()or request.user.is_superuser):
|
|
|
+ is_admin_or_staff = request.user.is_superuser or request.user.is_staff
|
|
|
+ is_attachment_accessible = (
|
|
|
+ attachment.added_by == request.user or
|
|
|
+ attachment.ticket.created_by == request.user and (
|
|
|
+ attachment.ticket.assigned_to == request.user or
|
|
|
+ attachment.ticket.list.group in request.user.groups.all()
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+ if not (is_admin_or_staff or is_attachment_accessible):
|
|
|
raise PermissionDenied
|
|
|
|
|
|
if remove_attachment_file(attachment.id):
|