%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/support/classes/general/ |
Current File : //home/bitrix/www/bitrix/modules/support/classes/general/usergroup.php |
<? IncludeModuleLangFile(__FILE__); class CSupportUserGroup { function GetList($arOrder = array(), $arFilter = array()) { global $DB; $arFields = array( 'ID' => array( 'TABLE_ALIAS' => 'G', 'FIELD_NAME' => 'ID', 'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime 'JOIN' => false, ), 'NAME' => array( 'TABLE_ALIAS' => 'G', 'FIELD_NAME' => 'NAME', 'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime 'JOIN' => false, ), 'XML_ID' => array( 'TABLE_ALIAS' => 'G', 'FIELD_NAME' => 'XML_ID', 'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime 'JOIN' => false, ), 'SORT' => array( 'TABLE_ALIAS' => 'G', 'FIELD_NAME' => 'SORT', 'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime 'JOIN' => false, ), 'IS_TEAM_GROUP' => array( 'TABLE_ALIAS' => 'G', 'FIELD_NAME' => 'IS_TEAM_GROUP', 'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime 'JOIN' => false, ), ); $strOrder = ''; if (is_array($arOrder) && count($arOrder) > 0) { foreach ($arOrder as $k => $v) { if (array_key_exists($k, $arFields)) { $v = strtoupper($v); if($v != 'DESC') { $v ='ASC'; } if (strlen($strOrder) > 0) { $strOrder .= ', '; } $strOrder .= $arFields[$k]['TABLE_ALIAS'] . '.' . $arFields[$k]['FIELD_NAME'] . ' ' . $v; } } } $obQueryWhere = new CSQLWhere; $obQueryWhere->SetFields($arFields); $where = $obQueryWhere->GetQuery($arFilter); $strQuery = 'SELECT G.* FROM b_ticket_ugroups G'; if (strlen($where) > 0) { $strQuery .= ' WHERE ' . $where; } if (strlen($strOrder) > 0) { $strQuery .= ' ORDER BY ' . $strOrder; } return $DB->Query($strQuery, false, "File: ".__FILE__."<br>Line: ".__LINE__); } function Add($arFields) { global $DB, $APPLICATION; if ($this->CheckFields($arFields)) { return $DB->Add('b_ticket_ugroups', $arFields); } return false; } function Update($ID, $arFields) { global $DB, $APPLICATION; $ID = intval($ID); if ($this->CheckFields($arFields, $ID)) { $strUpdate = $DB->PrepareUpdate('b_ticket_ugroups', $arFields); $DB->Query("UPDATE b_ticket_ugroups SET $strUpdate WHERE ID=$ID"); return true; } return false; } 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; } function Delete($ID) { global $DB; $ID = intval($ID); if ($ID > 0) { $DB->Query('DELETE FROM b_ticket_user_ugroup WHERE GROUP_ID=' . $ID); $DB->Query('DELETE FROM b_ticket_ugroups WHERE ID=' . $ID); } } function GetUserGroupList($arOrder = array(), $arFilter = array()) { return CSupportUser2UserGroup::GetList($arOrder, $arFilter); } function AddUserGroup($arFields) { return CSupportUser2UserGroup::Add($arFields); } function UpdateUserGroup($groupID, $userID, $arFields) { return CSupportUser2UserGroup::Update($groupID, $userID, $arFields); } function DeleteUserGroup($groupID, $userID) { return CSupportUser2UserGroup::Delete($groupID, $userID); } } ?>