public List <Alert> SearchAccessErrors(Case @case, AccessMatrix accessMatrix) { List <Alert> alerts = new List <Alert>(); var matrix = accessMatrix.Matrix; Event current = @case.Begin; if (current == null) { return(alerts); } while (current.Next.Count != 0) { if (current.ResourceId != null && !matrix[current.ResourceId][current.Name]) { alerts.Add(new Alert { Type = "Ошибка уровня доступа", CaseId = @case.CaseId, Text = $"Отсутствует доступ у {current.ResourceId} к {current.Name}", BPId = @case.BPId }); } current = current.Next[0].Key; } return(alerts); }
private void Button_Click_1(object sender, RoutedEventArgs e) { MessageBoxResult result = MessageBox.Show("Вы действительно хотите сохранить изменения?", "Сохранить изменения", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { using (MainDBContext mainDB = new MainDBContext()) { /// AccessMatrix accessMatrix = mainDB.BPs.FirstOrDefault(s => s.Name == access[0].БП).AccessMatrix; string userId = (dataGrid1.SelectedItem as UserDTO).Логин; foreach (var a in access) { accessMatrix.Matrix[userId][a.Этап] = a.Доступ; } var bp = mainDB.BPs.FirstOrDefault(s => s.Name == access[0].БП); bp.AccessMatrix = null; mainDB.SaveChanges(); bp = mainDB.BPs.FirstOrDefault(s => s.Name == access[0].БП); bp.AccessMatrix = accessMatrix; mainDB.SaveChanges(); /// } } }
private void SampleFormLoad() { //AccessMatrix resides in UserAccess.Utilities //you can use asynchronous method //var result = await AccessMatrix.GetUserAccessAsync(1);//Sample User Id = 1 var result = AccessMatrix.GetUserAccess(1); //Sample User Id = 1 var generalSettingsAccess = result.FirstOrDefault(a => a.ModuleCode == "SGS"); //SGS is the module code for General Settings //Modular Access Are the Following //CanAdd //CanEdit //CanSave //CanDelete //CanSearch //CanPrint //CanExport //CanAccess var isCanAccess = generalSettingsAccess.CanAccess; //Meaning the user can access the module(or general settings tab) }
protected override void OnLoad(EventArgs e) { this.AccessItems = AccessMatrix.GetUserAccess(int.Parse(Properties.Settings.Default.CurrentUserId)); var module = AccessItems.Any(a => a.ModuleCode == "SMOD"); var role = AccessItems.Any(a => a.ModuleCode == "SROL"); var roleass = AccessItems.Any(a => a.ModuleCode == "SRMA"); var uam = AccessItems.Any(a => a.ModuleCode == "SUAM"); if (module || role || roleass || uam) { menuStrip1.Visible = true; } else { menuStrip1.Visible = false; } modulesToolStripMenuItem.Visible = module; rolesToolStripMenuItem.Visible = role; roleModuleAssignmentToolStripMenuItem.Visible = roleass; userAccessMatrixToolStripMenuItem.Visible = uam; base.OnLoad(e); }