From 8e555522fb970c1f0fdf8623ed4596cb1142f2c0 Mon Sep 17 00:00:00 2001 From: Walid Nouh Date: Tue, 9 Aug 2022 08:13:44 +0200 Subject: [PATCH 1/3] Add an option to take user's default group on escalade --- inc/config.class.php | 1 + inc/ticket.class.php | 81 +++++++++++++++++++++++++++----------------- inc/user.class.php | 11 ++++++ 3 files changed, 62 insertions(+), 31 deletions(-) diff --git a/inc/config.class.php b/inc/config.class.php index 78763852..fb3783cf 100644 --- a/inc/config.class.php +++ b/inc/config.class.php @@ -170,6 +170,7 @@ function hide_show_history(val) { 0 => __("No"), 1 => __('First'), 2 => __('Last'), + 3 => __('Default user\'s group', 'escalade') ]; $rand = mt_rand(); diff --git a/inc/ticket.class.php b/inc/ticket.class.php index 793be334..1993a6c8 100644 --- a/inc/ticket.class.php +++ b/inc/ticket.class.php @@ -366,31 +366,44 @@ static function assignUserGroup(Ticket $ticket) { || $_SESSION['plugins']['escalade']['config']['use_assign_user_group_creation'] == 0) { return false; } - + if (isset($ticket->input['_users_id_assign']) && $ticket->input['_users_id_assign'] > 0 && (!isset($ticket->input['_groups_id_assign']) || $ticket->input['_groups_id_assign'] <= 0)) { - if ($_SESSION['plugins']['escalade']['config']['use_assign_user_group'] == 1) { - // First group - $ticket->input['_groups_id_assign'] - = PluginEscaladeUser::getTechnicianGroup($ticket->input['entities_id'], - $ticket->input['_users_id_assign'], - true); - //prevent adding empty group - if (empty($ticket->input['_groups_id_assign'])) { - unset($ticket->input['_groups_id_assign']); - } - } else { - // All groups - $ticket->input['_additional_groups_assigns'] - = PluginEscaladeUser::getTechnicianGroup($ticket->input['entities_id'], - $ticket->input['_users_id_assign'], - false); - //prevent adding empty group - if (empty($ticket->input['_additional_groups_assigns'])) { - unset($ticket->input['_additional_groups_assigns']); - } + switch ($_SESSION['plugins']['escalade']['config']['use_assign_user_group']) { + case 1 : + // First group + $ticket->input['_groups_id_assign'] + = PluginEscaladeUser::getTechnicianGroup($ticket->input['entities_id'], + $ticket->input['_users_id_assign'], + true); + //prevent adding empty group + if (empty($ticket->input['_groups_id_assign'])) { + unset($ticket->input['_groups_id_assign']); + } + break; + case 2: + // All groups + $ticket->input['_additional_groups_assigns'] + = PluginEscaladeUser::getTechnicianGroup($ticket->input['entities_id'], + $ticket->input['_users_id_assign'], + false); + //prevent adding empty group + if (empty($ticket->input['_additional_groups_assigns'])) { + unset($ticket->input['_additional_groups_assigns']); + } + break; + + case 3: + $groups_id = PluginEscaladeUser::getUserDefaultGroup($item->fields['users_id']); + if (!$groups_id) { + //prevent adding empty group + if (empty($ticket->input['_additional_groups_assigns'])) { + unset($ticket->input['_additional_groups_assigns']); + } + } + break; } } @@ -534,16 +547,22 @@ static function item_add_user(Ticket_User $item, $type = CommonITILActor::ASSIGN return true; } - if ($_SESSION['plugins']['escalade']['config']['use_assign_user_group'] == 1) { - // First group - $groups_id = PluginEscaladeUser::getTechnicianGroup($ticket->fields['entities_id'], - $item->fields['users_id'], - true); - } else { - // All groups - $groups_id = PluginEscaladeUser::getTechnicianGroup($ticket->fields['entities_id'], - $item->fields['users_id'], - false); + switch ($_SESSION['plugins']['escalade']['config']['use_assign_user_group']) { + case 1: + // First group + $groups_id = PluginEscaladeUser::getTechnicianGroup($ticket->fields['entities_id'], + $item->fields['users_id'], + true); + break; + case 2: + // All groups + $groups_id = PluginEscaladeUser::getTechnicianGroup($ticket->fields['entities_id'], + $item->fields['users_id'], + false); + break; + case 3: + $groups_id = PluginEscaladeUser::getUserDefaultGroup($item->fields['users_id']); + break; } if (!empty($groups_id)) { diff --git a/inc/user.class.php b/inc/user.class.php index 177e8a0a..76eae0f8 100644 --- a/inc/user.class.php +++ b/inc/user.class.php @@ -107,6 +107,17 @@ static function getTechnicianGroup($entity, $userid, $first = true) { return self::getUserGroup($entity, $userid, '`is_assign`', $first); } + static function getUserDefaultGroup($users_id) { + $groups_id = 0; + + $user = new User(); + $user->getFromDB($users_id); + if ($user->getField('groups_id')) { + $groups_id = $user->getField('groups_id'); + } + return $groups_id; + } + function showForm($ID, array $options = []) { $is_exist = $this->getFromDBByCrit(['users_id' => $ID]); From 8da466388af0892af034416fe54290a3ecd5dd78 Mon Sep 17 00:00:00 2001 From: Walid Nouh Date: Wed, 17 Aug 2022 13:41:33 +0200 Subject: [PATCH 2/3] Add comments and remove usage of getField method --- inc/ticket.class.php | 6 ++++-- inc/user.class.php | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/inc/ticket.class.php b/inc/ticket.class.php index 1993a6c8..81878c9a 100644 --- a/inc/ticket.class.php +++ b/inc/ticket.class.php @@ -384,7 +384,7 @@ static function assignUserGroup(Ticket $ticket) { } break; case 2: - // All groups + // Last groups $ticket->input['_additional_groups_assigns'] = PluginEscaladeUser::getTechnicianGroup($ticket->input['entities_id'], $ticket->input['_users_id_assign'], @@ -396,7 +396,9 @@ static function assignUserGroup(Ticket $ticket) { break; case 3: - $groups_id = PluginEscaladeUser::getUserDefaultGroup($item->fields['users_id']); + //User's default group + $ticket->input['_additional_groups_assigns'] + = PluginEscaladeUser::getUserDefaultGroup($item->fields['users_id']); if (!$groups_id) { //prevent adding empty group if (empty($ticket->input['_additional_groups_assigns'])) { diff --git a/inc/user.class.php b/inc/user.class.php index 76eae0f8..7351bd95 100644 --- a/inc/user.class.php +++ b/inc/user.class.php @@ -112,8 +112,8 @@ static function getUserDefaultGroup($users_id) { $user = new User(); $user->getFromDB($users_id); - if ($user->getField('groups_id')) { - $groups_id = $user->getField('groups_id'); + if ($user->fields['groups_id']) { + $groups_id = $user->fields['groups_id']; } return $groups_id; } From c2ae9dbdc148ac7f0e5abb54db74ee72f77e8c7f Mon Sep 17 00:00:00 2001 From: Walid Nouh <341007+wawax@users.noreply.github.com> Date: Wed, 7 Sep 2022 10:42:00 +0200 Subject: [PATCH 3/3] Update inc/ticket.class.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cédric Anne --- inc/ticket.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/ticket.class.php b/inc/ticket.class.php index 81878c9a..8a5e8cc3 100644 --- a/inc/ticket.class.php +++ b/inc/ticket.class.php @@ -399,7 +399,7 @@ static function assignUserGroup(Ticket $ticket) { //User's default group $ticket->input['_additional_groups_assigns'] = PluginEscaladeUser::getUserDefaultGroup($item->fields['users_id']); - if (!$groups_id) { + if (empty($ticket->input['_additional_groups_assigns'])) { //prevent adding empty group if (empty($ticket->input['_additional_groups_assigns'])) { unset($ticket->input['_additional_groups_assigns']);