private void GenerateChildren(MenuJson menuInfo, DataTable dtMenu, string[] permission) { foreach (DataRow row in dtMenu.Rows) { int menuType = int.Parse(row["MenuType"].ToString()); int parentId = int.Parse(row["ParentId"].ToString()); if (menuInfo.id != parentId) { continue; } MenuJson menu = new MenuJson(); menu.id = int.Parse(row["Id"].ToString()); menu.text = row["MenuText"].ToString(); menu.Url = row["Url"].ToString(); menu.MenuType = menuType; menu.iconCls = "tree-file"; menu.ParentId = parentId; menu.IsEnable = Convert.ToBoolean(row["IsEnable"]); // 获取出所有的权限 Hashtable htCondition = new Hashtable(); htCondition.Add("MenuId", menu.id); var dbm = DataBaseFactory.Instance.Create(); var dtPerm = dbm.GetDataTable("*", "Sys_Permission", htCondition, "Id"); foreach (DataRow permissionRow in dtPerm.Rows) { PermissionJson permissionJson = new PermissionJson(); permissionJson.id = int.Parse(permissionRow["Id"].ToString()); permissionJson.Code = permissionRow["Code"].ToString(); permissionJson.MenuId = int.Parse(permissionRow["MenuId"].ToString()); permissionJson.text = permissionRow["Text"].ToString(); permissionJson.Description = permissionRow["Description"].ToString(); permissionJson.iconCls = "icon-man"; // TODO 张春雨 - 权限菜单 - 获取真实用户权限 permissionJson.Checked = permission.Contains(permissionRow["Code"].ToString()); if (menu.children == null) { menu.children = new List <BaseTreeItemJson>(); } menu.children.Add(permissionJson); } if (menuInfo.children == null) { menuInfo.children = new List <BaseTreeItemJson>(); } menuInfo.children.Add(menu); GenerateChildren(menu, dtMenu, permission); } }
public async Task <IActionResult> Create([Bind("Id,Name,Description")] PermissionJson permission) { Logger.Trace($"[{nameof(Create)}] 请求参数:\r\n{JsonUtil.ToJson(permission)}"); try { // 1. 权限验证 if (!await RoleOrgPerManager.HasPermissionInSelfOrg(SignUser.Id, Constants.PER_MANAGE)) { ModelState.AddModelError("All", "没有权限"); return(RedirectToAction(nameof(Index))); } // 2. 业务处理 await PermissionManager.Create(permission); return(RedirectToAction(nameof(Index))); } catch (Exception e) { Logger.Error($"[{nameof(Details)}] 服务器错误:\r\n{e}"); return(RedirectToAction(nameof(Index))); } }
public async Task <IActionResult> Edit(string id, /*[Bind("Id,Name,Description")]*/ PermissionJson permission) { Logger.Trace($"[{nameof(Edit)}] 请求参数:\r\n{JsonUtil.ToJson(permission)}"); if (permission == null || permission.Id == null || permission.ParentId == null) { ModelState.AddModelError("All", "参数不能为空"); return(View()); } if (id != permission.Id) { return(NotFound()); } try { // 1. 权限验证 if (!await RoleOrgPerManager.HasPermissionInSelfOrg(SignUser.Id, Constants.PER_MANAGE)) { ModelState.AddModelError("All", "没有权限"); return(RedirectToAction(nameof(Index))); } // 2. 业务处理 if (!await PermissionManager.Exist(per => per.Id == permission.Id)) { return(NotFound()); } await PermissionManager.Update(permission); return(RedirectToAction(nameof(Index))); } catch (Exception e) { Logger.Error($"[{nameof(Edit)}] 服务器错误:\r\n{e}"); return(RedirectToAction(nameof(Index))); } }