Initial ...
This commit is contained in:
@@ -0,0 +1,607 @@
|
||||
using System.Collections.Generic;
|
||||
using IdentityModel;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using xCommons.Authorization;
|
||||
using xCommons.Constants;
|
||||
using xCommons.Extensions;
|
||||
using static xIdentityHelper.XApiScopeHelper;
|
||||
|
||||
namespace xIdentityHelper
|
||||
{
|
||||
public class XAuthorizationHelper
|
||||
{
|
||||
public static IDictionary<string, AuthorizationPolicy> GetXAuthorizationPolicies()
|
||||
{
|
||||
//
|
||||
var result = new Dictionary<string, AuthorizationPolicy>();
|
||||
|
||||
//
|
||||
RequiredRolesRequirement roleRequirements = null;
|
||||
|
||||
//
|
||||
#region Build Policies ...
|
||||
//
|
||||
// Scope Policies ...
|
||||
#region Scope Policies ...
|
||||
//
|
||||
// Read Scope ...
|
||||
result.Add(XPolicies.ReadAccess,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireClaim(JwtClaimTypes.Scope, XApiScopes.Read)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Write Scope ...
|
||||
result.Add(XPolicies.WriteAccess,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireClaim(
|
||||
JwtClaimTypes.Scope,
|
||||
XApiScopes.Read,
|
||||
XApiScopes.Write
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Admin Scope ...
|
||||
result.Add(XPolicies.AdminAccess,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireClaim(
|
||||
JwtClaimTypes.Scope,
|
||||
XApiScopes.Read,
|
||||
XApiScopes.Write,
|
||||
XApiScopes.Admin
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Manage Scope ...
|
||||
result.Add(XPolicies.ManageAccess,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireClaim(
|
||||
JwtClaimTypes.Scope,
|
||||
XApiScopes.Read,
|
||||
XApiScopes.Write,
|
||||
XApiScopes.Admin,
|
||||
XApiScopes.Manage
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// Roles Policies ...
|
||||
#region Roles Policies ...
|
||||
//
|
||||
// User ...
|
||||
#region User Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.USER,
|
||||
XUserRoles.AGENT,
|
||||
XUserRoles.REPORTER_ASSISTANT,
|
||||
XUserRoles.REPORTER,
|
||||
XUserRoles.ACTUARY_ASSISTANT,
|
||||
XUserRoles.ACTUARY,
|
||||
XUserRoles.CHIEF_CLERK_ASSISTANT,
|
||||
XUserRoles.CHIEF_CLERK,
|
||||
XUserRoles.JOURNALIST,
|
||||
XUserRoles.RESPONSIBLE_MANAGER,
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// User Policy ...
|
||||
result.Add(XPolicies.User,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled User Policy ...
|
||||
result.Add(XPolicies.EnabledUser,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// Agent ...
|
||||
#region Agent Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.AGENT,
|
||||
XUserRoles.REPORTER_ASSISTANT,
|
||||
XUserRoles.REPORTER,
|
||||
XUserRoles.ACTUARY_ASSISTANT,
|
||||
XUserRoles.ACTUARY,
|
||||
XUserRoles.CHIEF_CLERK_ASSISTANT,
|
||||
XUserRoles.CHIEF_CLERK,
|
||||
XUserRoles.JOURNALIST,
|
||||
XUserRoles.RESPONSIBLE_MANAGER,
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// Agent Policy ...
|
||||
result.Add(XPolicies.Agent,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled Agent Policy ...
|
||||
result.Add(XPolicies.EnabledAgent,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// ReporterAssistant ...
|
||||
#region Reporter Assistant Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.REPORTER_ASSISTANT,
|
||||
XUserRoles.REPORTER,
|
||||
XUserRoles.ACTUARY_ASSISTANT,
|
||||
XUserRoles.ACTUARY,
|
||||
XUserRoles.CHIEF_CLERK_ASSISTANT,
|
||||
XUserRoles.CHIEF_CLERK,
|
||||
XUserRoles.JOURNALIST,
|
||||
XUserRoles.RESPONSIBLE_MANAGER,
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// ReporterAssistant ...
|
||||
result.Add(XPolicies.ReporterAssistant,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled ReporterAssistant ...
|
||||
result.Add(XPolicies.EnabledReporterAssistant,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// Reporter ...
|
||||
#region Reporter Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.REPORTER,
|
||||
XUserRoles.ACTUARY_ASSISTANT,
|
||||
XUserRoles.ACTUARY,
|
||||
XUserRoles.CHIEF_CLERK_ASSISTANT,
|
||||
XUserRoles.CHIEF_CLERK,
|
||||
XUserRoles.JOURNALIST,
|
||||
XUserRoles.RESPONSIBLE_MANAGER,
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// Reporter ...
|
||||
result.Add(XPolicies.Reporter,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled Reporter ...
|
||||
result.Add(XPolicies.EnabledReporter,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// ActuaryAssistant ...
|
||||
#region Actuary Assistant Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.ACTUARY_ASSISTANT,
|
||||
XUserRoles.ACTUARY,
|
||||
XUserRoles.CHIEF_CLERK_ASSISTANT,
|
||||
XUserRoles.CHIEF_CLERK,
|
||||
XUserRoles.JOURNALIST,
|
||||
XUserRoles.RESPONSIBLE_MANAGER,
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// ActuaryAssistant ...
|
||||
result.Add(XPolicies.ActuaryAssistant,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled ActuaryAssistant ...
|
||||
result.Add(XPolicies.EnabledActuaryAssistant,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// Actuary ...
|
||||
#region Actuary Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.ACTUARY,
|
||||
XUserRoles.CHIEF_CLERK_ASSISTANT,
|
||||
XUserRoles.CHIEF_CLERK,
|
||||
XUserRoles.JOURNALIST,
|
||||
XUserRoles.RESPONSIBLE_MANAGER,
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// Actuary ...
|
||||
result.Add(XPolicies.Actuary,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled Actuary ...
|
||||
result.Add(XPolicies.EnabledActuary,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// ChiefClerkAssistant ...
|
||||
#region Chief Clerk Assistant Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.CHIEF_CLERK_ASSISTANT,
|
||||
XUserRoles.CHIEF_CLERK,
|
||||
XUserRoles.JOURNALIST,
|
||||
XUserRoles.RESPONSIBLE_MANAGER,
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// ChiefClerkAssistant ...
|
||||
result.Add(XPolicies.ChiefClerkAssistant,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled ChiefClerkAssistant ...
|
||||
result.Add(XPolicies.EnabledChiefClerkAssistant,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// ChiefClerk ...
|
||||
#region Chief Clerk Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.CHIEF_CLERK,
|
||||
XUserRoles.JOURNALIST,
|
||||
XUserRoles.RESPONSIBLE_MANAGER,
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// ChiefClerk ...
|
||||
result.Add(XPolicies.ChiefClerk,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled ChiefClerk ...
|
||||
result.Add(XPolicies.EnabledChiefClerk,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// Journalist ...
|
||||
#region Journalist Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.JOURNALIST,
|
||||
XUserRoles.RESPONSIBLE_MANAGER,
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// Journalist ...
|
||||
result.Add(XPolicies.Journalist,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled Journalist ...
|
||||
result.Add(XPolicies.EnabledJournalist,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// ResponsibleManager ...
|
||||
#region Responsible Manager Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.RESPONSIBLE_MANAGER,
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// ResponsibleManager ...
|
||||
result.Add(XPolicies.ResponsibleManager,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled ResponsibleManager ...
|
||||
result.Add(XPolicies.EnabledResponsibleManager,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
|
||||
//
|
||||
// Admin ...
|
||||
#region Admin Related Policies ...
|
||||
//
|
||||
roleRequirements = new RequiredRolesRequirement(
|
||||
XUserRoles.ADMIN
|
||||
);
|
||||
|
||||
//
|
||||
// Admin Policy ...
|
||||
result.Add(XPolicies.Admin,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled Admin Policy ...
|
||||
result.Add(XPolicies.EnabledAdmin,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(roleRequirements)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
//
|
||||
// Complex Policies ...
|
||||
#region AdminOrAgent Related Policies ...
|
||||
//
|
||||
// Admin Or Agent Policy ...
|
||||
result.Add(XPolicies.AdminOrAgent,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(new RequiredRolesRequirement(
|
||||
XUserRoles.ADMIN,
|
||||
XUserRoles.AGENT
|
||||
))
|
||||
.Build()
|
||||
);
|
||||
|
||||
//
|
||||
// Enabled Admin Or Agent Policy ...
|
||||
result.Add(XPolicies.EnabledAdminOrAgent,
|
||||
new AuthorizationPolicyBuilder()
|
||||
.RequireAuthenticatedUser()
|
||||
.AddRequirements(new RequiredRolesRequirement(
|
||||
XUserRoles.ADMIN,
|
||||
XUserRoles.AGENT
|
||||
))
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsBanned,
|
||||
false.ToString(),
|
||||
false.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.RequireClaim(
|
||||
XCustomClaims.IsEnabled,
|
||||
true.ToString(),
|
||||
true.ToString()
|
||||
.ToNormalString()
|
||||
)
|
||||
.Build()
|
||||
);
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user