Документация для разработчиков
Темная тема

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


© «Битрикс», 2001-2024, «1С-Битрикс», 2024