Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
	{
		$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);
        }
Ejemplo n.º 4
0
 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();