Skip to content

Commit

Permalink
fix: added policies extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
pksorensen committed Jul 30, 2022
1 parent cda2789 commit e82d1a4
Showing 1 changed file with 51 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,13 @@
using DotNetDevOps.Extensions.EAVFramework.Shared;
using EAVFW.Extensions.WorkflowEngine;
using Hangfire;
using Hangfire.Dashboard;
using Hangfire.SqlServer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
Expand All @@ -26,10 +31,55 @@

namespace Microsoft.Extensions.DependencyInjection
{
public static class HangfireExtensions
{
public static IEndpointRouteBuilder MapAuthorizedHangfireDashboard(this IEndpointRouteBuilder endpoints, string url = "/.well-known/jobs", string policyName = "HangfirePolicyName")
{

endpoints.MapHangfireDashboard(url, new DashboardOptions()
{
Authorization = new List<IDashboardAuthorizationFilter> { }
})
.RequireAuthorization(policyName);


return endpoints;
}
public static AuthorizationOptions AddHangfirePolicy(this AuthorizationOptions options,
string policyName = "HangfirePolicyName",
string schemaName = "eavfw",
string role = "System Administrator")
{
options.AddPolicy(policyName, pb =>
{
pb.AddAuthenticationSchemes(schemaName);
pb.RequireAuthenticatedUser();
pb.RequireClaim("role", role);
});

return options;
}

public static AuthorizationOptions AddHangfireAnonymousPolicy(this AuthorizationOptions options,
string policyName = "HangfirePolicyName")
{
options.AddPolicy(policyName, pb =>
{
pb.RequireAssertion(c => true);
});

return options;
}

}

public static class DependencyInjectionExtensions
{




public static IEAVFrameworkBuilder AddWorkFlowEngine<TContext, TWorkflowRun>(this IEAVFrameworkBuilder builder)
where TContext : DynamicContext
where TWorkflowRun : DynamicEntity, IWorkflowRun, new()
Expand Down

0 comments on commit e82d1a4

Please sign in to comment.