mirror of
https://github.com/opensupports/opensupports.git
synced 2025-04-08 18:35:06 +02:00
update names of departments, ticket search path
This commit is contained in:
parent
74de20641f
commit
ca63c3d08b
@ -363,6 +363,7 @@ export default {
|
|||||||
'NO_PERMISSION': 'You\'ve no permission to access to this page.',
|
'NO_PERMISSION': 'You\'ve no permission to access to this page.',
|
||||||
'INVALID_USER': 'User id is invalid',
|
'INVALID_USER': 'User id is invalid',
|
||||||
'INVALID_TITLE': 'invalid title',
|
'INVALID_TITLE': 'invalid title',
|
||||||
|
'INVALID_NAME': 'invalid name',
|
||||||
'ERROR_RETRIEVING_TICKETS': 'An error occurred while trying to retrieve tickets.',
|
'ERROR_RETRIEVING_TICKETS': 'An error occurred while trying to retrieve tickets.',
|
||||||
'ERROR_RETRIEVING_USERS': 'An error occurred while trying to retrieve users.',
|
'ERROR_RETRIEVING_USERS': 'An error occurred while trying to retrieve users.',
|
||||||
'ERROR_RETRIEVING_BAN_LIST': 'An error occurred while trying to retrieve the list of banned emails.',
|
'ERROR_RETRIEVING_BAN_LIST': 'An error occurred while trying to retrieve the list of banned emails.',
|
||||||
|
@ -104,6 +104,12 @@ class SearchController extends Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function handler() {
|
public function handler() {
|
||||||
|
|
||||||
|
$allowedDepartmentsId = [];
|
||||||
|
foreach (Controller::getLoggedUser()->sharedDepartmentList->toArray() as $department) {
|
||||||
|
array_push($allowedDepartmentsId,$department['id']);
|
||||||
|
}
|
||||||
|
|
||||||
$inputs = [
|
$inputs = [
|
||||||
'closed' => Controller::request('closed'),
|
'closed' => Controller::request('closed'),
|
||||||
'tags' => json_decode(Controller::request('tags')),
|
'tags' => json_decode(Controller::request('tags')),
|
||||||
@ -117,7 +123,7 @@ class SearchController extends Controller {
|
|||||||
'query' => Controller::request('query'),
|
'query' => Controller::request('query'),
|
||||||
'orderBy' => json_decode(Controller::request('orderBy'),true),
|
'orderBy' => json_decode(Controller::request('orderBy'),true),
|
||||||
'page' => Controller::request('page'),
|
'page' => Controller::request('page'),
|
||||||
'allowedDepartments' => Controller::getLoggedUser()->sharedDepartmentList->toArray(),
|
'allowedDepartments' => $allowedDepartmentsId,
|
||||||
'staffId' => Controller::getLoggedUser()->id
|
'staffId' => Controller::getLoggedUser()->id
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -254,28 +260,28 @@ class SearchController extends Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function setDepartmentFilter($departments,$ownDepartments, $idStaff, &$filters){
|
private function setDepartmentFilter($requestedDepartments,$myDepartments, $idStaff, &$filters){
|
||||||
if ($filters != "") $filters .= " and ";
|
if ($filters != "") $filters .= " and ";
|
||||||
|
|
||||||
$restOfDepartments = $this->generateValidDepartmentList($departments, $ownDepartments);
|
$requestedNotOwnedDepartments = $this->generateValidDepartmentList($requestedDepartments, $myDepartments);
|
||||||
$allowedDepartments = $this->generateValidDepartmentList($departments, $ownDepartments, true);
|
$requestedOwnedDepartments = $this->generateValidDepartmentList($requestedDepartments, $myDepartments, true);
|
||||||
$first = TRUE;
|
$first = TRUE;
|
||||||
|
|
||||||
if(!$allowedDepartments && !$restOfDepartments){
|
if(!$requestedOwnedDepartments && !$requestedNotOwnedDepartments){
|
||||||
foreach($ownDepartments as $department) {
|
foreach($myDepartments as $department) {
|
||||||
if($first){
|
if($first){
|
||||||
$filters .= " ( ";
|
$filters .= " ( ";
|
||||||
$first = FALSE;
|
$first = FALSE;
|
||||||
} else {
|
} else {
|
||||||
$filters .= " or ";
|
$filters .= " or ";
|
||||||
}
|
}
|
||||||
$filters .= "ticket.department_id = " . $department['id'];
|
$filters .= "ticket.department_id = " . $department;
|
||||||
}
|
}
|
||||||
$filters .= ")";
|
$filters .= ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
if($allowedDepartments){
|
if($requestedOwnedDepartments){
|
||||||
foreach($allowedDepartments as $department) {
|
foreach($requestedOwnedDepartments as $department) {
|
||||||
if($first){
|
if($first){
|
||||||
$filters .= " ( ";
|
$filters .= " ( ";
|
||||||
$first = FALSE;
|
$first = FALSE;
|
||||||
@ -286,11 +292,11 @@ class SearchController extends Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($restOfDepartments){
|
if($requestedNotOwnedDepartments){
|
||||||
if($allowedDepartments) $filters .= " or ";
|
if($requestedOwnedDepartments) $filters .= " or ";
|
||||||
$filters .= "(ticket.author_staff_id = " . $idStaff . " and ";
|
$filters .= "(ticket.author_staff_id = " . $idStaff . " and ";
|
||||||
$first = TRUE;
|
$first = TRUE;
|
||||||
foreach($restOfDepartments as $department) {
|
foreach($requestedNotOwnedDepartments as $department) {
|
||||||
if($first){
|
if($first){
|
||||||
$filters .= " ( ";
|
$filters .= " ( ";
|
||||||
$first = FALSE;
|
$first = FALSE;
|
||||||
@ -301,7 +307,7 @@ class SearchController extends Controller {
|
|||||||
}
|
}
|
||||||
$filters .= "))";
|
$filters .= "))";
|
||||||
}
|
}
|
||||||
if($allowedDepartments) $filters .= " )";
|
if($requestedOwnedDepartments) $filters .= " )";
|
||||||
}
|
}
|
||||||
|
|
||||||
private function setAuthorFilter($authors, &$filters){
|
private function setAuthorFilter($authors, &$filters){
|
||||||
@ -366,22 +372,19 @@ class SearchController extends Controller {
|
|||||||
$filters .= " (ticket.title LIKE :query or ticket.content LIKE :query or ticket.ticket_number LIKE :query". $ticketevent ." )";
|
$filters .= " (ticket.title LIKE :query or ticket.content LIKE :query or ticket.ticket_number LIKE :query". $ticketevent ." )";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private function generateValidDepartmentList($departments, $allowedDepartments, $allowed = false){
|
private function generateValidDepartmentList($requestedDepartments, $myDepartments, $allowed = false){
|
||||||
$allowedDepartmentsresult = [];
|
$requestedNotOwnedDepartments = [];
|
||||||
$managedDepartments = [];
|
|
||||||
if($departments == null) $departments = [];
|
if($requestedDepartments == null) $requestedDepartments = [];
|
||||||
foreach ($allowedDepartments as $department) {
|
|
||||||
array_push($managedDepartments,$department['id']);
|
$requestedOwnedDepartments = array_values(array_unique(array_intersect($requestedDepartments, $myDepartments)));
|
||||||
}
|
$requestedNotOwnedDepartments = array_values(array_diff($requestedDepartments, $requestedOwnedDepartments));
|
||||||
|
|
||||||
$allowedDepartmentsresult = array_values(array_unique(array_intersect($departments,$managedDepartments)));
|
|
||||||
$authorsDepartments = array_values(array_diff($departments,$allowedDepartmentsresult));
|
|
||||||
|
|
||||||
if($allowed){
|
if($allowed){
|
||||||
return $allowedDepartmentsresult;
|
return $requestedOwnedDepartments;
|
||||||
}else{
|
}else{
|
||||||
return $authorsDepartments;
|
return $requestedNotOwnedDepartments;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user