/// <summary> /// 为角色授权 /// </summary> /// <param name="request"></param> /// <returns></returns> public bool AuthorizeRole(AuthorizeRoleRequest request) { var result = false; var addRoleMenuButtons = new List <TRightsRoleMenuButton>(); //没有为该角色授权 if (request.MenuButtonId.IsNullOrEmpty()) { using (var conn = DapperHelper.CreateConnection()) { conn.Execute(@"DELETE FROM dbo.t_rights_role_menu_button WHERE role_id= @RoleId AND button_id!=0;", new { @RoleId = request.RoleId }); result = true; return(result); } } //有为该角色授权 var menuButtons = request.MenuButtonId.Trim(new char[] { '|' }).Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries).ToList(); if (menuButtons.HasValue()) { foreach (var menuButton in menuButtons) { var menuButtonArr = menuButton.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); addRoleMenuButtons.Add(new TRightsRoleMenuButton { RoleId = request.RoleId, MenuId = menuButtonArr[0].ToInt(), ButtonId = menuButtonArr[1].ToInt() }); } using (var conn = DapperHelper.CreateConnection()) { var trans = conn.BeginTransaction(); try { //先删除(不能删除buttonId=0的记录,否则登陆后无法访问顶级菜单) conn.Execute(@"DELETE FROM dbo.t_rights_role_menu_button WHERE role_id= @RoleId AND button_id! = 0;", new { @RoleId = request.RoleId }, trans); //后添加 conn.Execute(@"INSERT INTO dbo.t_rights_role_menu_button VALUES ( @RoleId,@MenuId,@ButtonId);", addRoleMenuButtons, trans); trans.Commit(); result = true; } catch (Exception ex) { trans.Rollback(); } } } return(result); }
/// <summary> /// 为角色授权 /// </summary> /// <param name="request"></param> /// <returns></returns> public ServiceResult <bool> AuthorizeRole(AuthorizeRoleRequest request) { //先删除该角色原来拥有的菜单和按钮权限 //再新增该角色新选择的菜单和按钮权限 var result = new ServiceResult <bool> { ReturnCode = ReturnCodeType.Error }; var rs = _roleDao.AuthorizeRole(request); if (rs == true) { result.ReturnCode = ReturnCodeType.Success; result.Content = true; } return(result); }
public ActionResult Authorize(AuthorizeRoleRequest request) { var flag = false; var msg = string.Empty; var rs = _roleService.AuthorizeRole(request); if (rs.ReturnCode == ReturnCodeType.Success && rs.Content == true) { flag = true; msg = "授权成功!"; } else { msg = rs.Message.IsNullOrEmpty() ? "授权失败!" : rs.Message; } return(Json(new { success = flag, msg = msg }, JsonRequestBehavior.AllowGet)); }
public ActionResult Authorize(AuthorizeRoleRequest request) { var flag = false; var msg = string.Empty; using (var factory = new ChannelFactory <IRightsRoleService>("*")) { var client = factory.CreateChannel(); var rs = client.AuthorizeRole(request); if (rs.ReturnCode == ReturnCodeType.Success && rs.Content == true) { flag = true; msg = "授权成功!"; } else { msg = rs.Message.IsNullOrEmpty() ? "授权失败!" : rs.Message; } } return(Json(new { success = flag, msg = msg }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 为角色授权 /// </summary> /// <param name="request"></param> /// <returns></returns> public bool AuthorizeRole(AuthorizeRoleRequest request) { var result = false; var addRoleMenuButtons = new List <TRightsRoleMenuButton>(); //没有为该角色授权 if (request.MenuButtonId.IsNullOrEmpty()) { using (var conn = DapperHelper.CreateConnection()) { conn.Execute(@"DELETE FROM dbo.t_rights_role_menu_button WHERE role_id= @RoleId AND button_id!=0;", new { @RoleId = request.RoleId }); result = true; return(result); } } //有为该角色授权 var menuButtons = request.MenuButtonId.Trim(new char[] { '|' }).Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries).ToList(); if (menuButtons.HasValue()) { //如果有父节点和根节点要添加,否则登录后无法显示菜单 List <int> parentMenuIds = new List <int>(); foreach (var menuButton in menuButtons) { var menuButtonArr = menuButton.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); var menuId = menuButtonArr[0].ToInt(); var buttonId = menuButtonArr[1].ToInt(); addRoleMenuButtons.Add(new TRightsRoleMenuButton { RoleId = request.RoleId, MenuId = menuId, ButtonId = buttonId }); var parentMenus = GetParentMenus(menuId); foreach (var parentMenu in parentMenus) { if (!parentMenuIds.Contains(parentMenu.Id)) { parentMenuIds.Add(parentMenu.Id); } } } if (parentMenuIds.HasValue()) { parentMenuIds = parentMenuIds.OrderBy(p => p).ToList(); foreach (var parentMenuId in parentMenuIds) { addRoleMenuButtons.Add(new TRightsRoleMenuButton { RoleId = request.RoleId, MenuId = parentMenuId, ButtonId = 0 }); } } using (var conn = DapperHelper.CreateConnection()) { var trans = conn.BeginTransaction(); try { //先删除 conn.Execute(@"DELETE FROM dbo.t_rights_role_menu_button WHERE role_id= @RoleId;", new { @RoleId = request.RoleId }, trans); //后添加 conn.Execute(@"INSERT INTO dbo.t_rights_role_menu_button VALUES ( @RoleId,@MenuId,@ButtonId);", addRoleMenuButtons, trans); trans.Commit(); result = true; } catch (Exception ex) { trans.Rollback(); } } } return(result); }