2021-12-19 13:44:22 +00:00
|
|
|
|
using Microsoft.AspNetCore.Authorization;
|
2021-11-29 21:04:15 +00:00
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
|
|
|
|
|
using Selector.Model.Authorisation;
|
|
|
|
|
|
|
|
|
|
namespace Selector.Model.Extensions
|
|
|
|
|
{
|
|
|
|
|
public static class ServiceExtensions
|
|
|
|
|
{
|
|
|
|
|
public static void AddAuthorisationHandlers(this IServiceCollection services)
|
|
|
|
|
{
|
|
|
|
|
services.AddAuthorization(options =>
|
|
|
|
|
{
|
|
|
|
|
options.FallbackPolicy = new AuthorizationPolicyBuilder()
|
|
|
|
|
.RequireAuthenticatedUser()
|
|
|
|
|
.Build();
|
|
|
|
|
});
|
|
|
|
|
services.AddScoped<IAuthorizationHandler, WatcherIsOwnerAuthHandler>();
|
|
|
|
|
services.AddSingleton<IAuthorizationHandler, WatcherIsAdminAuthHandler>();
|
|
|
|
|
|
|
|
|
|
services.AddScoped<IAuthorizationHandler, UserIsSelfAuthHandler>();
|
|
|
|
|
services.AddSingleton<IAuthorizationHandler, UserIsAdminAuthHandler>();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|