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()))
{
item.RequirePermissions(item.RequiredPermissionName);
item.RequirePermissions(item.RequiredPermissionName!);
}
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(
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(
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
{
private static readonly PropertyInfo PolicyMapProperty = typeof(AuthorizationOptions)
.GetProperty("PolicyMap", BindingFlags.Instance | BindingFlags.NonPublic);
.GetProperty("PolicyMap", BindingFlags.Instance | BindingFlags.NonPublic)!;
/// <summary>
/// Gets all policies.
@ -20,6 +20,6 @@ public static class AuthorizationOptionsExtensions
/// <returns></returns>
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>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.Authorization</AssemblyName>
<PackageId>Volo.Abp.Authorization</PackageId>
<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;
}
public override async Task<AuthorizationPolicy> GetPolicyAsync(string policyName)
public override async Task<AuthorizationPolicy?> GetPolicyAsync(string policyName)
{
var policy = await base.GetPolicyAsync(policyName);
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 string SerializeToJson<TState>(ISimpleStateChecker<TState> checker)
public string? SerializeToJson<TState>(ISimpleStateChecker<TState> checker)
where TState : IHasSimpleStateCheckers<TState>
{
if (checker is not RequireAuthenticatedSimpleStateChecker<TState>)
@ -25,7 +25,7 @@ public class AuthenticatedSimpleStateCheckerSerializerContributor :
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>
{
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
{
Task<PermissionDefinition> GetOrNullAsync(string name);
Task<PermissionDefinition?> GetOrNullAsync(string name);
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
{
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 =
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
.ValueProviders
.Select(c => serviceProvider.GetRequiredService(c) as IPermissionValueProvider)
.ToList(),
.ToList()!,
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 string SerializeToJson<TState>(ISimpleStateChecker<TState> checker)
public string? SerializeToJson<TState>(ISimpleStateChecker<TState> checker)
where TState : IHasSimpleStateCheckers<TState>
{
if (checker is not RequirePermissionsSimpleStateChecker<TState> permissionsSimpleStateChecker)
@ -35,7 +35,7 @@ public class PermissionsSimpleStateCheckerSerializerContributor :
return jsonObject.ToJsonString();
}
public ISimpleStateChecker<TState> Deserialize<TState>(
public ISimpleStateChecker<TState>? Deserialize<TState>(
JsonObject jsonObject,
TState state)
where TState : IHasSimpleStateCheckers<TState>
@ -54,7 +54,7 @@ public class PermissionsSimpleStateCheckerSerializerContributor :
return new RequirePermissionsSimpleStateChecker<TState>(
new RequirePermissionsSimpleBatchStateCheckerModel<TState>(
state,
nameArray.Select(x => x.ToString()).ToArray(),
nameArray.Select(x => x!.ToString()).ToArray(),
(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>
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 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
.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<PermissionDefinition> GetOrNullAsync(string name)
public Task<PermissionDefinition?> GetOrNullAsync(string 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())
{
item.RequirePermissions(item.RequiredPermissionName);
item.RequirePermissions(item.RequiredPermissionName!);
}
}

Loading…
Cancel
Save