private void addNodes(ArrayList zNodes, List<Menu> list, string pId, GuserRole role) { foreach (var item in list) { zNodes.Add(new { id = item.ID, pId = pId, name = item.Title, authVal = item.AuthVal, open = true, @checked = (role != null && ((Convert.ToInt32(role.RoleVal) & item.AuthVal) > 0)) }); if (item.SubMenu.Count > 0) { addNodes(zNodes, item.SubMenu, item.ID, role); } } }
public JsonResult editRole(GuserRole role) { using (DBContext db = new DBContext()) { //判断名称是否重复 GuserRole sameName = db.GuserRole.Where(q => q.RoleName.Equals(role.RoleName) && !q.ID.Equals(role.ID)).FirstOrDefault(); if (sameName != null) { return Json(new { code = -1, msg = "已有同名角色" }); } //判断权限值是否重复 GuserRole sameAuth = db.GuserRole.Where(q => q.RoleVal.Equals(role.RoleVal) && !q.ID.Equals(role.ID)).FirstOrDefault(); if (sameAuth != null) { return Json(new { code = -2, msg = "已有相同权限的角色" }); } GuserRole oldRole = db.GuserRole.Where(q => q.ID.Equals(role.ID)).FirstOrDefault(); if (oldRole == null) { role.CreatorID = UserContext.user.ID; role.Creator = UserContext.user.DisplayName; role.Status = Status.enable; db.GuserRole.Add(role); } else { List<Guser> users = db.Guser.Where(q => q.RoleId.Equals(role.ID)).ToList(); if (users.Count > 0 && role.Status == Status.disable) { return Json(new { code = -3, msg = "不能禁用已有用户的角色" }); } oldRole.ModifyTime = DateTime.Now; oldRole.RoleName = role.RoleName; oldRole.RoleVal = role.RoleVal; oldRole.Status = role.Status; db.Entry(oldRole).State = EntityState.Modified; } db.SaveChanges(); } return Json(new { code = 1, msg = "保存成功" }); }