diff --git a/src/Volo.Abp.Authorization/Microsoft/Extensions/DependencyInjection/AbpAuthorizationServiceCollectionExtensions.cs b/src/Volo.Abp.Authorization/Microsoft/Extensions/DependencyInjection/AbpAuthorizationServiceCollectionExtensions.cs index a2d564d584..ff53ba7ae8 100644 --- a/src/Volo.Abp.Authorization/Microsoft/Extensions/DependencyInjection/AbpAuthorizationServiceCollectionExtensions.cs +++ b/src/Volo.Abp.Authorization/Microsoft/Extensions/DependencyInjection/AbpAuthorizationServiceCollectionExtensions.cs @@ -1,13 +1,23 @@ -using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Volo.Abp.Authorization; using Volo.Abp.Authorization.Permissions; namespace Microsoft.Extensions.DependencyInjection { public static class AbpAuthorizationServiceCollectionExtensions { + //TODO: Remove this and use AddAlwaysAllowAuthorization public static IServiceCollection AddAlwaysAllowPermissionChecker(this IServiceCollection services) { return services.Replace(ServiceDescriptor.Singleton()); } + + public static IServiceCollection AddAlwaysAllowAuthorization(this IServiceCollection services) + { + services.Replace(ServiceDescriptor.Singleton()); + services.Replace(ServiceDescriptor.Singleton()); + return services.Replace(ServiceDescriptor.Singleton()); + } } } diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AlwaysAllowAuthorizationService.cs b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AlwaysAllowAuthorizationService.cs new file mode 100644 index 0000000000..2d90e9ae4c --- /dev/null +++ b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AlwaysAllowAuthorizationService.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Security.Claims; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Volo.Abp.Security.Claims; + +namespace Volo.Abp.Authorization +{ + public class AlwaysAllowAuthorizationService : IAbpAuthorizationService + { + public IServiceProvider ServiceProvider { get; } + + public ClaimsPrincipal CurrentPrincipal => _currentPrincipalAccessor.Principal; + + private readonly ICurrentPrincipalAccessor _currentPrincipalAccessor; + + public AlwaysAllowAuthorizationService(IServiceProvider serviceProvider, ICurrentPrincipalAccessor currentPrincipalAccessor) + { + ServiceProvider = serviceProvider; + _currentPrincipalAccessor = currentPrincipalAccessor; + } + + public Task AuthorizeAsync(ClaimsPrincipal user, object resource, IEnumerable requirements) + { + return Task.FromResult(AuthorizationResult.Success()); + } + + public Task AuthorizeAsync(ClaimsPrincipal user, object resource, string policyName) + { + return Task.FromResult(AuthorizationResult.Success()); + } + } +} \ No newline at end of file