using Microsoft.AspNetCore.Authorization; 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>(); } } }