first commit

This commit is contained in:
2025-02-26 23:42:19 +01:00
commit 777ea98be1
283 changed files with 88266 additions and 0 deletions
@@ -0,0 +1,37 @@
using System.Net.Http.Headers;
namespace OpenWarehouse.auth.lib;
public class AuthTokenHandler : DelegatingHandler
{
private string _token;
public AuthTokenHandler(string token)
{
_token = token;
InnerHandler = new HttpClientHandler();
}
public void UpdateToken(string newToken)
{
_token = newToken;
}
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (!string.IsNullOrEmpty(_token))
{
if (_token.Contains(" "))
{
var tokenSplit = _token.Split(" ");
request.Headers.Authorization = new AuthenticationHeaderValue(tokenSplit[0], tokenSplit[1]);
}
else
{
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _token);
}
}
return await base.SendAsync(request, cancellationToken);
}
}
@@ -0,0 +1,12 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class AccountDetailRespond
{
public string? Id { get; set; }
public string? DialCode { get; set; }
public string? Email { get; set; }
public string? UserName { get; set; }
public string? Phone { get; set; }
public Dictionary<string, string> Problems { get; set; } = new();
}
@@ -0,0 +1,8 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class AccountListsRequest
{
public int Page { get; set; }
public int PageSize { get; set; }
}
@@ -0,0 +1,15 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class AccountListsResponse : AccountListsRequest
{
private List<AccountDetailRespond> _accountDetailList = new();
public bool NextPageExist { get; set; }
public int LastPageNum { get; set; }
public List<AccountDetailRespond> AccountsDetail
{
get => _accountDetailList;
set => _accountDetailList = value;
}
}
@@ -0,0 +1,26 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class AddClaimsToUserModel
{
private Dictionary<string, string> _newClaims = new();
private string _userId = "";
private string _issuer = "";
public string UserId
{
get => _userId;
set => _userId = value;
}
public string Issuer
{
get => _issuer;
set => _issuer = value;
}
public Dictionary<string, string> NewClaims
{
get => _newClaims;
set => _newClaims = value;
}
}
@@ -0,0 +1,33 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class AddClaimsToUserReturnModel
{
private Dictionary<string, string> _allUserClaims = new Dictionary<string, string>();
private string? _error = "";
private bool _isSucess = false;
private string? _userId = "";
public string? UserId
{
get => _userId;
set => _userId = value;
}
public bool IsSucess
{
get => _isSucess;
set => _isSucess = value;
}
public string? Error
{
get => _error;
set => _error = value;
}
public Dictionary<string, string> AllUserClaims
{
get => _allUserClaims;
set => _allUserClaims = value;
}
}
@@ -0,0 +1,6 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class ChangeEmailRequest
{
public string? NewEmail { get; set; }
}
@@ -0,0 +1,9 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class ChangeEmailRespond : ChangeEmailRequest
{
public string? OldEmail { get; set; }
public bool ValSuccess { get; set; } = false;
public bool UpdateSuccess { get; set; } = false;
public Dictionary<string, string> Problems { get; set; } = new();
}
@@ -0,0 +1,9 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class ChangePassword
{
public string? Password { get; set; }
public string? NewPassword1 { get; set; }
public string? NewPassword2 { get; set; }
public bool LogOutAllSession { get; set; }
}
@@ -0,0 +1,8 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class ChangePasswordReturn
{
public bool IsSuccess { get; set; }
public string? Mess { get; set; }
public int LockedTokenCount { get; set; }
}
@@ -0,0 +1,8 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class ChangePhoneNumberRequest
{
public string? Prefix { get; set; }
public string? Number { get; set; }
}
@@ -0,0 +1,13 @@
using System.Reflection;
namespace OpenWarehouse.auth.lib.Model.Account;
public class ChangePhoneNumberRespond : ChangePhoneNumberRequest
{
public string? OldPrefix { get; set; }
public string? OldPhone { get; set; }
public bool ValSuccess { get; set; } = false;
public bool UpdateSuccess { get; set; } = false;
public Dictionary<string, string> Problems { get; set; } = new();
}
@@ -0,0 +1,11 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class CreateUserModel()
{
public string? Username { get; set; }
public string? Password { get; set; }
public string? Email { get; set; }
public string? Phone { get; set; }
public string? Dialcode { get; set; }
public List<string>? Roles { get; set; }
}
@@ -0,0 +1,24 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class CreateUserModelReturn() : CreateUserModel()
{
public CreateUserModelReturn(string? returnMess, string? newUserId, bool isCreated, List<RoleStatus>? roleStatusList) : this()
{
ReturnMess = returnMess;
NewUserId = newUserId;
IsCreated = isCreated;
Roles = roleStatusList;
}
public string? ReturnMess { get; set; }
public string? NewUserId { get; set; }
public bool IsCreated { get; set; }
public new List<RoleStatus>? Roles { get; set; }
public class RoleStatus
{
public bool Exist { get; set; }
public bool Added { get; set; }
public string? Name { get; set; }
public string? Mess { get; set; }
}
}
@@ -0,0 +1,6 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class DeactiveTokenModel
{
public string? Token { get; set; }
}
@@ -0,0 +1,6 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class DeleteRoleModel
{
public string? RoleIdentify { get; set; }
}
@@ -0,0 +1,7 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class DeleteUserRequestModel
{
public string? UserId { get; set; }
}
@@ -0,0 +1,9 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class DeleteUserReturnModel : DeleteUserRequestModel
{
public string? OperationMessage { get; set; }
public bool IsOperationSuccess { get; set; }
public int DedeltedTokenCount { get; set; }
}
@@ -0,0 +1,10 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class EditAccountRequest
{
public string? UserId { get; set; }
public string? NewUserName { get; set; }
public string? NewEmail { get; set; }
public string? NewDialCode { get; set; }
public string? NewPhone { get; set; }
}
@@ -0,0 +1,19 @@
using System.ComponentModel;
namespace OpenWarehouse.auth.lib.Model.Account;
public class EditAccountRespond : EditAccountRequest
{
[DefaultValue(false)] public bool UserNameEdited { get; set; } = false;
[DefaultValue(false)]
public bool EmailEdited { get; set; } = false;
[DefaultValue(false)]
public bool PhoneEdited { get; set; } = false;
[DefaultValue(false)]
public bool Success { get; set; } = false;
public string? Message { get; set; }
}
@@ -0,0 +1,18 @@
namespace OpenWarehouse.auth.lib.Model.Account;
public class LoginModel
{
public LoginModel()
{
IsLogged = false;
}
public string? Login { set; get; }
public string? Email { get; set; }
public string? Token { set; get; }
public long Exp { get; set; } = 0;
public string? Message { set; get; }
public string? AccountProblem { set; get; }
public bool IsLogged { get; set; }
public bool RequiresTwoFactor { get; set; } = false;
}
@@ -0,0 +1,12 @@
namespace OpenWarehouse.auth.lib.Model.Auth;
public class LogOutModel
{
public LogOutModel(bool success = false, string? mess = null)
{
LogOutSuccess = success;
Mess = mess;
}
public bool LogOutSuccess { get; set; }
public string? Mess { get; set; }
}
@@ -0,0 +1,15 @@
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace OpenWarehouse.auth.lib.Model.Auth;
public class LoginRequestModel
{
[Display(Name = "Username")]
[Required(ErrorMessage = "Username is required")]
public string? Login { get; set; }
[Display(Name = "Password")]
[Required(ErrorMessage = "Password is required")]
public string? Pass { get; set; }
}
@@ -0,0 +1,10 @@
namespace OpenWarehouse.auth.lib.Model.Auth;
public class RegenerateTokenModel()
{
public RegenerateTokenModel(string token) : this()
{
this.Token = token;
}
public string? Token { get; set; }
}
@@ -0,0 +1,12 @@
namespace OpenWarehouse.auth.lib.Model.Auth;
public class RegeneratedTokenModel() : RegenerateTokenModel()
{
public RegeneratedTokenModel(string Token, string mess = "") : this()
{
this.Token = Token;
this.Mess = mess;
}
public string? Mess { get; set; }
}
@@ -0,0 +1,10 @@
namespace OpenWarehouse.auth.lib.Model.Auth;
public class RegisterModel
{
public string? RegisterToken { get; set; }
public string? Username { get; set; }
public string? Email { get; set; }
public string? Password { get; set; }
public string[]? Roles { get; set; }
}
@@ -0,0 +1,12 @@
namespace OpenWarehouse.auth.lib.Model.Auth;
public class RegisterReturnModel
{
public bool IsCreated { get; set; }
public string? AuthToken { get; set; }
public string? ProblemWithUsername { get; set; }
public string? ProblemWitbEmail { get; set; }
public string? ProblemWithPassword { get; set; }
public string? ProblemWithToken { get; set; }
public string? OtherWithOtherProblem { get; set; }
}
@@ -0,0 +1,6 @@
namespace OpenWarehouse.auth.lib.Model.Auth;
public class TokenAskIfIsLockModel
{
public string? Token { get; set; }
}
@@ -0,0 +1,7 @@
namespace OpenWarehouse.auth.lib.Model;
public class ErrorModel
{
public string? Message { get; set; }
public int StatusCode { get; set; }
}
+20
View File
@@ -0,0 +1,20 @@
namespace OpenWarehouse.auth.lib.Model;
public class OkModel()
{
public string? Message { get; set; }
public bool IsSuccess { get; set; }
public object? Value { get; set; }
public OkModel(string message, bool isSuccess = true, object? value = null) : this()
{
IsSuccess = isSuccess;
Message = message;
Value = value;
}
}
@@ -0,0 +1,6 @@
namespace OpenWarehouse.auth.lib.Model.Privilage;
public class CreatePrivilageModel
{
public string? Privilage { get; set; }
}
@@ -0,0 +1,12 @@
using System.ComponentModel.DataAnnotations;
using NJsonSchema.Annotations;
namespace OpenWarehouse.auth.lib.Model.Role;
public class AddRoleToUserModel
{
[NotNull, MinLength(1), MaxLength(40)]
public string? UserIdentify { get; set; }
[NotNull, MinLength(1), MaxLength(40)]
public string? RoleIdentify { get; set; }
}
@@ -0,0 +1,8 @@
namespace OpenWarehouse.auth.lib.Model.Role;
public class CreateRoleModel
{
public string? Name { get; set; }
public List<string>? Privilage { get; set; }
public bool ForcePrivilage { get; set; }
}
@@ -0,0 +1,15 @@
using System.ComponentModel;
namespace OpenWarehouse.auth.lib.Model.Role;
public class EditRoleModel
{
public string? RoleIdentify { get; set; }
[DefaultValue(false)]
public bool ForceAddedPrivilage { get; set; } = false;
public List<string>? AddPrivilage { get; set; }
public List<string>? DeletePrivilage { get; set; }
public string? NewName { get; set; }
}
@@ -0,0 +1,15 @@
namespace OpenWarehouse.auth.lib.Model.Role;
public class RoleListModel
{
public RoleListModel()
{
Roles = new List<RoleModel>();
}
public RoleListModel(List<RoleModel>? roles) :this()
{
Roles = roles;
}
public List<RoleModel>? Roles { get; set; }
}
@@ -0,0 +1,22 @@
using System.ComponentModel;
namespace OpenWarehouse.auth.lib.Model.Role;
public class RoleModel
{
public RoleModel()
{
Privilage = new List<string>();
}
public RoleModel(bool isGlobalAdmin, string? roleName, List<string>? privilage) : this()
{
IsGlobalAdmin = isGlobalAdmin;
RoleName = roleName;
Privilage = privilage;
}
public string? RoleName { get; set; }
[DefaultValue(false)]
public bool IsGlobalAdmin { get; set; }
public List<string>? Privilage { get; set; }
}
@@ -0,0 +1,12 @@
namespace OpenWarehouse.auth.lib.Model.Role;
public class UserRoleModel
{
public UserRoleModel()
{
Roles = new List<RoleModel>();
}
public string? UserId { get; set; }
public string? Username { get; set; }
public List<RoleModel> Roles { get; set; }
}
@@ -0,0 +1,6 @@
namespace OpenWarehouse.auth.lib.Model.Role;
public class UserRoleReqestModel
{
public string? UserIdentify { get; set; }
}
@@ -0,0 +1,12 @@
namespace OpenWarehouse.auth.lib.Model.Service;
public class CreateServicePrivilageResult
{
public CreateServicePrivilageResult(string? privilage, bool? isCreated)
{
Privilage = privilage;
IsCreated = isCreated;
}
public string? Privilage { get; protected set; }
public bool? IsCreated { get; protected set; }
}
@@ -0,0 +1,12 @@
namespace OpenWarehouse.auth.lib.Model.Service;
public class CreateServiceRoleResult
{
public CreateServiceRoleResult(bool? isSuccessed, Dictionary<string, string>? errors)
{
IsSuccessed = isSuccessed ?? false;
Errors = errors;
}
public bool IsSuccessed { get; protected set; }
public Dictionary<string, string>? Errors { get; set; }
}
@@ -0,0 +1,11 @@
using OpenWarehouse.auth.lib.Model.Role;
namespace OpenWarehouse.auth.lib.Model.Service;
public class CreateServiceTokenModel
{
public string? ServiceName { get; set; }
public List<string>? ServicePrivilages { get; set; }
public List<RoleModel>? ServiceRoles { get; set; }
public string? Issuer { get; set; }
}
@@ -0,0 +1,22 @@
namespace OpenWarehouse.auth.lib.Model.Service;
public class CreateServiceTokenReturnModel
{
public CreateServiceTokenReturnModel(string? serviceName = null, bool isSucess = false, bool userAlleradyExist = false)
{
ServiceName = serviceName;
IsSuccess = isSucess;
UserAllereadyExist = userAlleradyExist;
RoleResults = new List<CreateServiceRoleResult>();
PrivilageResults = new List<CreateServicePrivilageResult>();
}
public string? ServiceName { get; protected set; }
public string? ServiceUsername { get; set; }
public bool IsSuccess { get; set; }
public bool UserAllereadyExist { get; set; }
public string? ServiceToken { get; set; }
public List<CreateServicePrivilageResult> PrivilageResults { get; set; }
public List<CreateServiceRoleResult> RoleResults { get; set; }
}
@@ -0,0 +1,9 @@
namespace OpenWarehouse.auth.lib.Model.Service;
public class CreateServiceUserResult
{
public string? UserNAme { get; set; }
public string? EmergencyPassword { get; set; }
public List<string>? RoleList { get; set; }
public string? Errors { get; set; }
}
@@ -0,0 +1,7 @@
namespace OpenWarehouse.auth.lib.Model.Service;
public class PingModel
{
public string Message { get; set; } = "Pong";
public long Time { get; set; } = DateTime.UtcNow.ToBinary();
}
@@ -0,0 +1,8 @@
namespace OpenWarehouse.auth.lib.Model;
public class xUserAskingModel
{
public String? Service { get; set; }
public Dictionary<string, string>? Questions { get; set; }
}
@@ -0,0 +1,7 @@
namespace OpenWarehouse.auth.lib.Model;
public class UserPrivilageModel
{
public string? Username { get; set; }
public Dictionary<string, string>? Privilages { get; set; }
}
@@ -0,0 +1,11 @@
namespace OpenWarehouse.auth.lib.Model.WellKnow;
public class Jwk
{
public string Kty { get; set; }
public string E { get; set; }
public string N { get; set; }
public string Use { get; set; }
public string Alg { get; set; }
public string Kid { get; set; }
}
@@ -0,0 +1,6 @@
namespace OpenWarehouse.auth.lib.Model.WellKnow;
public class JwksResponse
{
public Jwk[] Keys { get; set; }
}
@@ -0,0 +1,12 @@
namespace OpenWarehouse.auth.lib.Model.WellKnow;
public class OpenIdConfiguration
{
public string Issuer { get; set; }
public string AuthorizationEndpoint { get; set; }
public string TokenEndpoint { get; set; }
public string JwksUri { get; set; }
public string[] ResponseTypesSupported { get; set; }
public string[] SubjectTypesSupported { get; set; }
public string[] IdTokenSigningAlgValuesSupported { get; set; }
}
@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NSwag.Core" Version="14.1.0" />
</ItemGroup>
</Project>
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long