Example #1
0
        private void FillRemovePrivilege(PrivilegeDepthExtended initialValue
                                         , PrivilegeDepthExtended currentValue
                                         , PrivilegeType privilegeType
                                         , HashSet <Guid> privilegesRemove
                                         )
        {
            if (currentValue == initialValue)
            {
                return;
            }

            if (privilegeType == PrivilegeType.None ||
                EntityPrivileges == null ||
                !EntityPrivileges.Any()
                )
            {
                return;
            }

            var privilege = EntityPrivileges.FirstOrDefault(p => p.PrivilegeType == privilegeType);

            if (privilege == null)
            {
                return;
            }

            if (currentValue == PrivilegeDepthExtended.None)
            {
                privilegesRemove.Add(privilege.PrivilegeId);
            }
        }
        public DataResponse <EntityPrivileges> GetPrivilegeById(int UserId, int CurrentBusinessId)
        {
            var response = new DataResponse <EntityPrivileges>();

            try
            {
                base.DBInit();
                var model = new EntityPrivileges();
                model.UserId = UserId;
                model.User   = new RepositoryUserProfile().GetUserbyId(UserId);
                var UserPrivilage = DBEntity.UserPrivileges.Where(a => a.UserId == UserId && a.BusinessId == CurrentBusinessId).ToList();
                model.UserDepartments = DBEntity.UserDepartments.Where(a => a.UserId == UserId).Select(a => new DepartmentPrivileges
                {
                    DepartmentName = a.Department.DepartmentName,
                    Privileges     = a.Department.DepartmentPrivileges.Where(b => b.DepartmentId == a.DepartmentId).Select(c => new SelectListItem
                    {
                        Value = c.Privilege.Id.ToString(),
                        Text  = c.Privilege.Title
                    })
                }).ToList();
                model.UserRoles = DBEntity.Roles.Where(a => a.BusinessId == CurrentBusinessId && a.Users.Any(u => u.Id == UserId)).Select(a => new DepartmentPrivileges
                {
                    DepartmentName = a.Name,
                    Privileges     = a.RolePrivileges.Where(b => b.RoleId == a.Id).Select(c => new SelectListItem
                    {
                        Value = c.Privilege.Id.ToString(),
                        Text  = c.Privilege.Title
                    })
                }).ToList();
                model.Modules = DBEntity.Privileges.GroupBy(a => a.ModuleId).Select(g => new Modulesmodel
                {
                    ModuleName     = g.FirstOrDefault(a => a.ModulesMaster.Id == g.Key).ModulesMaster.Title,
                    UserPrivileges = g.Select(b => new Privileges
                    {
                        Id   = b.Id,
                        Name = b.Title,
                    }).ToList()
                }).OrderByDescending(a => a.ModuleName).ToList();
                model.Modules.ForEach(a =>
                                      a.UserPrivileges.ForEach(b =>
                {
                    b.Deny  = UserPrivilage.Any(c => c.PrivilegeId == b.Id) ? (bool?)UserPrivilage.Any(c => c.PrivilegeId == b.Id && c.IsDeny == true) : null;
                    b.Allow = b.Deny == null ? null : !b.Deny;
                })
                                      );
                response.Model = model;
            }
            catch (Exception ex)
            {
                ex.Log();
            }
            finally
            {
                base.DBClose();
            }
            return(response);
        }
Example #3
0
        private void FillAddPrivilege(PrivilegeDepthExtended initialValue
                                      , PrivilegeDepthExtended currentValue
                                      , PrivilegeType privilegeType
                                      , Dictionary <Guid, PrivilegeDepth> privilegesAdd
                                      )
        {
            if (currentValue == initialValue)
            {
                return;
            }

            if (privilegeType == PrivilegeType.None ||
                EntityPrivileges == null ||
                !EntityPrivileges.Any()
                )
            {
                return;
            }

            var privilege = EntityPrivileges.FirstOrDefault(p => p.PrivilegeType == privilegeType);

            if (privilege == null)
            {
                return;
            }

            if (currentValue != PrivilegeDepthExtended.None)
            {
                if (privilegesAdd.ContainsKey(privilege.PrivilegeId))
                {
                    privilegesAdd[privilege.PrivilegeId] = (PrivilegeDepth)Math.Max((int)currentValue, (int)privilegesAdd[privilege.PrivilegeId]);
                }
                else
                {
                    privilegesAdd.Add(privilege.PrivilegeId, (PrivilegeDepth)currentValue);
                }
            }
        }