Делаю получение email из $arMessageFields["FIELD_FROM"] с помощью регулярных выражений, после чего надо получить ID юзера, его группы и максимальные права доступа к модулю "Техподдержка". Делаю так:
Код |
---|
$regEx = "/([\s]*)[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i";
preg_match_all($regEx, $arMessageFields["FIELD_FROM"], $emailsArr);
$arMyRes = CUser::GetList(($by="id"), ($order="asc"), array("EMAIL" => $emailsArr[0][0]));
if ($arMyRes2 = $arMyRes->Fetch()) {
$arUsGr = CUser::GetUserGroup($arMyRes2 ["ID"]);
if($APPLICATION->GetUserRight("support", $arUsGr) <= "D")
return false;
return true;
} else {
return false;
} |
Данный код - правило для почтового ящика, с которого создается обращение в службу поддержки. Суть такова: Если пользователь с email, с которого пришло сообщение на почту, не зарегистрирован на сайте, или имеет права доступа к модулю "техподдержка" меньше или равно "D" (доступ закрыт), то новое обращение не создавать. Но как только получаю почту, то появляется ошибка:
Цитата |
---|
Fatal error: Call to a member function GetUserRight() on a non-object in ........ ./bitrix/modules/mail/classes/general/mail.php(2684) : e val()'d code on line 7 |
Не могу понять в чем проблема, ведь GetUserGroup возвращает массив групп, в которых состоит пользователь, а в GetUserRight("support", $arUsGr) указываю имя модуля и массив групп. По-идеи ведь так?!
В чем моя ошибка?