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))) { //ставим нужные разрешения }
Заметим, что логика в обработке массива групп - ИЛИ.