예제 #1
0
        public async Task <IActionResult> Index(int type)
        {
            var sid      = this.UserID;
            var usertype = this.UserType;

            List <SysMenu> list = new List <SysMenu> {
            };

            if (usertype == UserType.SuperUser)
            {
                var menus = await SysMenuDAL.QueryAsync(w => w.Status == 1, null, null);

                list = menus.list;
            }
            else
            {
                var userMenus = await SysRoleMenuDAL.QueryUserMenu(Convert.ToInt64(sid));

                userMenus.list.ForEach(m =>
                {
                    list.Add(m.Menu);
                });
            }

            ViewBag.menuList = (from p in list
                                where (p.ParentID ?? 0) == 0
                                select new SysMenuTreeNode(list, p)).ToList();
            return(View());
        }
예제 #2
0
        public async Task <ActionResult> Update([FromBody] SysRoleView model)
        {
            var resdata = await AutoException.Excute <SysRole>(async (result) =>
            {
                model.UpdateBy = "admin";
                model.UpdateDt = DateTime.Now;
                var res        = await SysRoleDAL.UpdateAsync(model);
                result.Data    = model;
                if (!res)
                {
                    throw new Exception("数据修改异常,JSON:" + Newtonsoft.Json.JsonConvert.SerializeObject(model));
                }
                else
                {
                    if (!string.IsNullOrEmpty(model.authids))
                    {
                        string[] idstr = model.authids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                        List <SysRoleMenu> rolelist = (from p in idstr
                                                       select new SysRoleMenu
                        {
                            RoleId = model.Id,
                            MenuId = Convert.ToInt32(p),
                            Status = 1,
                            CreateDt = DateTime.Now,
                            CreateBy = model.UpdateBy
                        }).ToList();
                        await SysRoleMenuDAL.BatchInsertAsync(rolelist);
                    }
                }
            }, false);

            return(Json(resdata));
        }
예제 #3
0
        public async Task <ActionResult> UpdateModule(string id)
        {
            var roleMenus = await SysRoleMenuDAL.QueryUserRole(u => u.RoleId == Convert.ToInt32(id), null, null);

            (List <SysMenu> list, long count)menus = await SysMenuDAL.QueryAsync(w => w.Status == 1);

            ViewBag.Menus = menus.list.Select(s => new SelectListItem {
                Selected = roleMenus.list.Exists(ss => ss.RoleId == s.Id), Text = s.MenuName, Value = s.Id.ToString()
            }).ToList();

            SysRole model = new SysRole()
            {
            };

            if (!string.IsNullOrEmpty(id) && id != "0")
            {
                int _id = Convert.ToInt32(id);
                model = await SysRoleDAL.GetByOneAsync(w => w.Id == _id);
            }
            return(View(model));
        }
예제 #4
0
        public async Task <ActionResult> Auth([FromBody] SysRoleView model)
        {
            var resdata = await AutoException.Excute <SysRole>(async (result) =>
            {
                //删除
                SysRoleMenuDAL.Delete(del => del.RoleId == model.Id);
                SysRoleButtonDAL.Delete(del => del.RoleId == model.Id);

                if (!string.IsNullOrEmpty(model.authids))
                {
                    string[] idstr = model.authids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    List <SysRoleMenu> rolelist = (from p in idstr
                                                   select new SysRoleMenu
                    {
                        RoleId = model.Id,
                        MenuId = Convert.ToInt32(p),
                        Status = 1,
                        CreateDt = DateTime.Now,
                        CreateBy = model.UpdateBy
                    }).ToList();
                    await SysRoleMenuDAL.BatchInsertAsync(rolelist);

                    string[] btnids = model.btnids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    List <SysRoleButton> btnlist = (from p in btnids
                                                    select new SysRoleButton
                    {
                        RoleId = model.Id,
                        ButtonId = Convert.ToInt32(p),
                        Status = 1,
                        CreateDt = DateTime.Now,
                        CreateBy = model.UpdateBy
                    }).ToList();
                    await SysRoleButtonDAL.BatchInsertAsync(btnlist);
                }
            }, false);

            return(Json(resdata));
        }
예제 #5
0
        public async Task <ActionResult> GetTree(long id, int type = 1)
        {
            //已授权的角色菜单
            var roleMenus = await SysRoleMenuDAL.QueryUserRole(u => u.RoleId == Convert.ToInt32(id), null, null);

            var roleButtons = await SysRoleButtonDAL.QueryAsync(u => u.RoleId == Convert.ToInt32(id), null, null);

            //所有状态为有效的菜单
            (List <SysMenu> list, long count)menus = await SysMenuDAL.QueryAsync(w => w.Status == 1);

            var lists = menus.list.Select(s =>
            {
                var btns    = s.SysMenuButtons ?? new List <SysMenuButton>();
                var newBtns = btns.Select(b => new TreeNode
                {
                    id        = b.Id.ToString(),
                    name      = b.ButtonCode,
                    title     = b.ButtonName,
                    ischecked = roleButtons.list.Exists(e => e.ButtonId == b.Id)
                }).ToList();

                var strbtns = Newtonsoft.Json.JsonConvert.SerializeObject(newBtns);
                return(new SysMenuTreeNode
                {
                    ischecked = roleMenus.list.Exists(ss => ss.MenuId == s.Id),
                    name = s.MenuName,
                    title = s.MenuName,
                    pid = (s.ParentID ?? 0).ToString(),
                    id = s.Id.ToString(),
                    //buttons = newBtns,
                    jsonButtons = strbtns
                });
            }).ToList();

            return(Json(lists));
        }