Initial ...
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
bin
|
||||||
|
obj
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using xCommons.Extensions;
|
||||||
|
using xIdentityModels.Models;
|
||||||
|
|
||||||
|
namespace xIdentityHelper.Extensions
|
||||||
|
{
|
||||||
|
public static class XIdentityHelperExtensions
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Check User Claims ia Admin Role or not ...
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="source"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static bool IsAdmin(this XUserClaimsInfoDto source)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
var result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (source.IsNull() ||
|
||||||
|
source.Roles.IsNull() ||
|
||||||
|
!source.Roles.HasChild())
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
result = source.Roles.Contains(XUserRoles.ADMIN);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Check Actor is Valid for UserSelectByParam or not ...
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="source"></param>
|
||||||
|
/// <param name="userSelectByParam"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static bool IsValidActor(this XUserClaimsInfoDto source, string userSelectByParam)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
var result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
if (source.IsNull() ||
|
||||||
|
userSelectByParam.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isAdmin = source.IsAdmin();
|
||||||
|
result = isAdmin ||
|
||||||
|
userSelectByParam == source.Email ||
|
||||||
|
userSelectByParam == source.UserId ||
|
||||||
|
userSelectByParam == source.UserName ||
|
||||||
|
userSelectByParam == source.PhoneNumber;
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,191 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using xCommons.Extensions;
|
||||||
|
using xExceptions.Constants;
|
||||||
|
|
||||||
|
namespace xIdentityHelper.Extensions
|
||||||
|
{
|
||||||
|
public static class XUserRoleExtensions
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Converts an String to XUserRole ...
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="role"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static XUserRole ToXUserRole(this string role)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
var result = XUserRole.User;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Validate ...
|
||||||
|
if (role.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
XException.InvalidArgs.Throw();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
var roles = new List<string>
|
||||||
|
{
|
||||||
|
role
|
||||||
|
};
|
||||||
|
result = roles.GetTopRole();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieve User Top Role based on Role Lists ...
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="roles"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static XUserRole GetTopRole(this IEnumerable<string> roles)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Validate ...
|
||||||
|
if (roles.IsNull() || !roles.HasChild())
|
||||||
|
{
|
||||||
|
XException.InvalidArgs.Throw();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Normalize Roles ...
|
||||||
|
roles = roles.Select(r => r.ToNormalString());
|
||||||
|
|
||||||
|
//
|
||||||
|
var result = XUserRole.User;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Admin ...
|
||||||
|
if (roles.Contains(XUserRole.Admin.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.Admin;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// ResponsibleManager ...
|
||||||
|
else if (roles.Contains(XUserRole.ResponsibleManager.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.ResponsibleManager;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Journalist ...
|
||||||
|
else if (roles.Contains(XUserRole.Journalist.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.Journalist;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// ChiefClerk ...
|
||||||
|
else if (roles.Contains(XUserRole.ChiefClerk.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.ChiefClerk;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// ChiefClerkAssistant ...
|
||||||
|
else if (roles.Contains(XUserRole.ChiefClerkAssistant.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.ChiefClerkAssistant;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Actuary ...
|
||||||
|
else if (roles.Contains(XUserRole.Actuary.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.Actuary;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// ActuaryAssistant ...
|
||||||
|
else if (roles.Contains(XUserRole.ActuaryAssistant.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.ActuaryAssistant;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Reporter ...
|
||||||
|
else if (roles.Contains(XUserRole.Reporter.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.Reporter;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// ReporterAssistant ...
|
||||||
|
else if (roles.Contains(XUserRole.ReporterAssistant.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.ReporterAssistant;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// Agent ...
|
||||||
|
else if (roles.Contains(XUserRole.Agent.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.Agent;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// User ...
|
||||||
|
else if (roles.Contains(XUserRole.User.GetStringValue().ToNormalString()))
|
||||||
|
{
|
||||||
|
result = XUserRole.User;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
XException.InvalidData.Throw();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Check User Roles has Specified Permissions or not ...
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="roles"></param>
|
||||||
|
/// <param name="role"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static bool HasRolePermissions(this IEnumerable<string> roles, XUserRole role)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Validate ...
|
||||||
|
var result =
|
||||||
|
!roles.IsNull() &&
|
||||||
|
roles.HasChild();
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//
|
||||||
|
var topRole = roles.GetTopRole();
|
||||||
|
|
||||||
|
//
|
||||||
|
result = (int)topRole >= (int)role;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
public static bool HasRolePermissions(this IEnumerable<string> roles, string role)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Validate ...
|
||||||
|
var result =
|
||||||
|
!roles.IsNull() &&
|
||||||
|
roles.HasChild() &&
|
||||||
|
!role.IsNullOrEmpty();
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
var roleEnum = role.ToXUserRole();
|
||||||
|
result = roles.HasRolePermissions(roleEnum);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# xSaherelmAI.xIdentityHelper
|
||||||
|
|
||||||
|
this module provide all Authorization Constants which used in xSaherElm AI project.
|
||||||
|
|
||||||
|
## Maintainer
|
||||||
|
|
||||||
|
Hadi Khazaee asl
|
||||||
|
|
||||||
|
[https://www.saherelm.ir](https://www.saherelm.ir)
|
||||||
|
|
||||||
|
[hadi_khazaee_asl@yahoo.com](mailto:hadi_khazaee_asl@yahoo.com)
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using xExceptions.Attributes;
|
||||||
|
|
||||||
|
namespace xIdentityHelper {
|
||||||
|
public static class XApiScopeHelper {
|
||||||
|
public partial struct XApiScopes {
|
||||||
|
public const string Read = "XAPI.read";
|
||||||
|
public const string Write = "XAPI.write";
|
||||||
|
public const string Admin = "XAPI.admin";
|
||||||
|
public const string Manage = "manage";
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum XApiScope {
|
||||||
|
[StringValue ("XAPI.read")]
|
||||||
|
Read,
|
||||||
|
|
||||||
|
[StringValue ("XAPI.write")]
|
||||||
|
Write,
|
||||||
|
|
||||||
|
[StringValue ("XAPI.admin")]
|
||||||
|
Admin,
|
||||||
|
|
||||||
|
[StringValue ("manage")]
|
||||||
|
Manage,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
namespace xIdentityHelper
|
||||||
|
{
|
||||||
|
public partial struct XPolicies
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Scopes ...
|
||||||
|
public const string ReadAccess = "readScopePolicy";
|
||||||
|
public const string WriteAccess = "writeScopePolicy";
|
||||||
|
public const string AdminAccess = "adminScopePolicy";
|
||||||
|
public const string ManageAccess = "manageScopePolicy";
|
||||||
|
//
|
||||||
|
// Admin ...
|
||||||
|
public const string Admin = "adminPolicy";
|
||||||
|
public const string EnabledAdmin = "enabledAdminPolicy";
|
||||||
|
//
|
||||||
|
// Responsible Manager ...
|
||||||
|
public const string ResponsibleManager = "responsibleManagerPolicy";
|
||||||
|
public const string EnabledResponsibleManager = "enabledResponsibleManagerPolicy";
|
||||||
|
//
|
||||||
|
// Journalist ...
|
||||||
|
public const string Journalist = "journalistPolicy";
|
||||||
|
public const string EnabledJournalist = "enabledJournalistPolicy";
|
||||||
|
//
|
||||||
|
// Chief Clerk ...
|
||||||
|
public const string ChiefClerk = "chiefClerkPolicy";
|
||||||
|
public const string EnabledChiefClerk = "enabledChiefClerkPolicy";
|
||||||
|
//
|
||||||
|
// Chief Clerk Assistant ...
|
||||||
|
public const string ChiefClerkAssistant = "chiefClerkAssistantPolicy";
|
||||||
|
public const string EnabledChiefClerkAssistant = "enabledChiefClerkAssistantPolicy";
|
||||||
|
//
|
||||||
|
// Actuary ...
|
||||||
|
public const string Actuary = "actuaryPolicy";
|
||||||
|
public const string EnabledActuary = "enabledActuaryPolicy";
|
||||||
|
//
|
||||||
|
// Actuary Assistant ...
|
||||||
|
public const string ActuaryAssistant = "actuaryAssistantPolicy";
|
||||||
|
public const string EnabledActuaryAssistant = "enabledActuaryAssistantPolicy";
|
||||||
|
//
|
||||||
|
// Reporter ...
|
||||||
|
public const string Reporter = "reporterPolicy";
|
||||||
|
public const string EnabledReporter = "enabledReporterPolicy";
|
||||||
|
//
|
||||||
|
// Reporter Assistant ...
|
||||||
|
public const string ReporterAssistant = "reporterAssistantPolicy";
|
||||||
|
public const string EnabledReporterAssistant = "enabledReporterAssistantPolicy";
|
||||||
|
//
|
||||||
|
// Agent ...
|
||||||
|
public const string Agent = "agentPolicy";
|
||||||
|
public const string EnabledAgent = "enabledAgentPolicy";
|
||||||
|
//
|
||||||
|
// User ...
|
||||||
|
public const string User = "userPolicy";
|
||||||
|
public const string EnabledUser = "enabledUserPolicy";
|
||||||
|
//
|
||||||
|
// Complex Policies ...
|
||||||
|
public const string AdminOrAgent = "adminOrAgentPolicy";
|
||||||
|
public const string EnabledAdminOrAgent = "enabledAdminOrAgentPolicy";
|
||||||
|
}
|
||||||
|
}
|
||||||
+157
@@ -0,0 +1,157 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using xExceptions.Attributes;
|
||||||
|
|
||||||
|
namespace xIdentityHelper
|
||||||
|
{
|
||||||
|
public partial struct XUserRoles
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Must Top Role of System ...
|
||||||
|
/// </summary>
|
||||||
|
public const string ADMIN = "admin";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// مدیر مسئول
|
||||||
|
/// </summary>
|
||||||
|
public const string RESPONSIBLE_MANAGER = "responsible_manager";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// روزنامه نگار
|
||||||
|
/// </summary>
|
||||||
|
public const string JOURNALIST = "journalist";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// سر دبیر
|
||||||
|
/// </summary>
|
||||||
|
public const string CHIEF_CLERK = "chief_clerk";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دستیار سرد بیر
|
||||||
|
/// </summary>
|
||||||
|
public const string CHIEF_CLERK_ASSISTANT = "chief_clerk_assistant";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دبیر
|
||||||
|
/// </summary>
|
||||||
|
public const string ACTUARY = "actuary";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دستیار دبیر
|
||||||
|
/// </summary>
|
||||||
|
public const string ACTUARY_ASSISTANT = "actuary_assistant";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// خبرنگار
|
||||||
|
/// </summary>
|
||||||
|
public const string REPORTER = "reporter";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دستیار خبرنگار
|
||||||
|
/// </summary>
|
||||||
|
public const string REPORTER_ASSISTANT = "reporter_assistant";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دستیار
|
||||||
|
/// </summary>
|
||||||
|
public const string AGENT = "agent";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// کاربر
|
||||||
|
/// </summary>
|
||||||
|
public const string USER = "user";
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum XUserRole
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Must Top Role of System ...
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("admin")]
|
||||||
|
Admin = 10,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// مدیر مسئول
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("responsible_manager")]
|
||||||
|
ResponsibleManager = 9,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// روزنامه نگار
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("journalist")]
|
||||||
|
Journalist = 8,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// سر دبیر
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("chief_clerk")]
|
||||||
|
ChiefClerk = 7,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دستیار سرد بیر
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("chief_clerk_assistant")]
|
||||||
|
ChiefClerkAssistant = 6,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دبیر
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("actuary")]
|
||||||
|
Actuary = 5,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دستیار دبیر
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("actuary_assistant")]
|
||||||
|
ActuaryAssistant = 4,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// خبرنگار
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("reporter")]
|
||||||
|
Reporter = 3,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دستیار خبرنگار
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("reporter_assistant")]
|
||||||
|
ReporterAssistant = 2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دستیار
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("agent")]
|
||||||
|
Agent = 1,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// کاربر
|
||||||
|
/// </summary>
|
||||||
|
[StringValue("user")]
|
||||||
|
User = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class XUserRoleHelper
|
||||||
|
{
|
||||||
|
public static List<string> GetAllRoles()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
var result = new List<string>
|
||||||
|
{
|
||||||
|
XUserRoles.ADMIN,
|
||||||
|
XUserRoles.RESPONSIBLE_MANAGER,
|
||||||
|
XUserRoles.JOURNALIST,
|
||||||
|
XUserRoles.CHIEF_CLERK,
|
||||||
|
XUserRoles.CHIEF_CLERK_ASSISTANT,
|
||||||
|
XUserRoles.ACTUARY,
|
||||||
|
XUserRoles.ACTUARY_ASSISTANT,
|
||||||
|
XUserRoles.REPORTER,
|
||||||
|
XUserRoles.REPORTER_ASSISTANT,
|
||||||
|
XUserRoles.AGENT,
|
||||||
|
XUserRoles.USER
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<packageSources>
|
||||||
|
<add key="nuget" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
|
||||||
|
<add key="liget" value="https://nuget.saherelmhub.ir/v3/index.json" protocolVersion="3" />
|
||||||
|
</packageSources>
|
||||||
|
</configuration>
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
<!-- Runtime Definitions -->
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
|
<PackageId>xSaherelmAI.xIdentityHelper</PackageId>
|
||||||
|
<Version>1.0.0</Version>
|
||||||
|
<Authors>Hadi Khazaee Asl</Authors>
|
||||||
|
<Company>SaherElm IT Center</Company>
|
||||||
|
<Description>
|
||||||
|
this module provide all Authorization Constants which used in xSaherElm AI project.
|
||||||
|
</Description>
|
||||||
|
|
||||||
|
<!-- Icon Definition -->
|
||||||
|
<PackageIcon>icon.png</PackageIcon>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<!-- Icon Handling -->
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="../../Documents/Resources/Images/favicon.png" Link="icon.png" Pack="true"
|
||||||
|
PackagePath="\icon.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<!-- Local Dependencies -->
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="xDashboard.xIdentityService" Version="1.0.0" />
|
||||||
|
<!-- <ProjectReference Include="../xIdentityService/xIdentityService.csproj" /> -->
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
Reference in New Issue
Block a user