예제 #1
0
파일: AdminUserBLL.cs 프로젝트: radtek/Shop
        private LoginUserModel GetUserPermission(AdminUserInfo userInfo)
        {
            var loginUserModel = new LoginUserModel();

            loginUserModel.AdminUserInfo = userInfo;
            if (userInfo.Status == 1)
            {
                var lstMenuRoot = new List <AdminMenuModel>();
                IList <AdminMenuInfo> lstMenu;
                //获取菜单
                if (userInfo.IsAdmin)
                {
                    lstMenu = adminUserDAL.GetAllMenuPermission();
                }
                else
                {
                    lstMenu = adminUserDAL.GetMenuListByUserID(userInfo.id);
                }
                if (lstMenu != null && lstMenu.Count > 0)
                {
                    //添加主菜单
                    lstMenuRoot.AddRange(lstMenu.Where(root => root.ParentPermission == EnumPermission.None).Select(p => new AdminMenuModel
                    {
                        root = p,
                        //添加子菜单
                        children = lstMenu.Where(child => child.IsShow && child.ParentPermission == p.Permission).ToList()
                    }));
                }
                var lstPermission = lstMenu.Select(p => p.Permission).ToList();
                loginUserModel.MenuList      = lstMenuRoot;
                loginUserModel.PermissionSet = new HashSet <EnumPermission>(lstPermission);
            }
            return(loginUserModel);
        }