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); }
/// <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; }
/// <summary> /// /// </summary> /// <param name="permissionTo">Flagged enumerator indicated the supported Permissions</param> public PermissionContextSupportsAttribute(PermissionTo permissionTo) { this.PermissionTo = permissionTo; }
public ForcePermissionAttribute(PermissionTo permissionTo) { this.PermissionTo = permissionTo; }
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; }