logo

Проверка на принадлежность пользователя группе

Проверить, входит ли текущий авторизованный пользователь в заданную группу (например, в группу "Администраторы") можно с помощью сценариев, описанных в данной статье.

Пример сценария с использованием PublicAPI

Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.12.1 включительно.

Пространство имен:

using EleWise.ELMA.API;

Текст сценария:

PublicAPI.Portal.Security.UserGroup.CheckUserInGroup(PublicAPI.Portal.Security.User.GetCurrentUser(), 
PublicAPI.Portal.Security.UserGroup.Find("Name = ’Администраторы’").FirstOrDefault())

Пример сценария без использования PublicAPI

Пространства имен:

using EleWise.ELMA.Security.Managers;
using EleWise.ELMA.Security.Models;
using EleWise.ELMA.Security.Services;

Текст сценария:

//загружаем группу "Администраторы"
var admins = UserGroupManager.Instance.Load("Администраторы");
//определяем, принадлежит ли текущий пользователь данной группе
var inAdmins = UserGroupManager.Instance.GetUsersByGroup(admins.Id).Any(a => a == AuthenticationService.GetCurrentUser<IUser>().Id);

В результате локальная булевая переменная inAdmins примет значение true, если пользователь является членом группы "Администраторы", и false в противном случае.

Вместо AuthenticationService.GetCurrentUser<IUser>() можно указать любую переменную типа Пользователь, например, контекстную или локальную.