ISecurityService - интерфейс |
Пространство имён: EleWise.ELMA.Security
public interface ISecurityService
Тип ISecurityService предоставляет следующие члены.
Имя | Описание | |
---|---|---|
CanCheckPermission(Permission, Object) |
Проверить возможность запроса привилегии для объекта
| |
CanCheckPermission(Permission, Type) |
Проверить возможность запроса привилегии для типа
| |
GetUsersByPermissions |
Получить пользователей обладающие привилегиями
| |
HasPermission(Permission) |
Проверить обладание привелегей текущего пользователя
| |
HasPermission(IUser, Permission) |
Проверить обладание привелегей пользователя
| |
HasPermission(IUser, Permission, IPermissionTarget) |
Проверить обладание привилегией пользователя относительно экземпляра объекта
| |
HasPermission(IUser, Permission, Type) |
Проверить обладание привилегией пользователя относительно типа
| |
HasPermission(Permission, Object, Boolean) |
Проверить обладание привилегией текущего пользователя относительно экземпляра объекта
Например, право "редактировать документ" или право "закрыть задачу".
| |
HasPermission(Permission, Type, Boolean) |
Проверить обладание привилегией текущего пользователя относительно типа
| |
HasPermission(IUser, Permission, Object, Boolean) |
Проверить обладание привилегией пользователя относительно экземпляра объекта
Например, право "редактировать документ" или право "закрыть задачу".
| |
HasPermission(IUser, Permission, Type, Boolean) |
Проверить обладание привилегией пользователя относительно типа
| |
HasPermission(IUser, Permission, Type, PropertyInfo) |
Проверить обладание привилегией пользователя относительно поля типа
| |
RunBySystemUser |
Запустить код от имени системного пользователя с повышенными привилегиями.
Внутри производится авторизация под системным пользователем и вызывается метод RunWithElevatedPrivilegies.
| |
RunByUser |
Запустить от имени пользователя
| |
RunWithElevatedPrivilegies |
Запустить код с повышенными привилегиями.
Сделует использовать для загрузки данныз из БД без фильтрации по привилегиям (методы IEntityManager.Load и IEntityManager.Find).
| |
RunWithElevatedPrivilegiesAndWithDeleted |
Запуск без фильтрации по пермишеннам и удалению
| |
RunWithUsualPrivilegies |
Запустить с обычными привилегиями
|
//С помощью данного сервиса можно проверять на наличие привелегий у пользователей и запускать какие-либо //действия от лица определённого пользователя с ограниченными или полными правами //запишем сервис в переменную, чтобы с ним легче было работать var service = Locator.GetServiceNotNull<ISecurityService>(); //Чтобы проверить наличие привелегий, используйте следующие функции: //1.HasPermission(user, permission) - проверить наличие привелегии у определённого пользователя var hasPermission = service.HasPermission(user, permission); //2.HasPermission(permission) - проверить наличие привелегии у текущего пользователя var hasPermission = service.HasPermission(permission); //3.HasPermission(user, permission, permissionSubject, skipAdmin) - проверить наличие привилегии у пользователя относительно экземпляра объекта var hasPermission = service.HasPermission(user, permission, permissionSubject, skipAdmin); //4.HasPermission(permission, target, skipAdmin) - проверить наличие привилегии у текущего пользователя относительно экземпляра объекта var hasPermission = service.HasPermission(permission, target, skipAdmin); //Чтобы проверить возможность проверки на наличие привелегии, используйте функцию CanCheckPermission(permission, target) var canCheck = service.CanCheckPermission(permission, target); //Чтобы запустить код с теми или иными привилегиями используйте следующие функции: //1.RunWithElevatedPrivilegies(action) - запустить код с повышенными привилегиями. service.RunWithElevatedPrivilegies(() => { Console.WriteLine("Это работает!"); }); //2.RunWithElevatedPrivilegiesAndWithDeleted(action) - запустить без фильтрации по пермишеннам и удалению service.RunWithElevatedPrivilegiesAndWithDeleted(() => { Console.WriteLine("Это работает!"); }); //3.RunWithUsualPrivilegies(action) - запустить с обычными привилегиями service.RunWithUsualPrivilegies(() => { Console.WriteLine("Это работает!"); }); //Чтобы запустить код от лица какого-либо пользователя используйте следующие функции: //1.RunBySystemUser(action) - запустить код от имени системного пользователя с повышенными привилегиями. service.RunBySystemUser(() => { Console.WriteLine("Это работает!"); }); //2.RunByUser(user, action) - запустить код от имени пользователя service.RunByUser(user, () => { Console.WriteLine("Это работает!"); });