убрали simpleview
This commit is contained in:
parent
65b2c39f0b
commit
349ba066fd
@ -31,11 +31,6 @@ namespace DatabaseCore
|
||||
Access access = null;
|
||||
if (model != null)
|
||||
{
|
||||
// простой просмотр возможен
|
||||
if (model.Model.SkipCheck && model.Type == AccessType.SimpleView)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// если не указан идентификатор пользователя, то смотрим, может он авторизован
|
||||
if (!model.Model.UserId.HasValue && User.HasValue)
|
||||
{
|
||||
@ -60,7 +55,7 @@ namespace DatabaseCore
|
||||
}
|
||||
switch (model.Type)
|
||||
{
|
||||
case AccessType.FullView:
|
||||
case AccessType.View:
|
||||
ErrorMessage = $"Нет доступа на чтение данных по сущности '{model.Entity}'";
|
||||
return false;
|
||||
case AccessType.Change:
|
||||
|
@ -7,11 +7,6 @@ namespace ModuleTools.BindingModels
|
||||
/// </summary>
|
||||
public class AccessBindingModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Пропускать проверку (работает только для получения данных)
|
||||
/// </summary>
|
||||
public bool SkipCheck { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Идентификатор пользователя, который запрашивает выполнение операции
|
||||
/// </summary>
|
||||
|
@ -26,14 +26,31 @@ namespace ModuleTools.BusinessLogics
|
||||
/// </summary>
|
||||
public List<(string Title, string Message)> Errors { get; protected set; }
|
||||
|
||||
/// <summary>
|
||||
/// Сервис с хранилищем данных
|
||||
/// </summary>
|
||||
protected IEntityService<G, S> Service { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Менеджер безопасности
|
||||
/// </summary>
|
||||
protected ISecurityManager Security { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Тип операции, скоторым работает логика
|
||||
/// </summary>
|
||||
protected readonly AccessOperation _serviceOperation;
|
||||
|
||||
/// <summary>
|
||||
/// Название сущности
|
||||
/// </summary>
|
||||
protected readonly string _entity;
|
||||
|
||||
/// <summary>
|
||||
/// Возможен ли просмотр без авторизации
|
||||
/// </summary>
|
||||
protected bool _allowSimpleView = true;
|
||||
|
||||
public BusinessLogicCore(IEntityService<G, S> service, string entity, AccessOperation serviceOperation)
|
||||
{
|
||||
Service = service;
|
||||
@ -70,9 +87,10 @@ namespace ModuleTools.BusinessLogics
|
||||
Errors.Clear();
|
||||
try
|
||||
{
|
||||
if (NoAccess(model, AccessType.SimpleView) && NoAccess(model, AccessType.FullView))
|
||||
var fullView = NoAccess(model, AccessType.View);
|
||||
if (fullView && !_allowSimpleView)
|
||||
{
|
||||
return null;
|
||||
throw new MethodAccessException("Нет прав на получение списка");
|
||||
}
|
||||
var result = Service.Read(model);
|
||||
if (!result.IsSucceeded)
|
||||
@ -100,9 +118,10 @@ namespace ModuleTools.BusinessLogics
|
||||
Errors.Clear();
|
||||
try
|
||||
{
|
||||
if (NoAccess(model, AccessType.SimpleView) && NoAccess(model, AccessType.FullView))
|
||||
var fullView = NoAccess(model, AccessType.View);
|
||||
if (fullView && !_allowSimpleView)
|
||||
{
|
||||
return null;
|
||||
throw new MethodAccessException("Нет прав на получение списка");
|
||||
}
|
||||
var result = Service.Read(model);
|
||||
if (!result.IsSucceeded)
|
||||
|
@ -5,24 +5,19 @@
|
||||
/// </summary>
|
||||
public enum AccessType : int
|
||||
{
|
||||
/// <summary>
|
||||
/// Простой просомтр
|
||||
/// </summary>
|
||||
SimpleView = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Полный просомтр
|
||||
/// </summary>
|
||||
FullView = 2,
|
||||
View = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Добавление/Изменение
|
||||
/// </summary>
|
||||
Change = 4,
|
||||
Change = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Удаление
|
||||
/// </summary>
|
||||
Delete = 8
|
||||
Delete = 4
|
||||
}
|
||||
}
|
BIN
DepartmentPortal/Documetations/Кафедральный портал.docx
Normal file
BIN
DepartmentPortal/Documetations/Кафедральный портал.docx
Normal file
Binary file not shown.
@ -32,25 +32,13 @@ namespace SecurityBusinessLogic.ViewModels
|
||||
public AccessType AccessType { get; set; }
|
||||
|
||||
[ViewModelOnListProperty("Тип", 150)]
|
||||
public string AccessTypeTitle
|
||||
public string AccessTypeTitle => AccessType switch
|
||||
{
|
||||
get
|
||||
{
|
||||
switch (AccessType)
|
||||
{
|
||||
case AccessType.Delete:
|
||||
return "Полные права";
|
||||
case AccessType.Change:
|
||||
return "Просмотр, Редактирование";
|
||||
case AccessType.FullView:
|
||||
return "Просмотр";
|
||||
case AccessType.SimpleView:
|
||||
return "Частичный просмотр";
|
||||
default:
|
||||
return "Неопределено";
|
||||
}
|
||||
}
|
||||
}
|
||||
AccessType.Delete => "Полные права",
|
||||
AccessType.Change => "Просмотр, Редактирование",
|
||||
AccessType.View => "Просмотр",
|
||||
_ => "Неопределено",
|
||||
};
|
||||
|
||||
public override string ToString() => $"{RoleName}-{AccessOperationTitle}({AccessTypeTitle})";
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ namespace SecurityWindowsDesktop
|
||||
}
|
||||
|
||||
if (!manager.CheckAccess(new SecurityManagerCheckAccessModel(new AccessBindingModel { UserId = manager.User },
|
||||
AccessOperation.Администрирование, AccessType.SimpleView, "Администрирование")))
|
||||
AccessOperation.Администрирование, AccessType.View, "Администрирование")))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@ -42,7 +42,7 @@ namespace SecurityWindowsDesktop
|
||||
foreach (var cntrl in _controls)
|
||||
{
|
||||
if (manager.CheckAccess(new SecurityManagerCheckAccessModel(new AccessBindingModel { UserId = manager.User },
|
||||
cntrl.AccessOperation, AccessType.SimpleView, cntrl.Title)))
|
||||
cntrl.AccessOperation, AccessType.View, cntrl.Title)))
|
||||
{
|
||||
list.Add(new WindowDesktopExtensionControlModel
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user