Проверка на принадлежность пользователя группе
Проверить, входит ли текущий авторизованный пользователь в заданную группу (например, в группу "Администраторы") можно с помощью сценариев, описанных в данной статье.
Пример сценария с использованием 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>() можно указать любую переменную типа Пользователь, например, контекстную или локальную.