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