From f9847e0a67920b17c80d4f84e57f62bb9d7afd2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sat, 7 Apr 2018 19:17:41 +0300 Subject: [PATCH] Added AddAlwaysAllowAuthorization method and AlwaysAllowAuthorizationService. --- ...uthorizationServiceCollectionExtensions.cs | 12 ++++++- .../AlwaysAllowAuthorizationService.cs | 34 +++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 src/Volo.Abp.Authorization/Volo/Abp/Authorization/AlwaysAllowAuthorizationService.cs 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