Exemple #1
0
        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);
        }
Exemple #2
0
        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;
 }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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;
        }