using SecurityWindowsDesktop.EntityControls; using SecurityWindowsDesktop.SpecialControls; using System.Collections.Generic; using ToolsDesktop.Interfaces; using ToolsDesktop.Models; using ToolsModule.BindingModels; using ToolsModule.DependencyManagment; using ToolsModule.Enums; using ToolsModule.Interfaces; using ToolsModule.Models; namespace SecurityWindowsDesktop { public class SecurityWindowDesktopExtension : IWindowDesktopExtension { public List GetListControlEntityList() { var manager = DependencyManager.Instance.Resolve(); if (manager == null) { return null; } if (!manager.CheckAccess(new SecurityManagerCheckAccessModel(new AccessBindingModel { UserIdForAccess = manager.User }, AccessOperation.Администрирование, AccessType.View, "Администрирование"))) { return null; } var list = new List { new WindowDesktopExtensionControlModel { Title = "Администрирование" } }; List _controls = new() { new ControlUserList(), new ControlRoleList(), new ControlAccessList(), new ControlEnviromentSettingList() }; foreach (var cntrl in _controls) { if (manager.CheckAccess(new SecurityManagerCheckAccessModel(new AccessBindingModel { UserIdForAccess = manager.User }, cntrl.AccessOperation, AccessType.View, cntrl.Title))) { list.Add(new WindowDesktopExtensionControlModel { Id = cntrl.ControlId, Title = cntrl.Title, Control = cntrl }); } } return list; } public List GetListControlSpecialList() { var manager = DependencyManager.Instance.Resolve(); if (manager == null) { return null; } if (!manager.CheckAccess(new SecurityManagerCheckAccessModel(new AccessBindingModel { UserIdForAccess = manager.User }, AccessOperation.Администрирование, AccessType.View, "Администрирование"))) { return null; } var list = new List { new WindowDesktopExtensionControlModel { Title = "Администрирование" } }; List _controls = new() { new BackupControl(), new SynchronizationControl() }; foreach (var cntrl in _controls) { if (manager.CheckAccess(new SecurityManagerCheckAccessModel(new AccessBindingModel { UserIdForAccess = manager.User }, cntrl.AccessOperation, AccessType.View, cntrl.Title))) { list.Add(new WindowDesktopExtensionControlModel { Id = cntrl.ControlId, Title = cntrl.Title, Control = cntrl }); } } return list; } } }