• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/lib/security/rolemanager.php
  • Класс: BitrixVoximplantSecurityRoleManager
  • Вызов: RoleManager::setRolePermissions
static function setRolePermissions($roleId, array $permissions)
{
	$roleId = (int)$roleId;
	if($roleId <= 0)
	{
		throw new ArgumentException('Role id should be greater than zero', 'roleId');
	}

	$normalizedPermissions = Permissions::getNormalizedPermissions($permissions);
	RolePermissionTable::deleteByRoleId($roleId);
	if(static::$permissions)
	{
		static::$permissions[$roleId] = [];
	}
	foreach ($normalizedPermissions as $entity => $actions)
	{
		foreach ($actions as $action => $permission)
		{
			RolePermissionTable::add([
				'ROLE_ID' => $roleId,
				'ENTITY' => $entity,
				'ACTION' => $action,
				'PERMISSION' => $permission
			]);

			if(static::$permissions)
			{
				static::$permissions[$roleId][$entity][$action] = $permission;
			}
		}
	}
	Helper::clearMenuCache();
}