public override ActionResult NodeView(HasPermissionsCondition condition) { if (condition.RoleId == null || condition.NodeId == null) { throw new NopException("参数没有赋值!"); } ViewBag.RoleId = condition.RoleId.ToString(); ViewBag.MenuId = condition.NodeId.ToString(); //该菜单所有的自定义权限 var customPermissionsService = new CustomPermissionsService(); var customPermissions = customPermissionsService.GetCustomPermissionsByMenu(condition.NodeId); //该角色对应菜单的自定义权限 var hasPermissionsService = new HasPermissionsService(); var hasPermissions = hasPermissionsService.GetRoleHasPermissions(condition.RoleId, condition.NodeId); List <RoleHasPermissionsModel> models = new List <RoleHasPermissionsModel>(); customPermissions.ForEach(p => { var model = new RoleHasPermissionsModel() { Id = p.Id, CustomPermissionsName = p.Name, HasPermission = hasPermissions.Any(hp => hp.PermissionId == p.Id) }; models.Add(model); }); return(PartialView(models)); }
protected override bool AuthorizeCore(HttpContextBase httpContext) { if (httpContext.Request["CurrentMenuId"] == null) { return(false); } else { AuthorizeHelper.InitiateLoginUser(); if (httpContext.Session["IsSupper"] != null && (bool)httpContext.Session["IsSupper"]) { return(true); } else { var menuId = new Guid(httpContext.Request["CurrentMenuId"].ToString()); var user = httpContext.Session["User"] as User; var roleIds = httpContext.Session["RoleIds"] as List <Guid>; var service = new HasPermissionsService(); var service2 = new CustomPermissionsService(); var a = service2.GetCustomPermissions(menuId, Permissions); if (a == null) { return(false); } else { return(service.HasPermission(menuId, a.Id, roleIds)); } //return base.AuthorizeCore(httpContext); return(false); } } }
public ActionResult AssignPermissions(Guid?roleId, Guid?menuId, List <Guid> selectedNodeIds) { if (roleId == null || menuId == null) { return(Json(new AjaxResult() { Result = Result.Success, Message = "未选择自定义权限" })); } else { var hasPermissionsService = new HasPermissionsService(); hasPermissionsService.SetRoleHasPermissions(roleId.Value, menuId.Value, selectedNodeIds); return(Json(new AjaxResult() { Result = Result.Success })); } }
public CustomPermissionsController() { customPermissionsService = new CustomPermissionsService(); hasPermissionsService = new HasPermissionsService(); }