public static function CheckFields(&$arFields, $ID = 0) { global $APPLICATION; if ($ID > 0) { $rs = CSupportUserGroup::GetList(false, array('ID' => $ID)); if (!$rs->Fetch()) { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_GROUP_NOT_FOUND')); return false; } } if (array_key_exists('NAME', $arFields) && $arFields['NAME'] == '') { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_GROUP_NAME_EMPTY')); return false; } if (array_key_exists('ID', $arFields)) { unset($arFields['ID']); } if (array_key_exists('SORT', $arFields) && !is_numeric($arFields['SORT'])) { unset($arFields['SORT']); } if (array_key_exists('IS_TEAM_GROUP', $arFields)) { $arFields['IS_TEAM_GROUP'] = $arFields['IS_TEAM_GROUP'] == 'Y' ? 'Y' : 'N'; } return true; }
{ $rsGroups = CSupportUserGroup::GetList(array('NAME' => 'ASC'), array('!=IS_TEAM_GROUP' => 'Y')); while ($arGroup = $rsGroups->Fetch()) { $arr['REFERENCE'][] = $arGroup['NAME']; $arr['REFERENCE_ID'][] = $arGroup['ID']; } } else { $arGroupFilter = array('!=IS_TEAM_GROUP' => 'Y'); if($bSupportTeam != 'Y') { $arGroupFilter['USER_ID'] = $USER->GetID(); } $rsGroups = CSupportUserGroup::GetUserGroupList(array('GROUP_NAME' => 'ASC'), $arGroupFilter); while ($arGroup = $rsGroups->Fetch()) { $arr['REFERENCE'][] = $arGroup['GROUP_NAME']; $arr['REFERENCE_ID'][] = $arGroup['GROUP_ID']; } } ?> <tr> <td><?php echo GetMessage('SUP_F_CLIENT_GROUP'); ?> :</td> <td><?php echo SelectBoxMFromArray('find_client_group_id[]', $arr, $find_client_group_id, GetMessage('SUP_ALL'), false, count($arr['REFERENCE']) < 7 ? count($arr['REFERENCE']) + 1 : 7); ?>
} if (array_key_exists($key . '_EXACT_MATCH', $_REQUEST) && $_REQUEST[$key . '_EXACT_MATCH'] == 'Y') { $op = '='; } else { $op = '%'; } if (array_key_exists($key, $_REQUEST) && strlen($_REQUEST[$key]) > 0) { if (in_array($key . '_EXACT_MATCH', $arFilterFields)) { $arFilter[$op . substr($key, 5)] = $_REQUEST[$key]; } else { $arFilter[substr($key, 5)] = $_REQUEST[$key]; } } } if ($bAdmin && $lAdmin->EditAction()) { $obSUG = new CSupportUserGroup(); foreach ($FIELDS as $ID => $arFields) { $ID = intval($ID); if (!$lAdmin->IsUpdated($ID)) { continue; } $arUpdate["SORT"] = intval($arFields["SORT"]); if (!$obSUG->Update($ID, $arUpdate)) { $ex = $APPLICATION->GetException(); $lAdmin->AddUpdateError($ex->GetString(), $ID); } /* if (strlen(trim($arFields["NAME"]))>0) { CTicketSLA::Set(array("NAME" => $arFields["NAME"], "PRIORITY" => $arFields["PRIORITY"]), $ID); }
function CheckFields(&$arFields, $groupID = 0, $userID = 0) { global $APPLICATION, $DB, $USER; $groupID = intval($groupID); $userID = intval($userID); if (!is_array($arFields)) { $arFields = array(); } //if update if ($userID > 0 || $groupID > 0) { if ($userID <= 0) { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_USER_ID_EMPTY')); return false; } if ($groupID <= 0) { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_GROUP_ID_EMPTY')); return false; } if (array_key_exists('GROUP_ID', $arFields)) { unset($arFields['GROUP_ID']); } if (array_key_exists('USER_ID', $arFields)) { unset($arFields['USER_ID']); } } //if add if ($userID <= 0 && $groupID <= 0) { $arFields['GROUP_ID'] = array_key_exists('GROUP_ID', $arFields) ? intval($arFields['GROUP_ID']) : 0; $arFields['USER_ID'] = array_key_exists('USER_ID', $arFields) ? intval($arFields['USER_ID']) : 0; if ($arFields['USER_ID'] <= 0) { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_USER_ID_EMPTY')); return false; } if ($arFields['GROUP_ID'] <= 0) { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_GROUP_ID_EMPTY')); return false; } $rs = $USER->GetByID($arFields['USER_ID']); if (!$rs->Fetch()) { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_NO_USER')); return false; } $rs = CSupportUserGroup::GetList(false, array('ID' => $arFields['GROUP_ID'])); if (!($arGroup = $rs->Fetch())) { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_NO_GROUP')); return false; } if (CTicket::IsAdmin($arFields['USER_ID']) || CTicket::IsSupportTeam($arFields['USER_ID'])) { if ($arGroup['IS_TEAM_GROUP'] != 'Y') { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_USER_NO_CLIENT')); return false; } } elseif (CTicket::IsSupportClient($arFields['USER_ID'])) { if ($arGroup['IS_TEAM_GROUP'] == 'Y') { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_USER_NO_TEAM')); return false; } } else { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_NO_SUPPORT_USER')); return false; } $rs = CSupportUser2UserGroup::GetList(false, array('GROUP_ID' => $arFields['GROUP_ID'], 'USER_ID' => $arFields['USER_ID'])); if ($rs->Fetch()) { $APPLICATION->ThrowException(GetMessage('SUP_ERROR_USERGROUP_EXISTS')); return false; } } if (array_key_exists('CAN_VIEW_GROUP_MESSAGES', $arFields)) { $arFields['CAN_VIEW_GROUP_MESSAGES'] = $arFields['CAN_VIEW_GROUP_MESSAGES'] == 'Y' ? 'Y' : 'N'; } elseif ($userID <= 0 && $groupID <= 0) { $arFields['CAN_VIEW_GROUP_MESSAGES'] = 'N'; } if (array_key_exists('CAN_MAIL_GROUP_MESSAGES', $arFields)) { $arFields['CAN_MAIL_GROUP_MESSAGES'] = $arFields['CAN_MAIL_GROUP_MESSAGES'] == 'Y' ? 'Y' : 'N'; } elseif ($userID <= 0 && $groupID <= 0) { $arFields['CAN_MAIL_GROUP_MESSAGES'] = 'N'; } return true; }
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/support/prolog.php"; CModule::IncludeModule('support'); IncludeModuleLangFile(__FILE__); $FMUTagName = 'USER_IDS'; $FMUFormID = 'form1'; $bDemo = CTicket::IsDemo(); $bAdmin = CTicket::IsAdmin(); if (!$bAdmin && !$bDemo) { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } $LIST_URL = '/bitrix/admin/ticket_group_list.php'; $ID = intval($ID); $message = false; if ((strlen($save) > 0 || strlen($apply) > 0) && $REQUEST_METHOD == 'POST' && $bAdmin && check_bitrix_sessid()) { $obSUG = new CSupportUserGroup(); $bOK = false; $new = false; $arParams = array('NAME' => $_POST['NAME'], 'SORT' => IntVal($_POST['SORT']), 'XML_ID' => $_POST['XML_ID'], 'IS_TEAM_GROUP' => $_POST['IS_TEAM_GROUP']); if ($ID > 0) { $bOK = $obSUG->Update($ID, $arParams); } else { if ($ID = $obSUG->Add($arParams)) { $bOK = true; $new = true; } } if ($bOK && isset($_POST[$FMUTagName]['VALS']) && is_array($_POST[$FMUTagName]['VALS'])) { $UIDS = array_map('intval', $_POST[$FMUTagName]['VALS']); $UIDS = array_unique($UIDS); $USERS = array();