/** * Update ticket status when user added. * Trigger also adding user groups if feature enabled * @param Ticket_User $item Ticket_User object * @return nothing */ static function item_add_user(Ticket_User $item) { $users_id = $item->input['users_id']; $tickets_id = $item->input['tickets_id']; $ticket = new Ticket(); $ticket->getFromDB($tickets_id); $groups_id = array(); self::removeAssignUsers($tickets_id, $users_id); // == Add user groups on modification == //check this plugin config if ($_SESSION['plugins']['escalade']['config']['use_assign_user_group'] == 0 || $_SESSION['plugins']['escalade']['config']['use_assign_user_group_modification'] == 0) { 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); } if (!empty($groups_id)) { $group_ticket = new Group_Ticket(); //The ticket cannot have this group already assigned $found = $group_ticket->find("tickets_id = {$tickets_id} AND groups_id = {$groups_id}\n AND type = " . CommonITILActor::ASSIGN); if (!empty($found)) { return; } //prevent user removal $_SESSION['plugin_escalade']['keep_users'][$item->fields['users_id']] = $item->fields['users_id']; //add new group to ticket $group_ticket->add(array('tickets_id' => $tickets_id, 'groups_id' => $groups_id, 'type' => CommonITILActor::ASSIGN)); } else { if ($_SESSION['plugins']['escalade']['config']['remove_tech']) { self::removeAssignGroups($tickets_id); } } //fix ticket status $ticket->update(array('id' => $tickets_id, 'status' => CommonITILObject::ASSIGNED)); }