Пример #1
0
        /// <summary>
        /// Conditionally render HTML output according to the provided authorization member action and underlyiong object type.
        /// </summary>
        /// <param name="htmlHelper">The HTML helper instance that this method extends.</param>
        /// <param name="action">AuthorizationActions for which the authorization is required.</param>
        /// <param name="target">CSLA object instance.</param>
        /// <param name="member">CSLA object member.</param>
        /// <param name="granted">The rendered HTML output for granted users.</param>
        /// <param name="denied">The rendered HTML output for denied users.</param>
        /// <returns>The appropriate HTML rendered output.</returns>
        public static MvcHtmlString HasPermission(
            this HtmlHelper htmlHelper,
            Csla.Rules.AuthorizationActions action,
            object target,
            Csla.Core.IMemberInfo member,
            string granted,
            string denied)
        {
            var instance = target as Csla.Security.IAuthorizeReadWrite;

            if (instance == null)
            {
                return(MvcHtmlString.Create(denied));
            }

            if ((action == Rules.AuthorizationActions.ReadProperty && instance.CanReadProperty(member.Name)) ||
                (action == Rules.AuthorizationActions.WriteProperty && instance.CanWriteProperty(member.Name)) ||
                (action == Rules.AuthorizationActions.ExecuteMethod && instance.CanExecuteMethod(member.Name)))
            {
                return(MvcHtmlString.Create(granted));
            }
            else
            {
                return(MvcHtmlString.Create(denied));
            }
        }
Пример #2
0
        /// <summary>
        /// Conditionally render HTML output according to the provided authorization member action and underlyiong object type.
        /// </summary>
        /// <param name="htmlHelper">The HTML helper instance that this method extends.</param>
        /// <param name="action">AuthorizationActions for which the authorization is required.</param>
        /// <param name="target">CSLA object instance.</param>
        /// <param name="member">CSLA object member.</param>
        /// <param name="grantedAction">The rendered HTML helper action for granted users.</param>
        /// <param name="denieddAction">The rendered HTML helper action for denied users.</param>
        /// <returns>The appropriate HTML rendered output.</returns>
        public static HtmlString HasPermission(
            this IHtmlHelper htmlHelper,
            Csla.Rules.AuthorizationActions action,
            object target,
            Csla.Core.IMemberInfo member,
            Func <IHtmlHelper, HtmlString> grantedAction,
            Func <IHtmlHelper, HtmlString> denieddAction)
        {
            var instance = target as Csla.Security.IAuthorizeReadWrite;

            if (instance == null)
            {
                return(denieddAction.Invoke(htmlHelper));
            }

            if ((action == Rules.AuthorizationActions.ReadProperty && instance.CanReadProperty(member.Name)) ||
                (action == Rules.AuthorizationActions.WriteProperty && instance.CanWriteProperty(member.Name)) ||
                (action == Rules.AuthorizationActions.ExecuteMethod && instance.CanExecuteMethod(member.Name)))
            {
                return(grantedAction.Invoke(htmlHelper));
            }
            else
            {
                return(denieddAction.Invoke(htmlHelper));
            }
        }
Пример #3
0
        /// <summary>
        /// Conditionally render HTML output according to the provided authorization member action and underlyiong object type.
        /// </summary>
        /// <param name="htmlHelper">The HTML helper instance that this method extends.</param>
        /// <param name="action">AuthorizationActions for which the authorization is required.</param>
        /// <param name="target">CSLA object instance.</param>
        /// <param name="member">CSLA object member.</param>
        /// <param name="granted">The rendered HTML output for granted users.</param>
        /// <param name="denied">The rendered HTML output for denied users.</param>
        /// <returns>The appropriate HTML rendered output.</returns>
        public static HtmlString HasPermission(
            this IHtmlHelper htmlHelper,
            Csla.Rules.AuthorizationActions action,
            object target,
            Csla.Core.IMemberInfo member,
            HtmlString granted,
            string denied)
        {
            if (target is not Csla.Security.IAuthorizeReadWrite instance)
            {
                return(new HtmlString(denied));
            }

            if ((action == Rules.AuthorizationActions.ReadProperty && instance.CanReadProperty(member.Name)) ||
                (action == Rules.AuthorizationActions.WriteProperty && instance.CanWriteProperty(member.Name)) ||
                (action == Rules.AuthorizationActions.ExecuteMethod && instance.CanExecuteMethod(member.Name)))
            {
                return(granted);
            }
            else
            {
                return(new HtmlString(denied));
            }
        }
Пример #4
0
 /// <summary>
 /// Creates an instance of the rule.
 /// </summary>
 /// <param name="action">Action this rule will enforce.</param>
 /// <param name="element">Member to be authorized.</param>
 /// <param name="privileges">List of allowed privileges.</param>
 public HasPrivilegeClaim(AuthorizationActions action, Csla.Core.IMemberInfo element, params string[] privileges)
     : base(action, element)
 {
     _privileges = new List <string>(privileges);
 }
Пример #5
0
 /// <summary>
 /// Creates an instance of the rule.
 /// </summary>
 /// <param name="action">Action this rule will enforce.</param>
 /// <param name="element">Member to be authorized.</param>
 /// <param name="privileges">List of allowed privileges.</param>
 public HasPrivilegeClaim(AuthorizationActions action, Csla.Core.IMemberInfo element, List <string> privileges)
     : base(action, element)
 {
     _privileges = privileges;
 }
Пример #6
0
 /// <summary>
 /// Creates an instance of the rule.
 /// </summary>
 /// <param name="action">Action this rule will enforce.</param>
 /// <param name="element">Member to be authorized.</param>
 /// <param name="roles">List of allowed roles.</param>
 public IsInRole(AuthorizationActions action, Csla.Core.IMemberInfo element, params string[] roles)
     : base(action, element)
 {
     _roles = new List <string>(roles);
 }
Пример #7
0
 /// <summary>
 /// Creates an instance of the rule.
 /// </summary>
 /// <param name="action">Action this rule will enforce.</param>
 /// <param name="element">Member to be authorized.</param>
 /// <param name="roles">List of allowed roles.</param>
 public IsInRole(AuthorizationActions action, Csla.Core.IMemberInfo element, List <string> roles)
     : base(action, element)
 {
     _roles = roles;
 }
Пример #8
0
 public IsInUser(Csla.Rules.AuthorizationActions action, Csla.Core.IMemberInfo element)
     : base(action, element)
 {
 }
 public IsInProjectAndRole(Csla.Rules.AuthorizationActions action, Csla.Core.IMemberInfo element)
     : base(action, element)
 {
 }
Пример #10
0
 /// <summary>
 /// Creates an instance of the rule.
 /// </summary>
 /// <param name="action">Action this rule will enforce.</param>
 /// <param name="element">Method or property.</param>
 public AuthorizationRule(AuthorizationActions action, Csla.Core.IMemberInfo element)
   : this(action)
 {
   _element = element;
 }
 public AuthorizationRuleNoCacheResult(AuthorizationActions action, Csla.Core.IMemberInfo element) : base(action, element)
 {
     CacheResult = false;
 }
Пример #12
0
 /// <summary>
 /// Creates an instance of the rule.
 /// </summary>
 /// <param name="action">Action this rule will enforce.</param>
 /// <param name="element">Method or property.</param>
 public AuthorizationRule(AuthorizationActions action, Csla.Core.IMemberInfo element)
     : this(action)
 {
     _element = element;
 }