1. проверяем если пользователь авторизован
2. получаем группы для него
3. проверяем in_array нужной группы в массиве групп, полученных на втором шаге.
То есть, грубо говоря, вот так
if ($USER->IsAuthorized())
{
$arGroups = CUser::GetUserGroup($USER->GetID());
if (in_array(USERGROUP_MODER, $arGroups ))
{
//ставим нужные разрешения
}
}
Однако, в этих же целях бывает удобнее использовать CSite::InGroup(array $groups). В лучших традициях Битрикса эта функция хоть и присутствует в документации, но описанием там и не пахнет =)
Допустим, нам нужно разрешение на правку, если юзверь является Модератором или Админом.
if (CSite::InGroup(array(USERGROUP_MODER, USERGROUP_ADMIN)))
{
//ставим нужные разрешения
}
Заметим, что логика в обработке массива групп - ИЛИ.
Комментариев нет:
Отправить комментарий