GetUserRoles
Описание и параметры
string CMain::GetUserRoles( string module_id, mixed groups = false, string use_default_role = "Y", string max_role_for_super_admin = "Y", string site_id=false )
Возвращает массив ролей для определённого набора групп (по умолчанию - это группы текущего пользователя).
Как правило в каждом модуле определены свои символы означающие ту или иную роль. Установка своего уникального набора ролей для каждого модуля осуществляется методом GetModuleRightList класса с именем равным ID модуля. Например, для модуля техподдержки, это будет метод support::GetModuleRightList(), описанный в файле /bitrix/modules/support/install/index.php.
Администрирование ролей обычно осуществляется в настройках соответствующего модуля.
Примечание. Для любого модуля роль с максимальными правами (администратор модуля) всегда обозначается символом "W", с минимальным правами - символом "D" (доступ к модулю закрыт).
Нестатический метод.
Параметры
| Параметр | Описание | С версии |
|---|---|---|
| module_id | ID модуля. | |
| groups | Массив групп для которых необходимо определить их роли. Если значение - "false", то будет взят массив групп текущего пользователя. Необязательный. По умолчанию - "false". | |
| use_default_role | Если значение - "Y", то для определения массива ролей будет учитываться роль установленная по умолчанию. Необязательный. По умолчанию - "Y". | |
| max_role_for_super_admin | Если значение - "Y" и groups = false, то пользователю входящему в группу администраторов (группа #1) всегда будет возвращаться массив ролей с обязательно включенной туда ролью с максимальными правами - "W". Необязательный. По умолчанию - "Y". | |
| site_id | ID сайта. Необязательный. По умолчанию "false". | 10.0.11 |
Смотрите также
Примеры использования
<?
// получим массив ролей текущего пользователя в модуле "Техподдержка"
$arRoles = $APPLICATION->GetUserRoles("support");
if(in_array("R",$arRoles))
$strNote = "У вас есть право задавать вопросы техподдержке.";
if(in_array("T",$arRoles))
$strNote = "Вы являетесь сотрудником техподдержки.";
if(in_array("V",$arRoles))
$strNote = "Вы можете просматривать все обращения техподдержки без права модификации.";
if(in_array("W",$arRoles))
$strNote = "Вы являетесь администратором техподдержки.";
if ($arRoles==array("D"))
$APPLICATION->AuthForm("Доступ к модулю техподдержки запрещён.");
ShowNote($strNote);
?>