public static bool CheckPermission(this ClaimsPrincipal user, AppArea area, Access access) { Claim adminClaim = user.Claims.FirstOrDefault(c => c.Type == AuthConst.AdminClaim); if (adminClaim?.Value.Equals(true.ToString()) == true) { return(true); } Claim permissionClaim = user.Claims .FirstOrDefault(c => c.Type == AuthHelper.PermissionToClaim(area.GetAttributeOfType <PermissionNameAttribute>().Name)); if (permissionClaim == null) { return(false); } string accessString = permissionClaim.Value; Access userAccess = AuthHelper.StringToAccess(accessString); return((userAccess & access) == access); }
public AuthorizePermissionAttribute(AppArea permission, Access access) { Policy = AuthHelper.PermissionToPolicy(permission, access); }
public PermissionRequirement(AppArea area, Access access) { Area = area; Access = access; }
public static string PermissionToPolicy(AppArea area, Access access) { return(AuthConst.PolicyPrefix + area.GetAttributeOfType <PermissionNameAttribute>().Name + "," + AccessToString(access)); }