From bfcc82b9ef3aad1b3bf43fbf29a5bf9891b611f7 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 13 Jul 2023 10:13:49 +0800 Subject: [PATCH] Enable nullable annotations for Volo.Abp.Authorization --- .../Toolbars/ToolbarManager.cs | 2 +- .../Authorization/AbpAuthorizationServiceExtensions.cs | 4 ++-- .../Authorization/AuthorizationOptionsExtensions.cs | 4 ++-- .../Volo.Abp.Authorization/Volo.Abp.Authorization.csproj | 2 ++ .../Abp/Authorization/AbpAuthorizationPolicyProvider.cs | 2 +- .../AuthenticatedSimpleStateCheckerSerializerContributor.cs | 4 ++-- .../Permissions/IStaticPermissionDefinitionStore.cs | 2 +- .../Permissions/NullDynamicPermissionDefinitionStore.cs | 2 +- .../Permissions/PermissionValueProviderManager.cs | 2 +- .../PermissionsSimpleStateCheckerSerializerContributor.cs | 6 +++--- .../RequirePermissionsSimpleBatchStateChecker.cs | 2 +- .../Permissions/StaticPermissionDefinitionStore.cs | 4 ++-- .../Volo/Abp/Ui/Navigation/MenuManager.cs | 2 +- 13 files changed, 20 insertions(+), 18 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Toolbars/ToolbarManager.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Toolbars/ToolbarManager.cs index 67e584abb6..7822277371 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Toolbars/ToolbarManager.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Toolbars/ToolbarManager.cs @@ -56,7 +56,7 @@ public class ToolbarManager : IToolbarManager, ITransientDependency { foreach (var item in toolbar.Items.Where(x => !x.RequiredPermissionName.IsNullOrWhiteSpace())) { - item.RequirePermissions(item.RequiredPermissionName); + item.RequirePermissions(item.RequiredPermissionName!); } var checkPermissionsToolbarItems = toolbar.Items.Where(x => x.StateCheckers.Any()).ToArray(); diff --git a/framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AbpAuthorizationServiceExtensions.cs b/framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AbpAuthorizationServiceExtensions.cs index b4ed1b8b31..c66d74b381 100644 --- a/framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AbpAuthorizationServiceExtensions.cs +++ b/framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AbpAuthorizationServiceExtensions.cs @@ -25,7 +25,7 @@ public static class AbpAuthorizationServiceExtensions ); } - public static async Task AuthorizeAsync(this IAuthorizationService authorizationService, object resource, AuthorizationPolicy policy) + public static async Task AuthorizeAsync(this IAuthorizationService authorizationService, object? resource, AuthorizationPolicy policy) { return await authorizationService.AuthorizeAsync( authorizationService.AsAbpAuthorizationService().CurrentPrincipal, @@ -52,7 +52,7 @@ public static class AbpAuthorizationServiceExtensions ); } - public static async Task AuthorizeAsync(this IAuthorizationService authorizationService, object resource, string policyName) + public static async Task AuthorizeAsync(this IAuthorizationService authorizationService, object? resource, string policyName) { return await authorizationService.AuthorizeAsync( authorizationService.AsAbpAuthorizationService().CurrentPrincipal, diff --git a/framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AuthorizationOptionsExtensions.cs b/framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AuthorizationOptionsExtensions.cs index 69f7e5d7fe..39ba335cb2 100644 --- a/framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AuthorizationOptionsExtensions.cs +++ b/framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AuthorizationOptionsExtensions.cs @@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.Authorization; public static class AuthorizationOptionsExtensions { private static readonly PropertyInfo PolicyMapProperty = typeof(AuthorizationOptions) - .GetProperty("PolicyMap", BindingFlags.Instance | BindingFlags.NonPublic); + .GetProperty("PolicyMap", BindingFlags.Instance | BindingFlags.NonPublic)!; /// /// Gets all policies. @@ -20,6 +20,6 @@ public static class AuthorizationOptionsExtensions /// public static List GetPoliciesNames(this AuthorizationOptions options) { - return ((IDictionary)PolicyMapProperty.GetValue(options)).Keys.ToList(); + return ((IDictionary)PolicyMapProperty.GetValue(options)!).Keys.ToList(); } } diff --git a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj index 81077c16f9..d16885cbd0 100644 --- a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj +++ b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.Authorization Volo.Abp.Authorization $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs index fb37427c48..7958f2a979 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs @@ -23,7 +23,7 @@ public class AbpAuthorizationPolicyProvider : DefaultAuthorizationPolicyProvider _options = options.Value; } - public override async Task GetPolicyAsync(string policyName) + public override async Task GetPolicyAsync(string policyName) { var policy = await base.GetPolicyAsync(policyName); if (policy != null) diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AuthenticatedSimpleStateCheckerSerializerContributor.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AuthenticatedSimpleStateCheckerSerializerContributor.cs index 2a23b5bfcd..d23273e7a2 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AuthenticatedSimpleStateCheckerSerializerContributor.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AuthenticatedSimpleStateCheckerSerializerContributor.cs @@ -10,7 +10,7 @@ public class AuthenticatedSimpleStateCheckerSerializerContributor : { public const string CheckerShortName = "A"; - public string SerializeToJson(ISimpleStateChecker checker) + public string? SerializeToJson(ISimpleStateChecker checker) where TState : IHasSimpleStateCheckers { if (checker is not RequireAuthenticatedSimpleStateChecker) @@ -25,7 +25,7 @@ public class AuthenticatedSimpleStateCheckerSerializerContributor : return jsonObject.ToJsonString(); } - public ISimpleStateChecker Deserialize(JsonObject jsonObject, TState state) + public ISimpleStateChecker? Deserialize(JsonObject jsonObject, TState state) where TState : IHasSimpleStateCheckers { if (jsonObject["T"]?.ToString() != CheckerShortName) diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IStaticPermissionDefinitionStore.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IStaticPermissionDefinitionStore.cs index 719412e4db..4da8423dd3 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IStaticPermissionDefinitionStore.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IStaticPermissionDefinitionStore.cs @@ -5,7 +5,7 @@ namespace Volo.Abp.Authorization.Permissions; public interface IStaticPermissionDefinitionStore { - Task GetOrNullAsync(string name); + Task GetOrNullAsync(string name); Task> GetPermissionsAsync(); diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/NullDynamicPermissionDefinitionStore.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/NullDynamicPermissionDefinitionStore.cs index 61e70b057c..b070b6af96 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/NullDynamicPermissionDefinitionStore.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/NullDynamicPermissionDefinitionStore.cs @@ -8,7 +8,7 @@ namespace Volo.Abp.Authorization.Permissions; public class NullDynamicPermissionDefinitionStore : IDynamicPermissionDefinitionStore, ISingletonDependency { - private readonly static Task CachedPermissionResult = Task.FromResult((PermissionDefinition)null); + private readonly static Task CachedPermissionResult = Task.FromResult((PermissionDefinition)null!); private readonly static Task> CachedPermissionsResult = Task.FromResult((IReadOnlyList)Array.Empty().ToImmutableList()); diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProviderManager.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProviderManager.cs index 36744381a2..84d0ad0b2c 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProviderManager.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProviderManager.cs @@ -24,7 +24,7 @@ public class PermissionValueProviderManager : IPermissionValueProviderManager, I () => Options .ValueProviders .Select(c => serviceProvider.GetRequiredService(c) as IPermissionValueProvider) - .ToList(), + .ToList()!, true ); } diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionsSimpleStateCheckerSerializerContributor.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionsSimpleStateCheckerSerializerContributor.cs index 3b890797f6..1a06b83ed7 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionsSimpleStateCheckerSerializerContributor.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionsSimpleStateCheckerSerializerContributor.cs @@ -12,7 +12,7 @@ public class PermissionsSimpleStateCheckerSerializerContributor : { public const string CheckerShortName = "P"; - public string SerializeToJson(ISimpleStateChecker checker) + public string? SerializeToJson(ISimpleStateChecker checker) where TState : IHasSimpleStateCheckers { if (checker is not RequirePermissionsSimpleStateChecker permissionsSimpleStateChecker) @@ -35,7 +35,7 @@ public class PermissionsSimpleStateCheckerSerializerContributor : return jsonObject.ToJsonString(); } - public ISimpleStateChecker Deserialize( + public ISimpleStateChecker? Deserialize( JsonObject jsonObject, TState state) where TState : IHasSimpleStateCheckers @@ -54,7 +54,7 @@ public class PermissionsSimpleStateCheckerSerializerContributor : return new RequirePermissionsSimpleStateChecker( new RequirePermissionsSimpleBatchStateCheckerModel( state, - nameArray.Select(x => x.ToString()).ToArray(), + nameArray.Select(x => x!.ToString()).ToArray(), (bool?)jsonObject["A"] ?? false ) ); diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RequirePermissionsSimpleBatchStateChecker.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RequirePermissionsSimpleBatchStateChecker.cs index e4ce666d8a..70e74a6bca 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RequirePermissionsSimpleBatchStateChecker.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RequirePermissionsSimpleBatchStateChecker.cs @@ -11,7 +11,7 @@ namespace Volo.Abp.Authorization.Permissions; public class RequirePermissionsSimpleBatchStateChecker : SimpleBatchStateCheckerBase where TState : IHasSimpleStateCheckers { - public static RequirePermissionsSimpleBatchStateChecker Current => _current.Value; + public static RequirePermissionsSimpleBatchStateChecker Current => _current.Value!; private static readonly AsyncLocal> _current = new AsyncLocal>(); private readonly List> _models; diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/StaticPermissionDefinitionStore.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/StaticPermissionDefinitionStore.cs index ee4803d61e..2d0a9d668c 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/StaticPermissionDefinitionStore.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/StaticPermissionDefinitionStore.cs @@ -79,7 +79,7 @@ public class StaticPermissionDefinitionStore : IStaticPermissionDefinitionStore, var providers = Options .DefinitionProviders - .Select(p => scope.ServiceProvider.GetRequiredService(p) as IPermissionDefinitionProvider) + .Select(p => (scope.ServiceProvider.GetRequiredService(p) as IPermissionDefinitionProvider)!) .ToList(); foreach (var provider in providers) @@ -101,7 +101,7 @@ public class StaticPermissionDefinitionStore : IStaticPermissionDefinitionStore, } } - public Task GetOrNullAsync(string name) + public Task GetOrNullAsync(string name) { return Task.FromResult(PermissionDefinitions.GetOrDefault(name)); } diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/MenuManager.cs b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/MenuManager.cs index 907779c397..bff1abb341 100644 --- a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/MenuManager.cs +++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/MenuManager.cs @@ -110,7 +110,7 @@ public class MenuManager : IMenuManager, ITransientDependency { if (!item.RequiredPermissionName.IsNullOrWhiteSpace()) { - item.RequirePermissions(item.RequiredPermissionName); + item.RequirePermissions(item.RequiredPermissionName!); } }