public static function GetUserGroupList($arOrder = array(), $arFilter = array()) { return CSupportUser2UserGroup::GetList($arOrder, $arFilter); }
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; }
LocalRedirect($APPLICATION->GetCurPage() . '?ID=' . $ID . '&lang=' . LANG . '&tabControl_active_tab=' . urlencode($tabControl_active_tab)); } } else { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage('SUP_GE_ERROR'), $e); } } } $rsGroups = CSupportUserGroup::GetList(false, array('ID' => $ID)); $arGroup = $rsGroups->GetNext(); if (!$arGroup) { $ID = 0; } $arGroupUsers = array(); if ($arGroup) { $rs_ug = CSupportUser2UserGroup::GetList(false, array('GROUP_ID' => $ID)); while ($ar_ug = $rs_ug->GetNext()) { $arGroupUsers[] = array('USER_ID' => $ar_ug['USER_ID'], 'CAN_VIEW_GROUP_MESSAGES' => $ar_ug['CAN_VIEW_GROUP_MESSAGES'], 'CAN_MAIL_GROUP_MESSAGES' => $ar_ug['CAN_MAIL_GROUP_MESSAGES'], 'CAN_MAIL_UPDATE_GROUP_MESSAGES' => $ar_ug['CAN_MAIL_UPDATE_GROUP_MESSAGES'], 'USER_NAME' => '[<a title="' . GetMessage("MAIN_USER_PROFILE") . '" href="user_edit.php?ID=' . $ar_ug["USER_ID"] . '&lang=' . LANG . '">' . $ar_ug["USER_ID"] . '</a>] (' . $ar_ug["LOGIN"] . ') ' . $ar_ug["FIRST_NAME"] . ' ' . $ar_ug["LAST_NAME"]); } } $arGroupUsers[] = array('USER_ID' => ''); $arGroupUsers[] = array('USER_ID' => ''); $arGroupUsers[] = array('USER_ID' => ''); if ($ID > 0) { $APPLICATION->SetTitle(GetMessage('SUP_GE_TITLE_EDIT', array('%GROUP_NAME%' => $arGroup['~NAME']))); } else { $APPLICATION->SetTitle(GetMessage('SUP_GE_TITLE_NEW')); } require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; $aMenu = array(array('ICON' => 'btn_list', 'TEXT' => GetMessage('SUP_GE_GROUPS_LIST'), 'LINK' => $LIST_URL . '?lang=' . LANG)); $context = new CAdminContextMenu($aMenu);