Browse Source

Enable nullable annotations for Volo.Abp.Authorization

pull/17108/head
liangshiwei 3 years ago
parent
commit
bfcc82b9ef
  1. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Toolbars/ToolbarManager.cs
  2. 4
      framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AbpAuthorizationServiceExtensions.cs
  3. 4
      framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AuthorizationOptionsExtensions.cs
  4. 2
      framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj
  5. 2
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs
  6. 4
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AuthenticatedSimpleStateCheckerSerializerContributor.cs
  7. 2
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IStaticPermissionDefinitionStore.cs
  8. 2
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/NullDynamicPermissionDefinitionStore.cs
  9. 2
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProviderManager.cs
  10. 6
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionsSimpleStateCheckerSerializerContributor.cs
  11. 2
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RequirePermissionsSimpleBatchStateChecker.cs
  12. 4
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/StaticPermissionDefinitionStore.cs
  13. 2
      framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/MenuManager.cs

2
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())) 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(); var checkPermissionsToolbarItems = toolbar.Items.Where(x => x.StateCheckers.Any()).ToArray();

4
framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AbpAuthorizationServiceExtensions.cs

@ -25,7 +25,7 @@ public static class AbpAuthorizationServiceExtensions
); );
} }
public static async Task<AuthorizationResult> AuthorizeAsync(this IAuthorizationService authorizationService, object resource, AuthorizationPolicy policy) public static async Task<AuthorizationResult> AuthorizeAsync(this IAuthorizationService authorizationService, object? resource, AuthorizationPolicy policy)
{ {
return await authorizationService.AuthorizeAsync( return await authorizationService.AuthorizeAsync(
authorizationService.AsAbpAuthorizationService().CurrentPrincipal, authorizationService.AsAbpAuthorizationService().CurrentPrincipal,
@ -52,7 +52,7 @@ public static class AbpAuthorizationServiceExtensions
); );
} }
public static async Task<AuthorizationResult> AuthorizeAsync(this IAuthorizationService authorizationService, object resource, string policyName) public static async Task<AuthorizationResult> AuthorizeAsync(this IAuthorizationService authorizationService, object? resource, string policyName)
{ {
return await authorizationService.AuthorizeAsync( return await authorizationService.AuthorizeAsync(
authorizationService.AsAbpAuthorizationService().CurrentPrincipal, authorizationService.AsAbpAuthorizationService().CurrentPrincipal,

4
framework/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AuthorizationOptionsExtensions.cs

@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.Authorization;
public static class AuthorizationOptionsExtensions public static class AuthorizationOptionsExtensions
{ {
private static readonly PropertyInfo PolicyMapProperty = typeof(AuthorizationOptions) private static readonly PropertyInfo PolicyMapProperty = typeof(AuthorizationOptions)
.GetProperty("PolicyMap", BindingFlags.Instance | BindingFlags.NonPublic); .GetProperty("PolicyMap", BindingFlags.Instance | BindingFlags.NonPublic)!;
/// <summary> /// <summary>
/// Gets all policies. /// Gets all policies.
@ -20,6 +20,6 @@ public static class AuthorizationOptionsExtensions
/// <returns></returns> /// <returns></returns>
public static List<string> GetPoliciesNames(this AuthorizationOptions options) public static List<string> GetPoliciesNames(this AuthorizationOptions options)
{ {
return ((IDictionary<string, AuthorizationPolicy>)PolicyMapProperty.GetValue(options)).Keys.ToList(); return ((IDictionary<string, AuthorizationPolicy>)PolicyMapProperty.GetValue(options)!).Keys.ToList();
} }
} }

2
framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.Authorization</AssemblyName> <AssemblyName>Volo.Abp.Authorization</AssemblyName>
<PackageId>Volo.Abp.Authorization</PackageId> <PackageId>Volo.Abp.Authorization</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

2
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs

@ -23,7 +23,7 @@ public class AbpAuthorizationPolicyProvider : DefaultAuthorizationPolicyProvider
_options = options.Value; _options = options.Value;
} }
public override async Task<AuthorizationPolicy> GetPolicyAsync(string policyName) public override async Task<AuthorizationPolicy?> GetPolicyAsync(string policyName)
{ {
var policy = await base.GetPolicyAsync(policyName); var policy = await base.GetPolicyAsync(policyName);
if (policy != null) if (policy != null)

4
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AuthenticatedSimpleStateCheckerSerializerContributor.cs

@ -10,7 +10,7 @@ public class AuthenticatedSimpleStateCheckerSerializerContributor :
{ {
public const string CheckerShortName = "A"; public const string CheckerShortName = "A";
public string SerializeToJson<TState>(ISimpleStateChecker<TState> checker) public string? SerializeToJson<TState>(ISimpleStateChecker<TState> checker)
where TState : IHasSimpleStateCheckers<TState> where TState : IHasSimpleStateCheckers<TState>
{ {
if (checker is not RequireAuthenticatedSimpleStateChecker<TState>) if (checker is not RequireAuthenticatedSimpleStateChecker<TState>)
@ -25,7 +25,7 @@ public class AuthenticatedSimpleStateCheckerSerializerContributor :
return jsonObject.ToJsonString(); return jsonObject.ToJsonString();
} }
public ISimpleStateChecker<TState> Deserialize<TState>(JsonObject jsonObject, TState state) public ISimpleStateChecker<TState>? Deserialize<TState>(JsonObject jsonObject, TState state)
where TState : IHasSimpleStateCheckers<TState> where TState : IHasSimpleStateCheckers<TState>
{ {
if (jsonObject["T"]?.ToString() != CheckerShortName) if (jsonObject["T"]?.ToString() != CheckerShortName)

2
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IStaticPermissionDefinitionStore.cs

@ -5,7 +5,7 @@ namespace Volo.Abp.Authorization.Permissions;
public interface IStaticPermissionDefinitionStore public interface IStaticPermissionDefinitionStore
{ {
Task<PermissionDefinition> GetOrNullAsync(string name); Task<PermissionDefinition?> GetOrNullAsync(string name);
Task<IReadOnlyList<PermissionDefinition>> GetPermissionsAsync(); Task<IReadOnlyList<PermissionDefinition>> GetPermissionsAsync();

2
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 public class NullDynamicPermissionDefinitionStore : IDynamicPermissionDefinitionStore, ISingletonDependency
{ {
private readonly static Task<PermissionDefinition> CachedPermissionResult = Task.FromResult((PermissionDefinition)null); private readonly static Task<PermissionDefinition> CachedPermissionResult = Task.FromResult((PermissionDefinition)null!);
private readonly static Task<IReadOnlyList<PermissionDefinition>> CachedPermissionsResult = private readonly static Task<IReadOnlyList<PermissionDefinition>> CachedPermissionsResult =
Task.FromResult((IReadOnlyList<PermissionDefinition>)Array.Empty<PermissionDefinition>().ToImmutableList()); Task.FromResult((IReadOnlyList<PermissionDefinition>)Array.Empty<PermissionDefinition>().ToImmutableList());

2
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionValueProviderManager.cs

@ -24,7 +24,7 @@ public class PermissionValueProviderManager : IPermissionValueProviderManager, I
() => Options () => Options
.ValueProviders .ValueProviders
.Select(c => serviceProvider.GetRequiredService(c) as IPermissionValueProvider) .Select(c => serviceProvider.GetRequiredService(c) as IPermissionValueProvider)
.ToList(), .ToList()!,
true true
); );
} }

6
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionsSimpleStateCheckerSerializerContributor.cs

@ -12,7 +12,7 @@ public class PermissionsSimpleStateCheckerSerializerContributor :
{ {
public const string CheckerShortName = "P"; public const string CheckerShortName = "P";
public string SerializeToJson<TState>(ISimpleStateChecker<TState> checker) public string? SerializeToJson<TState>(ISimpleStateChecker<TState> checker)
where TState : IHasSimpleStateCheckers<TState> where TState : IHasSimpleStateCheckers<TState>
{ {
if (checker is not RequirePermissionsSimpleStateChecker<TState> permissionsSimpleStateChecker) if (checker is not RequirePermissionsSimpleStateChecker<TState> permissionsSimpleStateChecker)
@ -35,7 +35,7 @@ public class PermissionsSimpleStateCheckerSerializerContributor :
return jsonObject.ToJsonString(); return jsonObject.ToJsonString();
} }
public ISimpleStateChecker<TState> Deserialize<TState>( public ISimpleStateChecker<TState>? Deserialize<TState>(
JsonObject jsonObject, JsonObject jsonObject,
TState state) TState state)
where TState : IHasSimpleStateCheckers<TState> where TState : IHasSimpleStateCheckers<TState>
@ -54,7 +54,7 @@ public class PermissionsSimpleStateCheckerSerializerContributor :
return new RequirePermissionsSimpleStateChecker<TState>( return new RequirePermissionsSimpleStateChecker<TState>(
new RequirePermissionsSimpleBatchStateCheckerModel<TState>( new RequirePermissionsSimpleBatchStateCheckerModel<TState>(
state, state,
nameArray.Select(x => x.ToString()).ToArray(), nameArray.Select(x => x!.ToString()).ToArray(),
(bool?)jsonObject["A"] ?? false (bool?)jsonObject["A"] ?? false
) )
); );

2
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RequirePermissionsSimpleBatchStateChecker.cs

@ -11,7 +11,7 @@ namespace Volo.Abp.Authorization.Permissions;
public class RequirePermissionsSimpleBatchStateChecker<TState> : SimpleBatchStateCheckerBase<TState> public class RequirePermissionsSimpleBatchStateChecker<TState> : SimpleBatchStateCheckerBase<TState>
where TState : IHasSimpleStateCheckers<TState> where TState : IHasSimpleStateCheckers<TState>
{ {
public static RequirePermissionsSimpleBatchStateChecker<TState> Current => _current.Value; public static RequirePermissionsSimpleBatchStateChecker<TState> Current => _current.Value!;
private static readonly AsyncLocal<RequirePermissionsSimpleBatchStateChecker<TState>> _current = new AsyncLocal<RequirePermissionsSimpleBatchStateChecker<TState>>(); private static readonly AsyncLocal<RequirePermissionsSimpleBatchStateChecker<TState>> _current = new AsyncLocal<RequirePermissionsSimpleBatchStateChecker<TState>>();
private readonly List<RequirePermissionsSimpleBatchStateCheckerModel<TState>> _models; private readonly List<RequirePermissionsSimpleBatchStateCheckerModel<TState>> _models;

4
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/StaticPermissionDefinitionStore.cs

@ -79,7 +79,7 @@ public class StaticPermissionDefinitionStore : IStaticPermissionDefinitionStore,
var providers = Options var providers = Options
.DefinitionProviders .DefinitionProviders
.Select(p => scope.ServiceProvider.GetRequiredService(p) as IPermissionDefinitionProvider) .Select(p => (scope.ServiceProvider.GetRequiredService(p) as IPermissionDefinitionProvider)!)
.ToList(); .ToList();
foreach (var provider in providers) foreach (var provider in providers)
@ -101,7 +101,7 @@ public class StaticPermissionDefinitionStore : IStaticPermissionDefinitionStore,
} }
} }
public Task<PermissionDefinition> GetOrNullAsync(string name) public Task<PermissionDefinition?> GetOrNullAsync(string name)
{ {
return Task.FromResult(PermissionDefinitions.GetOrDefault(name)); return Task.FromResult(PermissionDefinitions.GetOrDefault(name));
} }

2
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()) if (!item.RequiredPermissionName.IsNullOrWhiteSpace())
{ {
item.RequirePermissions(item.RequiredPermissionName); item.RequirePermissions(item.RequiredPermissionName!);
} }
} }

Loading…
Cancel
Save