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 (($save <> '' || $apply <> '') && $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();
foreach ($UIDS as $k => $v)
{
$USERS[] = array(
'USER_ID' => $v,
'CAN_VIEW_GROUP_MESSAGES' => $_POST[$FMUTagName]['CHECKS'][$k],
'CAN_MAIL_GROUP_MESSAGES' => $_POST[$FMUTagName]['MAIL'][$k],
'CAN_MAIL_UPDATE_GROUP_MESSAGES' => $_POST[$FMUTagName]['MAIL_UPDATE'][$k]
);
}
$errors = CSupportUser2UserGroup::SetGroupUsers($ID, $USERS);
$bOK = count($errors) <= 0;
if (!$bOK)
{
$APPLICATION->ThrowException(implode('
', $errors));
}
}
if ($bOK)
{
if ($save <> '') LocalRedirect($LIST_URL . '?lang=' . LANG);
elseif ($new) 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' => '['.$ar_ug["USER_ID"].'] ('.$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);
$context->Show();
if ($message)
echo $message->Show();
$aTabs = array();
$aTabs[] = array(
'DIV' => 'edit1',
'TAB' => GetMessage('SUP_GE_GROUP'),
'TITLE'=>GetMessage('SUP_GE_GROUP_TITLE')
);
$aTabs[] = array(
'DIV' => 'edit2',
'TAB' => GetMessage('SUP_GE_GROUP_USERS'),
'TITLE'=>GetMessage('SUP_GE_GROUP_USERS_TITLE')
);
$tabControl = new CAdminTabControl('tabControl', $aTabs, true, true);
?>