Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }