mirror of
https://github.com/opensupports/opensupports.git
synced 2025-07-31 01:35:15 +02:00
Allows all staff members in charge of the department of a ticket to manage it (change its department, priority, comment on it, etc.)
This commit is contained in:
parent
5073188d71
commit
c70e9a444d
@ -50,26 +50,20 @@ class ChangePriorityController extends Controller {
|
|||||||
$ticket = Ticket::getByTicketNumber($ticketNumber);
|
$ticket = Ticket::getByTicketNumber($ticketNumber);
|
||||||
$user = Controller::getLoggedUser();
|
$user = Controller::getLoggedUser();
|
||||||
|
|
||||||
if (!$user->canManageTicket($ticket)) throw new RequestException(ERRORS::NO_PERMISSION);
|
if(!$user->canManageTicket($ticket)) throw new RequestException(ERRORS::NO_PERMISSION);
|
||||||
|
|
||||||
|
$ticket->priority = $priority;
|
||||||
|
$ticket->unread = !$ticket->isAuthor($user);
|
||||||
|
$event = Ticketevent::getEvent(Ticketevent::PRIORITY_CHANGED);
|
||||||
|
$event->setProperties(array(
|
||||||
|
'authorStaff' => Controller::getLoggedUser(),
|
||||||
|
'content' => $ticket->priority,
|
||||||
|
'date' => Date::getCurrentDate()
|
||||||
|
));
|
||||||
|
$ticket->addEvent($event);
|
||||||
|
$ticket->store();
|
||||||
|
|
||||||
if($ticket->owner && $user->id === $ticket->owner->id) {
|
Log::createLog('PRIORITY_CHANGED', $ticket->ticketNumber);
|
||||||
$ticket->priority = $priority;
|
Response::respondSuccess();
|
||||||
$ticket->unread = !$ticket->isAuthor($user);
|
|
||||||
$event = Ticketevent::getEvent(Ticketevent::PRIORITY_CHANGED);
|
|
||||||
$event->setProperties(array(
|
|
||||||
'authorStaff' => Controller::getLoggedUser(),
|
|
||||||
'content' => $ticket->priority,
|
|
||||||
'date' => Date::getCurrentDate()
|
|
||||||
));
|
|
||||||
$ticket->addEvent($event);
|
|
||||||
$ticket->store();
|
|
||||||
|
|
||||||
Log::createLog('PRIORITY_CHANGED', $ticket->ticketNumber);
|
|
||||||
Response::respondSuccess();
|
|
||||||
} else {
|
|
||||||
throw new RequestException(ERRORS::NO_PERMISSION);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,19 +61,15 @@ class CloseController extends Controller {
|
|||||||
|
|
||||||
public function handler() {
|
public function handler() {
|
||||||
$this->ticket = Ticket::getByTicketNumber(Controller::request('ticketNumber'));
|
$this->ticket = Ticket::getByTicketNumber(Controller::request('ticketNumber'));
|
||||||
|
$user = Controller::getLoggedUser();
|
||||||
|
|
||||||
if(
|
if(!Controller::isStaffLogged() && Controller::isUserSystemEnabled() &&
|
||||||
(Controller::isUserSystemEnabled() || Controller::isStaffLogged()) &&
|
!$this->ticket->isAuthor($user)){
|
||||||
!$this->ticket->isOwner(Controller::getLoggedUser()) &&
|
|
||||||
!$this->ticket->isAuthor(Controller::getLoggedUser())
|
|
||||||
) {
|
|
||||||
throw new RequestException(ERRORS::NO_PERMISSION);
|
throw new RequestException(ERRORS::NO_PERMISSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Controller::isStaffLogged()){
|
if(Controller::isStaffLogged() && (!$user->canManageTicket($this->ticket))){
|
||||||
$user = Controller::getLoggedUser();
|
throw new RequestException(ERRORS::NO_PERMISSION);
|
||||||
|
|
||||||
if (!$user->canManageTicket($this->ticket)) throw new RequestException(ERRORS::NO_PERMISSION);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->markAsUnread();
|
$this->markAsUnread();
|
||||||
|
@ -83,7 +83,7 @@ class CommentController extends Controller {
|
|||||||
$isOwner = $this->ticket->isOwner(Controller::getLoggedUser());
|
$isOwner = $this->ticket->isOwner(Controller::getLoggedUser());
|
||||||
$user = Controller::getLoggedUser();
|
$user = Controller::getLoggedUser();
|
||||||
|
|
||||||
if((Controller::isUserSystemEnabled() || Controller::isStaffLogged()) && !$isOwner && !$isAuthor) {
|
if(!Controller::isStaffLogged() && Controller::isUserSystemEnabled() && !$isAuthor){
|
||||||
throw new RequestException(ERRORS::NO_PERMISSION);
|
throw new RequestException(ERRORS::NO_PERMISSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user