public virtual bool Authorize(Site site, string userName, Kooboo.CMS.Account.Models.Permission permission) { string contextKey = "Permission:" + permission.ToString(); var allow = CallContext.Current.GetObject <bool?>(contextKey); if (!allow.HasValue) { allow = false; if (IsAdministrator(userName)) { allow = true; } else if (site != null) { var siteUser = this.Get(site, userName); if (siteUser != null && siteUser.Roles != null) { allow = siteUser.Roles.Select(it => Kooboo.CMS.Account.Services.ServiceFactory.RoleManager.Get(it)) .Any(it => it != null && it.HasPermission(permission)); } } CallContext.Current.RegisterObject(contextKey, allow); } return(allow.Value); }
protected override bool AuthorizeCore(RequestContext requestContext) { var authorized = base.AuthorizeCore(requestContext); if (authorized) { var permission = new Kooboo.CMS.Account.Models.Permission() { AreaName = this.AreaName, Group = this.Group, Name = this.Name }; return requestContext.Authorize(permission); } else { return authorized; } }
protected override bool GetIsVisible(MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext) { var visible = base.GetIsVisible(menuItem, controllerContext); if (menuItem.ReadOnlyProperties != null && !string.IsNullOrEmpty(menuItem.ReadOnlyProperties["permissionName"])) { var permission = new Kooboo.CMS.Account.Models.Permission() { AreaName = menuItem.ReadOnlyProperties["permissionArea"], Group = menuItem.ReadOnlyProperties["permissionGroup"], Name = menuItem.ReadOnlyProperties["permissionName"] }; return controllerContext.RequestContext.Authorize(permission); } return visible; }
protected override bool GetIsVisible(MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext) { var visible = base.GetIsVisible(menuItem, controllerContext); if (menuItem.ReadOnlyProperties != null && !string.IsNullOrEmpty(menuItem.ReadOnlyProperties["permissionName"])) { var permission = new Kooboo.CMS.Account.Models.Permission() { AreaName = menuItem.ReadOnlyProperties["permissionArea"], Group = menuItem.ReadOnlyProperties["permissionGroup"], Name = menuItem.ReadOnlyProperties["permissionName"] }; return(controllerContext.RequestContext.Authorize(permission)); } return(visible); }
protected override bool AuthorizeCore(RequestContext requestContext) { var authorized = base.AuthorizeCore(requestContext); if (authorized) { var permission = new Kooboo.CMS.Account.Models.Permission() { AreaName = this.AreaName, Group = this.Group, Name = this.Name }; return(requestContext.Authorize(permission)); } else { return(authorized); } }
public virtual bool Authorize(Site site, string userName, Kooboo.CMS.Account.Models.Permission permission) { string contextKey = "Permission:" + permission.ToString(); var allow = CallContext.Current.GetObject <bool?>(contextKey); if (!allow.HasValue) { allow = false; if (IsAdministrator(userName)) { allow = true; } else { var roles = GetRoles(site, userName); allow = roles.Any(it => it.HasPermission(permission)); } CallContext.Current.RegisterObject(contextKey, allow); } return(allow.Value); }
protected override bool GetIsVisible(MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext) { var visible = base.GetIsVisible(menuItem, controllerContext); if (menuItem.ReadOnlyProperties != null) { var requiredAdministrator = menuItem.ReadOnlyProperties["requiredAdministrator"]; if (!string.IsNullOrEmpty(requiredAdministrator) && requiredAdministrator.ToLower() == "true") { return(Kooboo.CMS.Sites.Services.ServiceFactory.UserManager.IsAdministrator(controllerContext.HttpContext.User.Identity.Name)); } if (!string.IsNullOrEmpty(menuItem.ReadOnlyProperties["permissionName"])) { var permission = new Kooboo.CMS.Account.Models.Permission() { AreaName = menuItem.ReadOnlyProperties["permissionArea"], Group = menuItem.ReadOnlyProperties["permissionGroup"], Name = menuItem.ReadOnlyProperties["permissionName"] }; return(controllerContext.RequestContext.Authorize(permission)); } } return(visible); }
protected override bool GetIsVisible(MenuItem menuItem, System.Web.Mvc.ControllerContext controllerContext) { var visible = base.GetIsVisible(menuItem, controllerContext); if (menuItem.ReadOnlyProperties != null) { var requiredAdministrator = menuItem.ReadOnlyProperties["requiredAdministrator"]; if (!string.IsNullOrEmpty(requiredAdministrator) && requiredAdministrator.ToLower() == "true") { return Kooboo.CMS.Sites.Services.ServiceFactory.UserManager.IsAdministrator(controllerContext.HttpContext.User.Identity.Name); } if (!string.IsNullOrEmpty(menuItem.ReadOnlyProperties["permissionName"])) { var permission = new Kooboo.CMS.Account.Models.Permission() { AreaName = menuItem.ReadOnlyProperties["permissionArea"], Group = menuItem.ReadOnlyProperties["permissionGroup"], Name = menuItem.ReadOnlyProperties["permissionName"] }; return controllerContext.RequestContext.Authorize(permission); } } return visible; }