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));
        }
Esempio n. 2
0
 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);
         }
     }
 }
Esempio n. 3
0
 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
         }));
     }
 }
Esempio n. 4
0
 public CustomPermissionsController()
 {
     customPermissionsService = new CustomPermissionsService();
     hasPermissionsService    = new HasPermissionsService();
 }