Example #1
0
        /// <summary>
        /// 通过角色编号获取对应
        /// </summary>
        /// <param name="roleId"></param>
        /// <returns></returns>
        public List <Right_Privilege> GetMenusByRoleID(string roleId)
        {
            var list = _menuAppService.QueryList(a => a.ID != Guid.Empty);
            List <Right_Privilege> Dtopilist = new List <Right_Privilege>();
            var  parentList = list.Where(a => a.ParentId == Guid.Empty && a.Type == (int)Utils.Enum.AM_Enum.MenuTypeEnum.ParentMenu).OrderBy(a => a.SerialNumber);
            Guid currRoleID = Guid.Empty;
            Role currRole   = null;

            if (Guid.TryParse(roleId, out currRoleID))
            {
                currRole = _repository.Get(currRoleID);
            }
            if (!string.IsNullOrEmpty(roleId))
            {
            }
            foreach (var item in parentList)
            {
                Right_Privilege dtopil = new Right_Privilege()
                {
                    cateName = item.Name,
                    cateId   = item.ID
                };
                dtopil.cateQuanxian = new List <Right_Control>()
                {
                    new Right_Control()
                    {
                        quanxian   = "查看",
                        quanxianid = item.ID,
                        state      = 0
                    }
                };
                if (currRole != null && currRole.RoleMenus.Any(a => a.MenuId.Equals(item.ID)))
                {
                    dtopil.cateQuanxian[0].state = 1;
                }
                dtopil.childCateList = new List <Right_Privilege>();
                dtopil.childCateList.AddRange(GetChildPermissions(list, item, currRole));
                if (item.ParentId != Guid.Empty)
                {
                    dtopil.cateQuanxian.AddRange(GetChildMenus(list, item, currRole));
                }
                Dtopilist.Add(dtopil);
            }
            return(Dtopilist);
        }
Example #2
0
        private IEnumerable <Right_Privilege> GetChildPermissions(List <MenuDto> list, MenuDto item, Role currRole)
        {
            List <Right_Privilege> privileges = new List <Right_Privilege>();
            var query = list.Where(a => a.ParentId == item.ID).OrderBy(a => a.SerialNumber);

            foreach (var child in query)
            {
                Right_Privilege dtopil = new Right_Privilege()
                {
                    cateName = child.Name,
                    cateId   = child.ID,
                    catePid  = child.ID
                };
                dtopil.cateQuanxian = new List <Right_Control>()
                {
                    new Right_Control()
                    {
                        quanxian   = "查看",
                        quanxianid = child.ID,
                        state      = 0
                    }
                };
                if (currRole != null && currRole.RoleMenus.Any(a => a.MenuId.Equals(child.ID)))
                {
                    dtopil.cateQuanxian[0].state = 1;
                }
                dtopil.childCateList = new List <Right_Privilege>();
                if (child.Type == 1)
                {
                    dtopil.childCateList.AddRange(GetChildPermissions(list, child, currRole));
                }
                dtopil.cateQuanxian.AddRange(GetChildMenus(list, child, currRole));
                privileges.Add(dtopil);
            }
            return(privileges);
        }