示例#1
0
        public ResultModel GetForUser(int userId)
        {
            RoPrincipal currentPrincipal = Thread.CurrentPrincipal as RoPrincipal;

            if (currentPrincipal == null || currentPrincipal.UserId != userId && !currentPrincipal.IsAuthorizedForResource(ShopRoCmsResources.Shop))
            {
                return(ResultModel.Error);
            }

            var client = _clientService.GetClientByUserId(userId);

            if (client != null)
            {
                return(new ResultModel(true, client));
            }
            return(ResultModel.Error);
        }
示例#2
0
        public override void OnAuthorization(HttpActionContext filterContext)
        {
            base.OnAuthorization(filterContext);

            RoPrincipal currentPrincipal = Thread.CurrentPrincipal as RoPrincipal;

            if (currentPrincipal != null && currentPrincipal.Identity.IsAuthenticated && _resources.Length > 0)
            {
                foreach (string resource in _resources)
                {
                    if (!currentPrincipal.IsAuthorizedForResource(resource))
                    {
                        filterContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden);
                        break;
                    }
                }
            }
        }
示例#3
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            base.OnAuthorization(filterContext);

            RoPrincipal currentPrincipal = Thread.CurrentPrincipal as RoPrincipal;

            if (currentPrincipal != null && currentPrincipal.Identity.IsAuthenticated && _resources.Length > 0)
            {
                foreach (string resource in _resources)
                {
                    if (!currentPrincipal.IsAuthorizedForResource(resource))
                    {
                        filterContext.Result = new HttpUnauthorizedResult();
                        break;
                    }
                }
            }
        }
示例#4
0
        public ResultModel UpdateInfo(Client client)
        {
            var         updatingClient   = _clientService.GetClient(client.ClientId);
            RoPrincipal currentPrincipal = Thread.CurrentPrincipal as RoPrincipal;

            if (currentPrincipal == null || currentPrincipal.UserId != updatingClient.UserId && !currentPrincipal.IsAuthorizedForResource(ShopRoCmsResources.Shop))
            {
                return(ResultModel.Error);
            }

            _clientService.UpdateClientInfo(client);
            return(ResultModel.Success);
        }
示例#5
0
        public override bool IsVisible(ISiteMapNode node, IDictionary <string, object> sourceMetadata)
        {
            // Is a visibility attribute specified?
            bool resourceCheckSuccessful   = false;
            bool visibilityCheckSuccessful = false;

            if (!node.Attributes.ContainsKey("visibility"))
            {
                visibilityCheckSuccessful = true;
            }
            else
            {
                string visibility = node.Attributes["visibility"] as string;
                if (string.IsNullOrEmpty(visibility))
                {
                    visibilityCheckSuccessful = true;
                }
                else
                {
                    string resource = visibility.Trim();
                    if (sourceMetadata.ContainsKey("name") && (string)sourceMetadata["name"] == resource)
                    {
                        visibilityCheckSuccessful = true;
                    }
                    else if (sourceMetadata.ContainsKey("HtmlHelper") && (string)sourceMetadata["HtmlHelper"] == resource)
                    {
                        visibilityCheckSuccessful = true;
                    }
                }
            }
            if (!visibilityCheckSuccessful)
            {
                return(false);
            }

            if (!node.Attributes.ContainsKey("cmsResourceRequired"))
            {
                resourceCheckSuccessful = true;
            }
            else
            {
                string visibility = node.Attributes["cmsResourceRequired"] as string;
                if (string.IsNullOrEmpty(visibility))
                {
                    resourceCheckSuccessful = true;
                }
                else
                {
                    string resource = visibility.Trim();

                    //process visibility


                    RoPrincipal currentPrincipal = Thread.CurrentPrincipal as RoPrincipal;
                    if (currentPrincipal != null && currentPrincipal.Identity.IsAuthenticated)
                    {
                        if (currentPrincipal.IsAuthorizedForResource(resource))
                        {
                            resourceCheckSuccessful = true;
                        }
                    }
                }
            }

            return(resourceCheckSuccessful && visibilityCheckSuccessful);
        }