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); ?>