void InitRoles()
        {
            List <string> roles = new List <string>();

            PermissionTo      roleFor = this.RoleFor;
            PermissionContext within;

            if (this.PermissionContext.HasValue)
            {
                within = this.PermissionContext.Value;
            }
            else
            {
                within = this.Controller.DefaultPermissionContext;
            }

            foreach (PermissionTo sa in EnumHelper.GetOptions <PermissionTo>())
            {
                if (roleFor.MatchesFilter(sa))
                {
                    roles.Add(string.Format("{0}_{1}", within.GetStringValue(), sa.GetStringValue()));
                }
            }

            base.Roles = roles.Delimit();

            _rolesInitialized = true;
        }
        /// <summary>
        /// Determines whether an IPrinciple has Permission to do something within a PermissionContext.
        /// </summary>
        /// <param name="user"></param>
        /// <param name="permission"></param>
        /// <param name="within"></param>
        /// <returns></returns>
        public static bool Has(this System.Security.Principal.IPrincipal user, PermissionTo permission, PermissionContext within)
        {
            bool isInRole = false;

            foreach (PermissionTo pt in EnumHelper.GetOptions <PermissionTo>())
            {
                if (permission.MatchesFilter(pt))
                {
                    isInRole = user.IsInRole(string.Format("{0}_{1}", within.GetStringValue(), pt.GetStringValue()));
                    if (isInRole)
                    {
                        break;
                    }
                }
            }

            return(isInRole);
        }
Пример #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="requiring">Requiring Permission.  Can be flagged.</param>
 /// <param name="required">Required Permission. Cannot be flagged.</param>
 public PermissionPrerequisiteAttribute(PermissionTo requiring, PermissionTo required)
 {
     this.Requiring = requiring;
     this.Required  = required;
 }
Пример #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="permissionTo">Flagged enumerator indicated the supported Permissions</param>
 public PermissionContextSupportsAttribute(PermissionTo permissionTo)
 {
     this.PermissionTo = permissionTo;
 }
Пример #5
0
 public ForcePermissionAttribute(PermissionTo permissionTo)
 {
     this.PermissionTo = permissionTo;
 }
Пример #6
0
 public PermissionPrerequisiteAttribute(PermissionTo required, PermissionContext requiredWithin)
 {
     this.Required       = required;
     this.RequiredWithin = requiredWithin;
 }
 /// <summary>
 /// Ensures that the current user has sufficient permissions within the specified PermissionContext
 /// </summary>
 /// <param name="roleFor"></param>
 /// <param name="within"></param>
 public RequiresAttribute(PermissionTo roleFor, PermissionContext within)
     : base()
 {
     this.RoleFor           = roleFor;
     this.PermissionContext = within;
 }
 /// <summary>
 /// Ensures that the current user has sufficient permissions within the Controller's default
 /// PermissionContext
 /// </summary>
 /// <param name="roleFor"></param>
 public RequiresAttribute(PermissionTo roleFor)
     : base()
 {
     this.RoleFor           = roleFor;
     this.PermissionContext = null;
 }