From 8af5e46c80f8f63bfe4cf193f0245ef31a8955f2 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte Date: Fri, 5 Jan 2024 16:17:01 +0100 Subject: [PATCH 1/9] upgrade to dotnet8 --- .github/workflows/stable-release.yml | 54 +++++------ .github/workflows/unstable-release.yml | 52 +++++------ Dockerfile | 10 +- EthernaSSO.sln | 7 ++ .../EthernaSSO.Domain.csproj | 6 +- .../Helpers/UsernameHelper.cs | 3 +- src/EthernaSSO.Domain/Models/ApiKey.cs | 6 +- src/EthernaSSO.Domain/Models/Role.cs | 6 +- src/EthernaSSO.Domain/Models/UserBase.cs | 15 +-- src/EthernaSSO.Domain/Models/UserWeb2.cs | 11 +-- src/EthernaSSO.Domain/Models/UserWeb3.cs | 3 +- .../EthernaSSO.Persistence.csproj | 2 +- .../Repositories/DomainRepository.cs | 9 +- src/EthernaSSO.Services/Domain/UserService.cs | 6 +- .../EthernaSSO.Services.csproj | 4 +- .../Tasks/ProcessAlphaPassRequestsTask.cs | 3 +- .../Pages/IdentityServer/Index.cshtml.cs | 5 - .../Pages/IdentityServer/RoleDelete.cshtml.cs | 6 +- .../Pages/IdentityServer/RoleUsers.cshtml.cs | 6 +- .../Pages/IdentityServer/Roles.cshtml.cs | 5 +- .../Admin/Pages/IdentityServer/User.cshtml.cs | 7 +- .../UserChangePassword.cshtml.cs | 3 +- .../Pages/IdentityServer/UserClaims.cshtml.cs | 6 +- .../IdentityServer/UserClaimsDelete.cshtml.cs | 18 ++-- .../Pages/IdentityServer/UserDelete.cshtml.cs | 3 +- .../Pages/IdentityServer/UserRoles.cshtml.cs | 6 +- .../IdentityServer/UserRolesDelete.cshtml.cs | 12 +-- .../Pages/IdentityServer/Users.cshtml.cs | 4 +- .../Areas/Admin/Pages/Index.cshtml.cs | 5 - .../Admin/Pages/Invitations/Index.cshtml.cs | 2 +- src/EthernaSSO/Areas/Api/ApiHostingStartup.cs | 3 +- .../Areas/Api/DtoModels/PrivateUserDto.cs | 3 +- .../Areas/Api/DtoModels/UserContactInfoDto.cs | 3 +- src/EthernaSSO/Areas/Api/DtoModels/UserDto.cs | 3 +- .../Account/Manage/ApiKeyDelete.cshtml.cs | 3 +- .../Manage/DownloadPersonalData.cshtml.cs | 2 +- .../Manage/EnableAuthenticator.cshtml.cs | 16 +--- .../Pages/Account/Manage/ManageNavPages.cs | 27 ++---- .../Manage/ShowRecoveryCodes.cshtml.cs | 2 +- .../Identity/Pages/Account/Register.cshtml.cs | 6 +- .../Pages/Account/Web3Login.cshtml.cs | 6 +- ...ideUnauthorizedExceptionFilterAttribute.cs | 3 +- .../SimpleExceptionFilterAttribute.cs | 3 +- .../DenyBannedAuthorizationHandler.cs | 3 +- .../Configs/Identity/CustomUserValidator.cs | 8 +- src/EthernaSSO/Configs/Identity/RoleStore.cs | 15 +-- src/EthernaSSO/Configs/Identity/UserStore.cs | 93 +++++++------------ .../Configs/IdentityServer/ApiKeyValidator.cs | 3 +- .../Configs/IdentityServer/IdServerConfig.cs | 3 +- .../Configs/Swagger/SwaggerDefaultValues.cs | 6 +- .../SystemStore/PersistedGrantRepository.cs | 9 +- .../SystemStore/SigningKeyRepository.cs | 3 +- .../Configs/SystemStore/XmlRepository.cs | 6 +- src/EthernaSSO/EthernaSSO.csproj | 12 +-- .../DataProtectionBuilderExtensions.cs | 3 +- src/EthernaSSO/Pages/Redirect.cshtml.cs | 3 +- src/EthernaSSO/Startup.cs | 10 +- .../EthernaSSO.Persistence.Tests.csproj | 10 +- .../Helpers/DbContextMockHelper.cs | 12 +-- .../SharedDbContextDeserializationTest.cs | 5 +- .../SsoDbContextDeserializationTest.cs | 23 ++--- 61 files changed, 227 insertions(+), 365 deletions(-) diff --git a/.github/workflows/stable-release.yml b/.github/workflows/stable-release.yml index 81c630e3..d7a1299a 100644 --- a/.github/workflows/stable-release.yml +++ b/.github/workflows/stable-release.yml @@ -10,34 +10,34 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 - - name: Docker meta - id: meta - uses: docker/metadata-action@v4 - with: - images: etherna/etherna-sso - tags: | - type=semver,pattern=v{{major}} - type=semver,pattern=v{{major}}.{{minor}} - type=semver,pattern=v{{version}} + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: etherna/etherna-sso + tags: | + type=semver,pattern=v{{major}} + type=semver,pattern=v{{major}}.{{minor}} + type=semver,pattern=v{{version}} - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} - - name: Build and push - uses: docker/build-push-action@v4 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/.github/workflows/unstable-release.yml b/.github/workflows/unstable-release.yml index 792a7324..e2d621e3 100644 --- a/.github/workflows/unstable-release.yml +++ b/.github/workflows/unstable-release.yml @@ -3,39 +3,39 @@ name: Unstable release on Docker Hub on: push: branches: - - dev + - dev jobs: build: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 - - name: Docker meta - id: meta - uses: docker/metadata-action@v4 - with: - images: etherna/etherna-sso - tags: | - type=ref,event=branch + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: etherna/etherna-sso + tags: | + type=ref,event=branch - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} - - name: Build and push - uses: docker/build-push-action@v4 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index aa8ef3d1..08fe8666 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,13 @@ -FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 -FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build -RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - -RUN apt-get install -y nodejs +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +RUN curl -SLO https://deb.nodesource.com/nsolid_setup_deb.sh +RUN chmod 500 nsolid_setup_deb.sh +RUN ./nsolid_setup_deb.sh 20 +RUN apt-get install nodejs -y WORKDIR /src COPY . . RUN dotnet restore "EthernaSSO.sln" diff --git a/EthernaSSO.sln b/EthernaSSO.sln index fc668e67..ab938eed 100644 --- a/EthernaSSO.sln +++ b/EthernaSSO.sln @@ -33,6 +33,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EthernaSSO.Persistence.Tests", "test\EthernaSSO.Persistence.Tests\EthernaSSO.Persistence.Tests.csproj", "{7928405E-1942-4B8A-AEFB-447EEEA092B7}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{E7F7EC20-07A3-43F2-ABCF-E3FCA0235CDB}" + ProjectSection(SolutionItems) = preProject + .github\workflows\stable-release.yml = .github\workflows\stable-release.yml + .github\workflows\unstable-release.yml = .github\workflows\unstable-release.yml + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -71,6 +77,7 @@ Global {AF83D80A-77BE-48C8-ABE3-D1373F20F2B0} = {5AE428C2-CD56-4E51-A229-3F4C137D9D83} {8EE2E2BE-2FB6-4E96-8F34-08F9CDACFCFE} = {BB9B2543-8741-4D95-AC15-35923C422E60} {7928405E-1942-4B8A-AEFB-447EEEA092B7} = {10DAD3ED-08F6-48B9-A298-60D0ABF3B2E2} + {E7F7EC20-07A3-43F2-ABCF-E3FCA0235CDB} = {1C01CDAC-366E-4F9B-8A52-25F7770FE92A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {6EB5F2B3-8912-4D50-BAB1-C3884E3BF3C0} diff --git a/src/EthernaSSO.Domain/EthernaSSO.Domain.csproj b/src/EthernaSSO.Domain/EthernaSSO.Domain.csproj index df675ca8..071cc2e7 100644 --- a/src/EthernaSSO.Domain/EthernaSSO.Domain.csproj +++ b/src/EthernaSSO.Domain/EthernaSSO.Domain.csproj @@ -1,7 +1,7 @@  - net7.0 + net8.0 Etherna.SSOServer.Domain Etherna Sagl @@ -13,11 +13,11 @@ - + - + diff --git a/src/EthernaSSO.Domain/Helpers/UsernameHelper.cs b/src/EthernaSSO.Domain/Helpers/UsernameHelper.cs index 9e1d09b7..33127ee5 100644 --- a/src/EthernaSSO.Domain/Helpers/UsernameHelper.cs +++ b/src/EthernaSSO.Domain/Helpers/UsernameHelper.cs @@ -31,8 +31,7 @@ public static bool IsValidUsername(string username) => public static string NormalizeUsername(string username) { - if (username is null) - throw new ArgumentNullException(nameof(username)); + ArgumentNullException.ThrowIfNull(username, nameof(username)); username = username.ToUpper(CultureInfo.InvariantCulture); //to upper case diff --git a/src/EthernaSSO.Domain/Models/ApiKey.cs b/src/EthernaSSO.Domain/Models/ApiKey.cs index 8dcc81d4..8b9d49a5 100644 --- a/src/EthernaSSO.Domain/Models/ApiKey.cs +++ b/src/EthernaSSO.Domain/Models/ApiKey.cs @@ -62,10 +62,8 @@ protected ApiKey() { } // Helpers. public static string GetPrettyPrintedPlainKey(string plainKey, UserBase owner) { - if (plainKey is null) - throw new ArgumentNullException(nameof(plainKey)); - if (owner is null) - throw new ArgumentNullException(nameof(owner)); + ArgumentNullException.ThrowIfNull(plainKey, nameof(plainKey)); + ArgumentNullException.ThrowIfNull(owner, nameof(owner)); return $"{owner.Id}.{plainKey}"; } diff --git a/src/EthernaSSO.Domain/Models/Role.cs b/src/EthernaSSO.Domain/Models/Role.cs index a9e86a00..6d3f1b79 100644 --- a/src/EthernaSSO.Domain/Models/Role.cs +++ b/src/EthernaSSO.Domain/Models/Role.cs @@ -40,8 +40,7 @@ protected Role() { } [PropertyAlterer(nameof(NormalizedName))] public virtual void SetName(string name) { - if (name is null) - throw new ArgumentNullException(nameof(name)); + ArgumentNullException.ThrowIfNull(name, nameof(name)); if (Name != name) { @@ -53,8 +52,7 @@ public virtual void SetName(string name) // Public static helpers. public static string NormalizeName(string name) { - if (name is null) - throw new ArgumentNullException(nameof(name)); + ArgumentNullException.ThrowIfNull(name, nameof(name)); name = name.ToUpper(CultureInfo.InvariantCulture); //to upper case diff --git a/src/EthernaSSO.Domain/Models/UserBase.cs b/src/EthernaSSO.Domain/Models/UserBase.cs index 3061e4df..c5fa1ab0 100644 --- a/src/EthernaSSO.Domain/Models/UserBase.cs +++ b/src/EthernaSSO.Domain/Models/UserBase.cs @@ -49,8 +49,7 @@ protected UserBase( bool invitedByAdmin, UserSharedInfo sharedInfo) { - if (sharedInfo is null) - throw new ArgumentNullException(nameof(sharedInfo)); + ArgumentNullException.ThrowIfNull(sharedInfo, nameof(sharedInfo)); SetUsername(username); InvitedBy = invitedBy; @@ -140,8 +139,7 @@ public virtual IEnumerable Roles [PropertyAlterer(nameof(Claims))] public virtual bool AddClaim(UserClaim claim) { - if (claim is null) - throw new ArgumentNullException(nameof(claim)); + ArgumentNullException.ThrowIfNull(claim, nameof(claim)); //keep default claims managed by model if (DomainManagedClaimNames.Contains(claim.Type)) @@ -179,8 +177,7 @@ public virtual void ConfirmPhoneNumber() [PropertyAlterer(nameof(Claims))] public virtual bool RemoveClaim(UserClaim claim) { - if (claim is null) - throw new ArgumentNullException(nameof(claim)); + ArgumentNullException.ThrowIfNull(claim, nameof(claim)); return RemoveClaim(claim.Type, claim.Value); } @@ -188,10 +185,8 @@ public virtual bool RemoveClaim(UserClaim claim) [PropertyAlterer(nameof(Claims))] public virtual bool RemoveClaim(string type, string value) { - if (type is null) - throw new ArgumentNullException(nameof(type)); - if (value is null) - throw new ArgumentNullException(nameof(value)); + ArgumentNullException.ThrowIfNull(type, nameof(type)); + ArgumentNullException.ThrowIfNull(value, nameof(value)); var removed = _customClaims.RemoveAll(c => c.Type == type && c.Value == value); diff --git a/src/EthernaSSO.Domain/Models/UserWeb2.cs b/src/EthernaSSO.Domain/Models/UserWeb2.cs index 377a77e7..b1b7872d 100644 --- a/src/EthernaSSO.Domain/Models/UserWeb2.cs +++ b/src/EthernaSSO.Domain/Models/UserWeb2.cs @@ -79,15 +79,8 @@ public virtual IEnumerable TwoFactorRecoveryCodes public virtual void IncrementAccessFailedCount() => AccessFailedCount++; [PropertyAlterer(nameof(TwoFactorRecoveryCodes))] - public virtual bool RedeemTwoFactorRecoveryCode(string code) - { - if (_twoFactorRecoveryCode.Contains(code)) - { - _twoFactorRecoveryCode.Remove(code); - return true; - } - return false; - } + public virtual bool RedeemTwoFactorRecoveryCode(string code) => + _twoFactorRecoveryCode.Remove(code); [PropertyAlterer(nameof(EtherLoginAddress))] public virtual bool RemoveEtherLoginAddress() diff --git a/src/EthernaSSO.Domain/Models/UserWeb3.cs b/src/EthernaSSO.Domain/Models/UserWeb3.cs index 06fb9711..142188b4 100644 --- a/src/EthernaSSO.Domain/Models/UserWeb3.cs +++ b/src/EthernaSSO.Domain/Models/UserWeb3.cs @@ -32,8 +32,7 @@ public UserWeb3( } internal UserWeb3(UserWeb2 web2User) { - if (web2User is null) - throw new ArgumentNullException(nameof(web2User)); + ArgumentNullException.ThrowIfNull(web2User, nameof(web2User)); if (web2User.EtherLoginAddress is null) throw new InvalidOperationException(); diff --git a/src/EthernaSSO.Persistence/EthernaSSO.Persistence.csproj b/src/EthernaSSO.Persistence/EthernaSSO.Persistence.csproj index 5da943e5..685ff442 100644 --- a/src/EthernaSSO.Persistence/EthernaSSO.Persistence.csproj +++ b/src/EthernaSSO.Persistence/EthernaSSO.Persistence.csproj @@ -1,7 +1,7 @@  - net7.0 + net8.0 Etherna.SSOServer.Persistence Etherna Sagl diff --git a/src/EthernaSSO.Persistence/Repositories/DomainRepository.cs b/src/EthernaSSO.Persistence/Repositories/DomainRepository.cs index b43cc3dc..36180f8b 100644 --- a/src/EthernaSSO.Persistence/Repositories/DomainRepository.cs +++ b/src/EthernaSSO.Persistence/Repositories/DomainRepository.cs @@ -43,8 +43,7 @@ public DomainRepository(RepositoryOptions options) // Methods. public override async Task CreateAsync(IEnumerable models, CancellationToken cancellationToken = default) { - if (models is null) - throw new ArgumentNullException(nameof(models)); + ArgumentNullException.ThrowIfNull(models, nameof(models)); // Create entity. await base.CreateAsync(models, cancellationToken); @@ -66,8 +65,7 @@ public override async Task CreateAsync(IEnumerable models, CancellationT public override async Task CreateAsync(TModel model, CancellationToken cancellationToken = default) { - if (model is null) - throw new ArgumentNullException(nameof(model)); + ArgumentNullException.ThrowIfNull(model, nameof(model)); // Create entity. await base.CreateAsync(model, cancellationToken); @@ -86,8 +84,7 @@ public override async Task CreateAsync(TModel model, CancellationToken cancellat public override async Task DeleteAsync(TModel model, CancellationToken cancellationToken = default) { - if (model is null) - throw new ArgumentNullException(nameof(model)); + ArgumentNullException.ThrowIfNull(model, nameof(model)); // Delete entity. await base.DeleteAsync(model, cancellationToken); diff --git a/src/EthernaSSO.Services/Domain/UserService.cs b/src/EthernaSSO.Services/Domain/UserService.cs index b1aa0874..c6ed05f3 100644 --- a/src/EthernaSSO.Services/Domain/UserService.cs +++ b/src/EthernaSSO.Services/Domain/UserService.cs @@ -65,8 +65,7 @@ public UserService( // Methods. public async Task DeleteAsync(UserBase user) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); await ssoDbContext.Users.DeleteAsync(user); await sharedDbContext.UsersInfo.DeleteAsync(user.SharedInfoId); @@ -82,8 +81,7 @@ public Task FindUserByAddressAsync(string etherAddress) public async Task GetSharedUserInfoAsync(UserBase user) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return await sharedDbContext.UsersInfo.FindOneAsync(user.SharedInfoId); } diff --git a/src/EthernaSSO.Services/EthernaSSO.Services.csproj b/src/EthernaSSO.Services/EthernaSSO.Services.csproj index e4c2052a..c65a6494 100644 --- a/src/EthernaSSO.Services/EthernaSSO.Services.csproj +++ b/src/EthernaSSO.Services/EthernaSSO.Services.csproj @@ -1,7 +1,7 @@  - net7.0 + net8.0 true Etherna.SSOServer.Services @@ -18,7 +18,7 @@ - + diff --git a/src/EthernaSSO.Services/Tasks/ProcessAlphaPassRequestsTask.cs b/src/EthernaSSO.Services/Tasks/ProcessAlphaPassRequestsTask.cs index 10586a4e..47eac623 100644 --- a/src/EthernaSSO.Services/Tasks/ProcessAlphaPassRequestsTask.cs +++ b/src/EthernaSSO.Services/Tasks/ProcessAlphaPassRequestsTask.cs @@ -53,8 +53,7 @@ public ProcessAlphaPassRequestsTask( IRazorViewRenderer razorViewRenderer, IServiceProvider serviceProvider) { - if (applicationSettings is null) - throw new ArgumentNullException(nameof(applicationSettings)); + ArgumentNullException.ThrowIfNull(applicationSettings, nameof(applicationSettings)); this.applicationSettings = applicationSettings.Value; this.dbContext = dbContext; diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml.cs index af2b3a70..5d974018 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml.cs @@ -12,11 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; namespace Etherna.SSOServer.Areas.Admin.Pages.IdentityServer diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml.cs index 747fd7c5..50f907de 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml.cs @@ -44,8 +44,7 @@ public RoleDeleteModel(ISsoDbContext context) // Methods. public async Task OnGetAsync(string id) { - if (id is null) - throw new ArgumentNullException(nameof(id)); + ArgumentNullException.ThrowIfNull(id, nameof(id)); Id = id; var role = await context.Roles.FindOneAsync(id); @@ -54,8 +53,7 @@ public async Task OnGetAsync(string id) public async Task OnPostDeleteAsync(string id) { - if (id is null) - throw new ArgumentNullException(nameof(id)); + ArgumentNullException.ThrowIfNull(id, nameof(id)); var role = await context.Roles.FindOneAsync(id); var usersWithRole = await context.Users.QueryElementsAsync(elements => diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml.cs index fef8c46c..a04563fa 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml.cs @@ -30,8 +30,7 @@ public class UserDto { public UserDto(UserBase user) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); Id = user.Id; Email = user.Email; @@ -72,8 +71,7 @@ public RoleUsersModel( // Methods. public async Task OnGetAsync(string id, int? p, string? q) { - if (id is null) - throw new ArgumentNullException(nameof(id)); + ArgumentNullException.ThrowIfNull(id, nameof(id)); CurrentPage = p ?? 0; Query = q ?? ""; diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml.cs index 49efa180..6ae92b68 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml.cs @@ -30,8 +30,7 @@ public class RoleDto { public RoleDto(Role role) { - if (role is null) - throw new ArgumentNullException(nameof(role)); + ArgumentNullException.ThrowIfNull(role, nameof(role)); Id = role.Id; Name = role.Name; @@ -66,7 +65,7 @@ public async Task OnGetAsync(int? p, string? q) Query = q ?? ""; var paginatedRoles = await context.Roles.QueryPaginatedElementsAsync(elements => - elements.Where(r => r.NormalizedName.Contains(Query.ToUpperInvariant())), + elements.Where(r => r.NormalizedName.Contains(Query, StringComparison.InvariantCultureIgnoreCase)), r => r.NormalizedName, CurrentPage, PageSize); diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml.cs index a277a330..638c9c8d 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml.cs @@ -17,7 +17,6 @@ using Etherna.SSOServer.Domain.Models; using Etherna.SSOServer.Domain.Models.UserAgg; using Etherna.SSOServer.Services.Domain; -using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using System; @@ -37,10 +36,8 @@ public class InputModel : IValidatableObject public InputModel() { } public InputModel(UserBase user, UserSharedInfo sharedInfo) { - if (user is null) - throw new ArgumentNullException(nameof(user)); - if (sharedInfo is null) - throw new ArgumentNullException(nameof(sharedInfo)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); + ArgumentNullException.ThrowIfNull(sharedInfo, nameof(sharedInfo)); Id = user.Id; Email = user.Email; diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml.cs index a25c00a1..4deb7432 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml.cs @@ -60,8 +60,7 @@ public UserChangePasswordModel( // Methods. public async Task OnGetAsync(string id) { - if (id is null) - throw new ArgumentNullException(nameof(id)); + ArgumentNullException.ThrowIfNull(id, nameof(id)); Id = id; var user = await context.Users.FindOneAsync(id); diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml.cs index 20622466..cf495179 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml.cs @@ -31,8 +31,7 @@ public class ClaimDto { public ClaimDto(UserClaim claim) { - if (claim is null) - throw new ArgumentNullException(nameof(claim)); + ArgumentNullException.ThrowIfNull(claim, nameof(claim)); Type = claim.Type; Value = claim.Value; @@ -73,8 +72,7 @@ public UserClaimsModel( // Methods. public async Task OnGetAsync(string id, int? p) { - if (id is null) - throw new ArgumentNullException(nameof(id)); + ArgumentNullException.ThrowIfNull(id, nameof(id)); await InitializeAsync(id, p ?? 0); } diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml.cs index 144f836f..8912bc3a 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml.cs @@ -41,12 +41,9 @@ public UserClaimsDeleteModel( // Methods. public async Task OnGetAsync(string claimType, string claimValue, string userId) { - if (claimType is null) - throw new ArgumentNullException(nameof(claimType)); - if (claimValue is null) - throw new ArgumentNullException(nameof(claimValue)); - if (userId is null) - throw new ArgumentNullException(nameof(userId)); + ArgumentNullException.ThrowIfNull(claimType, nameof(claimType)); + ArgumentNullException.ThrowIfNull(claimValue, nameof(claimValue)); + ArgumentNullException.ThrowIfNull(userId, nameof(userId)); var user = await context.Users.FindOneAsync(userId); @@ -58,12 +55,9 @@ public async Task OnGetAsync(string claimType, string claimValue, string userId) public async Task OnPostAsync(string claimType, string claimValue, string userId) { - if (claimType is null) - throw new ArgumentNullException(nameof(claimType)); - if (claimValue is null) - throw new ArgumentNullException(nameof(claimValue)); - if (userId is null) - throw new ArgumentNullException(nameof(userId)); + ArgumentNullException.ThrowIfNull(claimType, nameof(claimType)); + ArgumentNullException.ThrowIfNull(claimValue, nameof(claimValue)); + ArgumentNullException.ThrowIfNull(userId, nameof(userId)); var user = await context.Users.FindOneAsync(userId); user.RemoveClaim(claimType, claimValue); diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml.cs index 642feff0..f1ddc6fa 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml.cs @@ -43,8 +43,7 @@ public UserDeleteModel( // Methods. public async Task OnGetAsync(string id) { - if (id is null) - throw new ArgumentNullException(nameof(id)); + ArgumentNullException.ThrowIfNull(id, nameof(id)); Id = id; var user = await context.Users.FindOneAsync(id); diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml.cs index e64c0d83..c5a3aca3 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml.cs @@ -31,8 +31,7 @@ public class RoleDto { public RoleDto(Role role) { - if (role is null) - throw new ArgumentNullException(nameof(role)); + ArgumentNullException.ThrowIfNull(role, nameof(role)); Id = role.Id; Name = role.Name; @@ -67,8 +66,7 @@ public UserRolesModel( // Methods. public async Task OnGetAsync(string id, int? p) { - if (id is null) - throw new ArgumentNullException(nameof(id)); + ArgumentNullException.ThrowIfNull(id, nameof(id)); var roles = await context.Roles.QueryElementsAsync(elements => elements.ToListAsync()); diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml.cs index 60236df1..3497432a 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml.cs @@ -41,10 +41,8 @@ public UserRolesDeleteModel( // Methods. public async Task OnGetAsync(string roleId, string userId) { - if (roleId is null) - throw new ArgumentNullException(nameof(roleId)); - if (userId is null) - throw new ArgumentNullException(nameof(userId)); + ArgumentNullException.ThrowIfNull(roleId, nameof(roleId)); + ArgumentNullException.ThrowIfNull(userId, nameof(userId)); RoleId = roleId; var role = await context.Roles.FindOneAsync(roleId); @@ -57,10 +55,8 @@ public async Task OnGetAsync(string roleId, string userId) public async Task OnPostDeleteAsync(string roleId, string userId) { - if (roleId is null) - throw new ArgumentNullException(nameof(roleId)); - if (userId is null) - throw new ArgumentNullException(nameof(userId)); + ArgumentNullException.ThrowIfNull(roleId, nameof(roleId)); + ArgumentNullException.ThrowIfNull(userId, nameof(userId)); var role = await context.Roles.FindOneAsync(roleId); var user = await context.Users.FindOneAsync(userId); diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml.cs index e312ff0f..013c0c47 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml.cs @@ -15,7 +15,6 @@ using Etherna.SSOServer.Domain.Models; using Etherna.SSOServer.Services.Domain; using Microsoft.AspNetCore.Mvc.RazorPages; -using MongoDB.Driver.Linq; using System; using System.Collections.Generic; using System.Linq; @@ -30,8 +29,7 @@ public class UserDto { public UserDto(UserBase user) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); Id = user.Id; Email = user.Email; diff --git a/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml.cs index a8623b3b..5d1a543e 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml.cs @@ -12,11 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; namespace Etherna.SSOServer.Areas.Admin.Pages diff --git a/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml.cs index 01b0c371..5d8d6980 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml.cs @@ -198,7 +198,7 @@ private async Task GenerateInvitationsAsync(int quantity) private async Task InitializeAsync() { TotalAlive = await ssoDbContext.Invitations.QueryElementsAsync(invitations => - invitations.Where(i => i.EndLife == null || i.EndLife > System.DateTime.UtcNow) + invitations.Where(i => i.EndLife == null || i.EndLife > DateTime.UtcNow) .CountAsync()); } } diff --git a/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs b/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs index ae5bd45b..046a8817 100644 --- a/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs +++ b/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs @@ -27,8 +27,7 @@ public class ApiHostingStartup : IHostingStartup public void Configure(IWebHostBuilder builder) { - if (builder is null) - throw new System.ArgumentNullException(nameof(builder)); + ArgumentNullException.ThrowIfNull(builder, nameof(builder)); builder.ConfigureServices((context, services) => { diff --git a/src/EthernaSSO/Areas/Api/DtoModels/PrivateUserDto.cs b/src/EthernaSSO/Areas/Api/DtoModels/PrivateUserDto.cs index 980e9e36..b9187d25 100644 --- a/src/EthernaSSO/Areas/Api/DtoModels/PrivateUserDto.cs +++ b/src/EthernaSSO/Areas/Api/DtoModels/PrivateUserDto.cs @@ -23,8 +23,7 @@ public class PrivateUserDto // Constructor. public PrivateUserDto(UserBase user) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); Email = user.Email; EtherAddress = user.EtherAddress; diff --git a/src/EthernaSSO/Areas/Api/DtoModels/UserContactInfoDto.cs b/src/EthernaSSO/Areas/Api/DtoModels/UserContactInfoDto.cs index b24dce1b..6a980087 100644 --- a/src/EthernaSSO/Areas/Api/DtoModels/UserContactInfoDto.cs +++ b/src/EthernaSSO/Areas/Api/DtoModels/UserContactInfoDto.cs @@ -22,8 +22,7 @@ public class UserContactInfoDto // Constructor. public UserContactInfoDto(UserBase user) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); Email = user.Email; PhoneNumber = user.PhoneNumber; diff --git a/src/EthernaSSO/Areas/Api/DtoModels/UserDto.cs b/src/EthernaSSO/Areas/Api/DtoModels/UserDto.cs index 9738723b..9d3ab42b 100644 --- a/src/EthernaSSO/Areas/Api/DtoModels/UserDto.cs +++ b/src/EthernaSSO/Areas/Api/DtoModels/UserDto.cs @@ -23,8 +23,7 @@ public class UserDto // Constructor. public UserDto(UserBase user) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); EtherAddress = user.EtherAddress; EtherPreviousAddresses = user.EtherPreviousAddresses; diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml.cs index 65194da3..88cf20a0 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml.cs @@ -44,8 +44,7 @@ public ApiKeyDeleteModel( // Methods. public async Task OnGetAsync(string id) { - if (id is null) - throw new ArgumentNullException(nameof(id)); + ArgumentNullException.ThrowIfNull(id, nameof(id)); var apiKey = await ssoDbContext.ApiKeys.FindOneAsync(id); diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs index 9097d582..c211f3bb 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs @@ -57,7 +57,7 @@ public async Task OnPostAsync() foreach (var p in personalDataProps) personalData.Add(p.Name, p.GetValue(user)); - Response.Headers.Add("Content-Disposition", "attachment; filename=PersonalData.json"); + Response.Headers["Content-Disposition"] = "attachment; filename=PersonalData.json"; return new FileContentResult(JsonSerializer.SerializeToUtf8Bytes(personalData), "application/json"); } } diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs index 615192db..04ee6aed 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs @@ -48,16 +48,13 @@ public class InputModel private readonly UrlEncoder urlEncoder; private readonly UserManager userManager; - private const string AuthenticatorUriFormat = "otpauth://totp/{0}%20({1})?secret={2}&issuer={0}&digits=6"; - public EnableAuthenticatorModel( IOptions applicationSettings, ILogger logger, UrlEncoder urlEncoder, UserManager userManager) { - if (applicationSettings is null) - throw new ArgumentNullException(nameof(applicationSettings)); + ArgumentNullException.ThrowIfNull(applicationSettings, nameof(applicationSettings)); this.applicationSettings = applicationSettings.Value; this.logger = logger; @@ -169,14 +166,7 @@ private string FormatKey(string unformattedKey) return result.ToString().ToLowerInvariant(); } - private string GenerateQrCodeUri(string serviceName, string username, string unformattedKey) - { - return string.Format( - CultureInfo.InvariantCulture, - AuthenticatorUriFormat, - urlEncoder.Encode(serviceName), - urlEncoder.Encode(username), - unformattedKey); - } + private string GenerateQrCodeUri(string serviceName, string username, string unformattedKey) => + $"otpauth://totp/{urlEncoder.Encode(serviceName)}%20({urlEncoder.Encode(username)})?secret={unformattedKey}&issuer={urlEncoder.Encode(serviceName)}&digits=6"; } } diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs index 1f355dc2..b52c1081 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs @@ -33,72 +33,63 @@ public static class ManageNavPages // Methods. public static string? IndexNavClass(ViewContext viewContext) { - if (viewContext is null) - throw new ArgumentNullException(nameof(viewContext)); + ArgumentNullException.ThrowIfNull(viewContext, nameof(viewContext)); return PageNavClass(viewContext, Index); } public static string? ApiKeysNavClass(ViewContext viewContext) { - if (viewContext is null) - throw new ArgumentNullException(nameof(viewContext)); + ArgumentNullException.ThrowIfNull(viewContext, nameof(viewContext)); return PageNavClass(viewContext, ApiKeys); } public static string? EmailNavClass(ViewContext viewContext) { - if (viewContext is null) - throw new ArgumentNullException(nameof(viewContext)); + ArgumentNullException.ThrowIfNull(viewContext, nameof(viewContext)); return PageNavClass(viewContext, Email); } public static string? ChangePasswordNavClass(ViewContext viewContext) { - if (viewContext is null) - throw new ArgumentNullException(nameof(viewContext)); + ArgumentNullException.ThrowIfNull(viewContext, nameof(viewContext)); return PageNavClass(viewContext, ChangePassword); } public static string? DeletePersonalDataNavClass(ViewContext viewContext) { - if (viewContext is null) - throw new ArgumentNullException(nameof(viewContext)); + ArgumentNullException.ThrowIfNull(viewContext, nameof(viewContext)); return PageNavClass(viewContext, DeletePersonalData); } public static string? DownloadPersonalDataNavClass(ViewContext viewContext) { - if (viewContext is null) - throw new ArgumentNullException(nameof(viewContext)); + ArgumentNullException.ThrowIfNull(viewContext, nameof(viewContext)); return PageNavClass(viewContext, DownloadPersonalData); } public static string? Web3LoginNavClass(ViewContext viewContext) { - if (viewContext is null) - throw new ArgumentNullException(nameof(viewContext)); + ArgumentNullException.ThrowIfNull(viewContext, nameof(viewContext)); return PageNavClass(viewContext, Web3Login); } public static string? PersonalDataNavClass(ViewContext viewContext) { - if (viewContext is null) - throw new ArgumentNullException(nameof(viewContext)); + ArgumentNullException.ThrowIfNull(viewContext, nameof(viewContext)); return PageNavClass(viewContext, PersonalData); } public static string? TwoFactorAuthenticationNavClass(ViewContext viewContext) { - if (viewContext is null) - throw new ArgumentNullException(nameof(viewContext)); + ArgumentNullException.ThrowIfNull(viewContext, nameof(viewContext)); return PageNavClass(viewContext, TwoFactorAuthentication); } diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml.cs index d4fde416..b2852d46 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml.cs @@ -32,7 +32,7 @@ public class ShowRecoveryCodesModel : PageModel // Methods. public IActionResult OnGet() { - if (RecoveryCodes == null || !RecoveryCodes.Any()) + if (RecoveryCodes == null || RecoveryCodes.Length == 0) { return RedirectToPage("./TwoFactorAuthentication"); } diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml.cs index d72a797f..aa54113e 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml.cs @@ -63,8 +63,7 @@ public class InputModel : IValidatableObject // Methods. public IEnumerable Validate(ValidationContext validationContext) { - if (validationContext is null) - throw new ArgumentNullException(nameof(validationContext)); + ArgumentNullException.ThrowIfNull(validationContext, nameof(validationContext)); var appSettings = (IOptions)validationContext.GetService(typeof(IOptions))!; if (appSettings.Value.RequireInvitation && string.IsNullOrWhiteSpace(InvitationCode)) @@ -93,8 +92,7 @@ public RegisterModel( SignInManager signInManager, IUserService userService) { - if (applicationSettings is null) - throw new ArgumentNullException(nameof(applicationSettings)); + ArgumentNullException.ThrowIfNull(applicationSettings, nameof(applicationSettings)); this.applicationSettings = applicationSettings.Value; this.eventDispatcher = eventDispatcher; diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml.cs index f20a039d..026e7092 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml.cs @@ -51,8 +51,7 @@ public class InputModel : IValidatableObject // Methods. public IEnumerable Validate(ValidationContext validationContext) { - if (validationContext is null) - throw new ArgumentNullException(nameof(validationContext)); + ArgumentNullException.ThrowIfNull(validationContext, nameof(validationContext)); var appSettings = (IOptions)validationContext.GetService(typeof(IOptions))!; if (appSettings.Value.RequireInvitation && string.IsNullOrWhiteSpace(InvitationCode)) @@ -89,8 +88,7 @@ public Web3LoginModel( IWeb3AuthnService web3AuthnService) : base(clientStore) { - if (applicationSettings is null) - throw new ArgumentNullException(nameof(applicationSettings)); + ArgumentNullException.ThrowIfNull(applicationSettings, nameof(applicationSettings)); this.applicationSettings = applicationSettings.Value; this.eventDispatcher = eventDispatcher; diff --git a/src/EthernaSSO/Attributes/HideUnauthorizedExceptionFilterAttribute.cs b/src/EthernaSSO/Attributes/HideUnauthorizedExceptionFilterAttribute.cs index f2d68458..af6ca0fc 100644 --- a/src/EthernaSSO/Attributes/HideUnauthorizedExceptionFilterAttribute.cs +++ b/src/EthernaSSO/Attributes/HideUnauthorizedExceptionFilterAttribute.cs @@ -24,8 +24,7 @@ public sealed class HideUnauthorizedExceptionFilterAttribute : ExceptionFilterAt { public override void OnException(ExceptionContext context) { - if (context is null) - throw new ArgumentNullException(nameof(context)); + ArgumentNullException.ThrowIfNull(context, nameof(context)); switch (context.Exception) { diff --git a/src/EthernaSSO/Attributes/SimpleExceptionFilterAttribute.cs b/src/EthernaSSO/Attributes/SimpleExceptionFilterAttribute.cs index ce8b4c13..9eaea7f1 100644 --- a/src/EthernaSSO/Attributes/SimpleExceptionFilterAttribute.cs +++ b/src/EthernaSSO/Attributes/SimpleExceptionFilterAttribute.cs @@ -24,8 +24,7 @@ public sealed class SimpleExceptionFilterAttribute : ExceptionFilterAttribute { public override void OnException(ExceptionContext context) { - if (context is null) - throw new ArgumentNullException(nameof(context)); + ArgumentNullException.ThrowIfNull(context, nameof(context)); switch (context.Exception) { diff --git a/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationHandler.cs b/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationHandler.cs index dfbc2f1b..8a31f3c4 100644 --- a/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationHandler.cs +++ b/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationHandler.cs @@ -36,8 +36,7 @@ protected override async Task HandleRequirementAsync( AuthorizationHandlerContext context, DenyBannedAuthorizationRequirement requirement) { - if (context is null) - throw new ArgumentNullException(nameof(context)); + ArgumentNullException.ThrowIfNull(context, nameof(context)); if (context.User.Identity?.IsAuthenticated == true) { diff --git a/src/EthernaSSO/Configs/Identity/CustomUserValidator.cs b/src/EthernaSSO/Configs/Identity/CustomUserValidator.cs index c243e8dc..f0d3769f 100644 --- a/src/EthernaSSO/Configs/Identity/CustomUserValidator.cs +++ b/src/EthernaSSO/Configs/Identity/CustomUserValidator.cs @@ -53,10 +53,8 @@ public CustomUserValidator( /// The that represents the asynchronous operation, containing the of the validation operation. public virtual async Task ValidateAsync(UserManager manager, UserBase user) { - if (manager == null) - throw new ArgumentNullException(nameof(manager)); - if (user == null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(manager, nameof(manager)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); var errors = new List(); @@ -99,7 +97,7 @@ private async Task ValidateEmailAsync(UserManager manager, UserBase us } } - private async Task ValidateUsernameAsync(UserManager manager, UserBase user, ICollection errors) + private async Task ValidateUsernameAsync(UserManager manager, UserBase user, List errors) { var username = await manager.GetUserNameAsync(user) ?? throw new InvalidOperationException(); diff --git a/src/EthernaSSO/Configs/Identity/RoleStore.cs b/src/EthernaSSO/Configs/Identity/RoleStore.cs index b2c100f2..064010d6 100644 --- a/src/EthernaSSO/Configs/Identity/RoleStore.cs +++ b/src/EthernaSSO/Configs/Identity/RoleStore.cs @@ -66,24 +66,21 @@ await context.Roles.QueryElementsAsync(elements => public Task GetNormalizedRoleNameAsync(Role role, CancellationToken cancellationToken) { - if (role is null) - throw new ArgumentNullException(nameof(role)); + ArgumentNullException.ThrowIfNull(role, nameof(role)); return Task.FromResult(role.NormalizedName); } public Task GetRoleIdAsync(Role role, CancellationToken cancellationToken) { - if (role is null) - throw new ArgumentNullException(nameof(role)); + ArgumentNullException.ThrowIfNull(role, nameof(role)); return Task.FromResult(role.Id); } public Task GetRoleNameAsync(Role role, CancellationToken cancellationToken) { - if (role is null) - throw new ArgumentNullException(nameof(role)); + ArgumentNullException.ThrowIfNull(role, nameof(role)); return Task.FromResult(role.Name); } @@ -96,10 +93,8 @@ public Task SetNormalizedRoleNameAsync(Role role, string? normalizedName, Cancel public Task SetRoleNameAsync(Role role, string? roleName, CancellationToken cancellationToken) { - if (role is null) - throw new ArgumentNullException(nameof(role)); - if (roleName is null) - throw new ArgumentNullException(nameof(roleName)); + ArgumentNullException.ThrowIfNull(role, nameof(role)); + ArgumentNullException.ThrowIfNull(roleName, nameof(roleName)); role.SetName(roleName); return Task.CompletedTask; diff --git a/src/EthernaSSO/Configs/Identity/UserStore.cs b/src/EthernaSSO/Configs/Identity/UserStore.cs index 4d8f0ab2..c86d884c 100644 --- a/src/EthernaSSO/Configs/Identity/UserStore.cs +++ b/src/EthernaSSO/Configs/Identity/UserStore.cs @@ -60,8 +60,7 @@ public UserStore( // Methods. public Task AddClaimsAsync(UserBase user, IEnumerable claims, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); foreach (var claim in claims.Select(c => new Domain.Models.UserAgg.UserClaim(c.Type, c.Value))) user.AddClaim(claim); @@ -70,10 +69,8 @@ public Task AddClaimsAsync(UserBase user, IEnumerable claims, Cancellatio public async Task AddToRoleAsync(UserBase user, string roleName, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); - if (roleName is null) - throw new ArgumentNullException(nameof(roleName)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); + ArgumentNullException.ThrowIfNull(roleName, nameof(roleName)); var role = await ssoDbContext.Roles.QueryElementsAsync(elements => elements.Where(r => r.NormalizedName == roleName) @@ -138,8 +135,7 @@ public Task GetAccessFailedCountAsync(UserBase user, CancellationToken canc public Task> GetClaimsAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult>( user.Claims.Select(c => new Claim(c.Type, c.Value)).ToList()); @@ -147,24 +143,21 @@ public Task> GetClaimsAsync(UserBase user, CancellationToken cancel public Task GetEmailAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult(user.Email); } public Task GetEmailConfirmedAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult(user.NormalizedEmail is not null); } public async Task GetLockoutEnabledAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); var sharedInfo = await userService.GetSharedUserInfoAsync(user); @@ -173,8 +166,7 @@ public async Task GetLockoutEnabledAsync(UserBase user, CancellationToken public async Task GetLockoutEndDateAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); var sharedInfo = await userService.GetSharedUserInfoAsync(user); @@ -183,16 +175,14 @@ public async Task GetLockoutEnabledAsync(UserBase user, CancellationToken public Task GetNormalizedEmailAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult(user.NormalizedEmail); } public Task GetNormalizedUserNameAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult(user.NormalizedUsername); } @@ -207,32 +197,28 @@ public async Task GetLockoutEnabledAsync(UserBase user, CancellationToken public Task GetPhoneNumberAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult(user.PhoneNumber); } public Task GetPhoneNumberConfirmedAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult(user.PhoneNumberConfirmed); } public Task> GetRolesAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult>(user.Roles.Select(r => r.NormalizedName).ToList()); } public Task GetSecurityStampAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult(user.SecurityStamp); } @@ -247,16 +233,14 @@ public Task GetTwoFactorEnabledAsync(UserBase user, CancellationToken canc public Task GetUserIdAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult(user.Id); } public Task GetUserNameAsync(UserBase user, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult(user.Username); } @@ -294,8 +278,7 @@ public Task IncrementAccessFailedCountAsync(UserBase user, CancellationToke public Task IsInRoleAsync(UserBase user, string roleName, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); return Task.FromResult(user.Roles.Any(r => r.NormalizedName == roleName)); } @@ -310,8 +293,7 @@ public Task RedeemCodeAsync(UserBase user, string code, CancellationToken public Task RemoveClaimsAsync(UserBase user, IEnumerable claims, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); foreach (var claim in claims.Select(c => new Domain.Models.UserAgg.UserClaim(c.Type, c.Value))) user.RemoveClaim(claim); @@ -320,8 +302,7 @@ public Task RemoveClaimsAsync(UserBase user, IEnumerable claims, Cancella public Task RemoveFromRoleAsync(UserBase user, string roleName, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); user.RemoveRole(roleName); return Task.CompletedTask; @@ -329,12 +310,9 @@ public Task RemoveFromRoleAsync(UserBase user, string roleName, CancellationToke public Task ReplaceClaimAsync(UserBase user, Claim claim, Claim newClaim, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); - if (claim is null) - throw new ArgumentNullException(nameof(claim)); - if (newClaim is null) - throw new ArgumentNullException(nameof(newClaim)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); + ArgumentNullException.ThrowIfNull(claim, nameof(claim)); + ArgumentNullException.ThrowIfNull(newClaim, nameof(newClaim)); user.RemoveClaim(new Domain.Models.UserAgg.UserClaim(claim.Type, claim.Value)); user.AddClaim(new Domain.Models.UserAgg.UserClaim(newClaim.Type, newClaim.Value)); @@ -371,8 +349,7 @@ public Task SetAuthenticatorKeyAsync(UserBase user, string key, CancellationToke public Task SetEmailAsync(UserBase user, string? email, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); if (email is null) user.RemoveEmail(); @@ -384,8 +361,7 @@ public Task SetEmailAsync(UserBase user, string? email, CancellationToken cancel public Task SetEmailConfirmedAsync(UserBase user, bool confirmed, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); //we accept only confirmed emails return Task.CompletedTask; @@ -393,8 +369,7 @@ public Task SetEmailConfirmedAsync(UserBase user, bool confirmed, CancellationTo public async Task SetLockoutEnabledAsync(UserBase user, bool enabled, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); var sharedInfo = await userService.GetSharedUserInfoAsync(user); sharedInfo.LockoutEnabled = enabled; @@ -402,8 +377,7 @@ public async Task SetLockoutEnabledAsync(UserBase user, bool enabled, Cancellati public async Task SetLockoutEndDateAsync(UserBase user, DateTimeOffset? lockoutEnd, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); var sharedInfo = await userService.GetSharedUserInfoAsync(user); sharedInfo.LockoutEnd = lockoutEnd; @@ -432,8 +406,7 @@ public Task SetPasswordHashAsync(UserBase user, string? passwordHash, Cancellati public Task SetPhoneNumberAsync(UserBase user, string? phoneNumber, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); user.SetPhoneNumber(phoneNumber); return Task.CompletedTask; @@ -441,8 +414,7 @@ public Task SetPhoneNumberAsync(UserBase user, string? phoneNumber, Cancellation public Task SetPhoneNumberConfirmedAsync(UserBase user, bool confirmed, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); //if confirmed == false don't perform any action, because is already managed by domain if (confirmed) @@ -453,8 +425,7 @@ public Task SetPhoneNumberConfirmedAsync(UserBase user, bool confirmed, Cancella public Task SetSecurityStampAsync(UserBase user, string stamp, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); user.SecurityStamp = stamp; return Task.CompletedTask; @@ -471,10 +442,8 @@ public Task SetTwoFactorEnabledAsync(UserBase user, bool enabled, CancellationTo public Task SetUserNameAsync(UserBase user, string? userName, CancellationToken cancellationToken) { - if (user is null) - throw new ArgumentNullException(nameof(user)); - if (userName is null) - throw new ArgumentNullException(nameof(userName)); + ArgumentNullException.ThrowIfNull(user, nameof(user)); + ArgumentNullException.ThrowIfNull(userName, nameof(userName)); user.SetUsername(userName); return Task.CompletedTask; diff --git a/src/EthernaSSO/Configs/IdentityServer/ApiKeyValidator.cs b/src/EthernaSSO/Configs/IdentityServer/ApiKeyValidator.cs index 6a375a14..03061ce3 100644 --- a/src/EthernaSSO/Configs/IdentityServer/ApiKeyValidator.cs +++ b/src/EthernaSSO/Configs/IdentityServer/ApiKeyValidator.cs @@ -46,8 +46,7 @@ public ApiKeyValidator( public async Task ValidateAsync(ResourceOwnerPasswordValidationContext context) { - if (context is null) - throw new ArgumentNullException(nameof(context)); + ArgumentNullException.ThrowIfNull(context, nameof(context)); /* * The ROPC base protocol requires to pass fields "username" and "password" during authentication. diff --git a/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs b/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs index 394fc29f..b9607782 100644 --- a/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs +++ b/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs @@ -121,8 +121,7 @@ private static class IdResourcesDef // Constructor. public IdServerConfig(IConfiguration configuration) { - if (configuration is null) - throw new ArgumentNullException(nameof(configuration)); + ArgumentNullException.ThrowIfNull(configuration, nameof(configuration)); apiKey_ClientId = configuration["IdServer:Clients:ApiKey:ClientId"] ?? throw new ServiceConfigurationException(); diff --git a/src/EthernaSSO/Configs/Swagger/SwaggerDefaultValues.cs b/src/EthernaSSO/Configs/Swagger/SwaggerDefaultValues.cs index 16c13b8e..10988cf9 100644 --- a/src/EthernaSSO/Configs/Swagger/SwaggerDefaultValues.cs +++ b/src/EthernaSSO/Configs/Swagger/SwaggerDefaultValues.cs @@ -35,10 +35,8 @@ public class SwaggerDefaultValues : IOperationFilter /// The current operation filter context. public void Apply(OpenApiOperation operation, OperationFilterContext context) { - if (context is null) - throw new ArgumentNullException(nameof(context)); - if (operation is null) - throw new ArgumentNullException(nameof(operation)); + ArgumentNullException.ThrowIfNull(context, nameof(context)); + ArgumentNullException.ThrowIfNull(operation, nameof(operation)); var apiDescription = context.ApiDescription; diff --git a/src/EthernaSSO/Configs/SystemStore/PersistedGrantRepository.cs b/src/EthernaSSO/Configs/SystemStore/PersistedGrantRepository.cs index 3225d3a0..27543b98 100644 --- a/src/EthernaSSO/Configs/SystemStore/PersistedGrantRepository.cs +++ b/src/EthernaSSO/Configs/SystemStore/PersistedGrantRepository.cs @@ -38,8 +38,7 @@ public class PersistedGrantRepository : IPersistedGrantStore // Constructor. public PersistedGrantRepository(DbContextOptions options, string name) { - if (options is null) - throw new ArgumentNullException(nameof(options)); + ArgumentNullException.ThrowIfNull(options, nameof(options)); // Register class map. (see: https://etherna.atlassian.net/browse/ESSO-140) BsonClassMap.RegisterClassMap(cm => @@ -61,8 +60,7 @@ public PersistedGrantRepository(DbContextOptions options, string name) // Methods. public async Task> GetAllAsync(PersistedGrantFilter filter) { - if (filter is null) - throw new ArgumentNullException(nameof(filter)); + ArgumentNullException.ThrowIfNull(filter, nameof(filter)); filter.Validate(); var cursor = await collection.FindAsync(BuildMongoFilterHelper(filter)); @@ -75,8 +73,7 @@ await collection.AsQueryable() public Task RemoveAllAsync(PersistedGrantFilter filter) { - if (filter is null) - throw new ArgumentNullException(nameof(filter)); + ArgumentNullException.ThrowIfNull(filter, nameof(filter)); filter.Validate(); return collection.DeleteManyAsync(BuildMongoFilterHelper(filter)); diff --git a/src/EthernaSSO/Configs/SystemStore/SigningKeyRepository.cs b/src/EthernaSSO/Configs/SystemStore/SigningKeyRepository.cs index 78d01ab8..46655f14 100644 --- a/src/EthernaSSO/Configs/SystemStore/SigningKeyRepository.cs +++ b/src/EthernaSSO/Configs/SystemStore/SigningKeyRepository.cs @@ -32,8 +32,7 @@ internal sealed class SigningKeyRepository : ISigningKeyStore // Constructor. public SigningKeyRepository(DbContextOptions options, string name) { - if (options is null) - throw new ArgumentNullException(nameof(options)); + ArgumentNullException.ThrowIfNull(options, nameof(options)); // Register class map. (see: https://etherna.atlassian.net/browse/ESSO-140) BsonClassMap.RegisterClassMap(cm => diff --git a/src/EthernaSSO/Configs/SystemStore/XmlRepository.cs b/src/EthernaSSO/Configs/SystemStore/XmlRepository.cs index 8fcef590..fd64f423 100644 --- a/src/EthernaSSO/Configs/SystemStore/XmlRepository.cs +++ b/src/EthernaSSO/Configs/SystemStore/XmlRepository.cs @@ -33,8 +33,7 @@ public class XmlRepository : IXmlRepository // Constructors. public XmlRepository(DbContextOptions options, string name) { - if (options is null) - throw new ArgumentNullException(nameof(options)); + ArgumentNullException.ThrowIfNull(options, nameof(options)); // Initialize MongoDB driver. var client = new MongoClient(options.ConnectionString); @@ -60,8 +59,7 @@ public IReadOnlyCollection GetAllElements() public void StoreElement(XElement element, string friendlyName) { - if (element is null) - throw new ArgumentNullException(nameof(element)); + ArgumentNullException.ThrowIfNull(element, nameof(element)); //remove all comments. Json doesn't support it, but Json.NET serialize them anyway element.DescendantNodes().Where(x => x.NodeType == XmlNodeType.Comment).Remove(); diff --git a/src/EthernaSSO/EthernaSSO.csproj b/src/EthernaSSO/EthernaSSO.csproj index 0646d5c8..7e4561b3 100644 --- a/src/EthernaSSO/EthernaSSO.csproj +++ b/src/EthernaSSO/EthernaSSO.csproj @@ -1,7 +1,7 @@  - net7.0 + net8.0 Etherna.SSOServer Etherna Sagl @@ -20,17 +20,17 @@ - - + + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/src/EthernaSSO/Extensions/DataProtectionBuilderExtensions.cs b/src/EthernaSSO/Extensions/DataProtectionBuilderExtensions.cs index 4e56d76e..b6838836 100644 --- a/src/EthernaSSO/Extensions/DataProtectionBuilderExtensions.cs +++ b/src/EthernaSSO/Extensions/DataProtectionBuilderExtensions.cs @@ -34,8 +34,7 @@ public static IDataProtectionBuilder PersistKeysToDbContext( this IDataProtectionBuilder builder, DbContextOptions dbContextOptions) { - if (builder is null) - throw new System.ArgumentNullException(nameof(builder)); + System.ArgumentNullException.ThrowIfNull(builder, nameof(builder)); builder.Services.Configure(options => { diff --git a/src/EthernaSSO/Pages/Redirect.cshtml.cs b/src/EthernaSSO/Pages/Redirect.cshtml.cs index 972649da..b445e795 100644 --- a/src/EthernaSSO/Pages/Redirect.cshtml.cs +++ b/src/EthernaSSO/Pages/Redirect.cshtml.cs @@ -25,8 +25,7 @@ public class RedirectModel : PageModel // Properties. public void OnGet(string redirectUrl) { - if (redirectUrl is null) - throw new ArgumentNullException(nameof(redirectUrl)); + ArgumentNullException.ThrowIfNull(redirectUrl, nameof(redirectUrl)); RedirectUrl = redirectUrl; } diff --git a/src/EthernaSSO/Startup.cs b/src/EthernaSSO/Startup.cs index b138b394..9e2254e2 100644 --- a/src/EthernaSSO/Startup.cs +++ b/src/EthernaSSO/Startup.cs @@ -24,9 +24,9 @@ using Etherna.MongODM.Core.Options; using Etherna.SSOServer.Configs; using Etherna.SSOServer.Configs.Authorization; -using Etherna.SSOServer.Configs.Hangfire; using Etherna.SSOServer.Configs.Identity; using Etherna.SSOServer.Configs.IdentityServer; +using Etherna.SSOServer.Configs.MongODM; using Etherna.SSOServer.Configs.Swagger; using Etherna.SSOServer.Configs.SystemStore; using Etherna.SSOServer.Domain; @@ -67,6 +67,8 @@ using System.Net; using System.Reflection; using System.Threading.Tasks; +using DashboardOptions = Etherna.MongODM.AspNetCore.UI.DashboardOptions; +using IPNetwork = Microsoft.AspNetCore.HttpOverrides.IPNetwork; namespace Etherna.SSOServer { @@ -393,9 +395,9 @@ static Task unauthorizedApiCallHandler(RedirectContext - net7.0 + net8.0 Etherna.SSOServer.Persistence Etherna Sagl @@ -15,10 +15,10 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/test/EthernaSSO.Persistence.Tests/Helpers/DbContextMockHelper.cs b/test/EthernaSSO.Persistence.Tests/Helpers/DbContextMockHelper.cs index 050df730..209c3939 100644 --- a/test/EthernaSSO.Persistence.Tests/Helpers/DbContextMockHelper.cs +++ b/test/EthernaSSO.Persistence.Tests/Helpers/DbContextMockHelper.cs @@ -38,8 +38,7 @@ public static class DbContextMockHelper [SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope", Justification = "Need to keep objects after test construction")] public static void InitializeDbContextMock(DbContext dbContext, Mock? mongoDatabaseMock = null) { - if (dbContext is null) - throw new ArgumentNullException(nameof(dbContext)); + ArgumentNullException.ThrowIfNull(dbContext, nameof(dbContext)); // Setup dbcontext dependencies for initialization. Mock dbDependenciesMock = new(); @@ -85,10 +84,8 @@ public static Mock> SetupCollectionMock( IRepository collection) where TModel : class, IEntityModel { - if (mongoDatabaseMock is null) - throw new ArgumentNullException(nameof(mongoDatabaseMock)); - if (collection is null) - throw new ArgumentNullException(nameof(collection)); + ArgumentNullException.ThrowIfNull(mongoDatabaseMock, nameof(mongoDatabaseMock)); + ArgumentNullException.ThrowIfNull(collection, nameof(collection)); var collectionMock = new Mock>(); @@ -102,8 +99,7 @@ public static void SetupFindWithPredicate( Mock> collectionMock, Func, IEnumerable> modelSelector) { - if (collectionMock is null) - throw new ArgumentNullException(nameof(collectionMock)); + ArgumentNullException.ThrowIfNull(collectionMock, nameof(collectionMock)); // Setup collection. collectionMock.Setup(c => c.FindAsync( diff --git a/test/EthernaSSO.Persistence.Tests/ModelMaps/SharedDbContextDeserializationTest.cs b/test/EthernaSSO.Persistence.Tests/ModelMaps/SharedDbContextDeserializationTest.cs index ea1ae720..1936b6b3 100644 --- a/test/EthernaSSO.Persistence.Tests/ModelMaps/SharedDbContextDeserializationTest.cs +++ b/test/EthernaSSO.Persistence.Tests/ModelMaps/SharedDbContextDeserializationTest.cs @@ -23,11 +23,13 @@ using Moq; using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using Xunit; namespace Etherna.SSOServer.Persistence.ModelMaps { + [SuppressMessage("Performance", "CA1861:Avoid constant arrays as arguments")] public class SharedDbContextDeserializationTest { // Fields. @@ -85,8 +87,7 @@ public static IEnumerable UserSharedInfoDeserializationTests [Theory, MemberData(nameof(UserSharedInfoDeserializationTests))] public void UserSharedInfoDeserialization(DeserializationTestElement testElement) { - if (testElement is null) - throw new ArgumentNullException(nameof(testElement)); + ArgumentNullException.ThrowIfNull(testElement, nameof(testElement)); // Setup. using var documentReader = new JsonReader(testElement.SourceDocument); diff --git a/test/EthernaSSO.Persistence.Tests/ModelMaps/SsoDbContextDeserializationTest.cs b/test/EthernaSSO.Persistence.Tests/ModelMaps/SsoDbContextDeserializationTest.cs index 0aab6bf7..174a6346 100644 --- a/test/EthernaSSO.Persistence.Tests/ModelMaps/SsoDbContextDeserializationTest.cs +++ b/test/EthernaSSO.Persistence.Tests/ModelMaps/SsoDbContextDeserializationTest.cs @@ -25,11 +25,13 @@ using Moq; using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using Xunit; namespace Etherna.SSOServer.Persistence.ModelMaps { + [SuppressMessage("Performance", "CA1861:Avoid constant arrays as arguments")] public class SsoDbContextDeserializationTest { // Fields. @@ -468,8 +470,7 @@ public static IEnumerable Web3LoginTokenDeserializationTests [Theory, MemberData(nameof(AlphaPassRequestDeserializationTests))] public void AlphaPassRequestDeserialization(DeserializationTestElement testElement) { - if (testElement is null) - throw new ArgumentNullException(nameof(testElement)); + ArgumentNullException.ThrowIfNull(testElement, nameof(testElement)); // Arrange. using var documentReader = new JsonReader(testElement.SourceDocument); @@ -496,8 +497,7 @@ public void AlphaPassRequestDeserialization(DeserializationTestElement testElement) { - if (testElement is null) - throw new ArgumentNullException(nameof(testElement)); + ArgumentNullException.ThrowIfNull(testElement, nameof(testElement)); // Arrange. using var documentReader = new JsonReader(testElement.SourceDocument); @@ -525,8 +525,7 @@ public void ApiKeyDeserialization(DeserializationTestElement testElement) { - if (testElement is null) - throw new ArgumentNullException(nameof(testElement)); + ArgumentNullException.ThrowIfNull(testElement, nameof(testElement)); // Arrange. using var documentReader = new JsonReader(testElement.SourceDocument); @@ -550,8 +549,7 @@ public void DailyStatsDeserialization(DeserializationTestElement testElement) { - if (testElement is null) - throw new ArgumentNullException(nameof(testElement)); + ArgumentNullException.ThrowIfNull(testElement, nameof(testElement)); // Arrange. using var documentReader = new JsonReader(testElement.SourceDocument); @@ -578,8 +576,7 @@ public void InvitationDeserialization(DeserializationTestElement testElement) { - if (testElement is null) - throw new ArgumentNullException(nameof(testElement)); + ArgumentNullException.ThrowIfNull(testElement, nameof(testElement)); // Arrange. using var documentReader = new JsonReader(testElement.SourceDocument); @@ -604,8 +601,7 @@ public void RoleDeserialization(DeserializationTestElement t [Theory, MemberData(nameof(UserDeserializationTests))] public void UserDeserialization(DeserializationTestElement testElement) { - if (testElement is null) - throw new ArgumentNullException(nameof(testElement)); + ArgumentNullException.ThrowIfNull(testElement, nameof(testElement)); // Arrange. using var documentReader = new JsonReader(testElement.SourceDocument); @@ -665,8 +661,7 @@ public void UserDeserialization(DeserializationTestElement testElement) { - if (testElement is null) - throw new ArgumentNullException(nameof(testElement)); + ArgumentNullException.ThrowIfNull(testElement, nameof(testElement)); // Arrange. using var documentReader = new JsonReader(testElement.SourceDocument); From e89c43dd66654337a52097bbf2fbea37ee64aca5 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte Date: Fri, 5 Jan 2024 16:37:00 +0100 Subject: [PATCH 2/9] update js dependencies --- .../Static/scss/base/_bootstrap.scss | 8 +- src/EthernaSSO/package-lock.json | 789 +++++++++--------- src/EthernaSSO/package.json | 26 +- 3 files changed, 426 insertions(+), 397 deletions(-) diff --git a/src/EthernaSSO/Static/scss/base/_bootstrap.scss b/src/EthernaSSO/Static/scss/base/_bootstrap.scss index df8274d2..3401c2c6 100644 --- a/src/EthernaSSO/Static/scss/base/_bootstrap.scss +++ b/src/EthernaSSO/Static/scss/base/_bootstrap.scss @@ -5,8 +5,12 @@ @import "variables"; // Required -@import "../../../node_modules/bootstrap/scss/variables"; -@import "../../../node_modules/bootstrap/scss/mixins"; +@import '../../../node_modules/bootstrap/scss/mixins'; +@import '../../../node_modules/bootstrap/scss/functions'; +@import '../../../node_modules/bootstrap/scss/variables'; +@import '../../../node_modules/bootstrap/scss/variables-dark'; +@import '../../../node_modules/bootstrap/scss/maps'; +@import '../../../node_modules/bootstrap/scss/utilities'; @import "../../../node_modules/bootstrap/scss/root"; // Optional Bootstrap components here diff --git a/src/EthernaSSO/package-lock.json b/src/EthernaSSO/package-lock.json index c354eabe..4f28fc91 100644 --- a/src/EthernaSSO/package-lock.json +++ b/src/EthernaSSO/package-lock.json @@ -9,27 +9,27 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@popperjs/core": "2.11.4", - "bootstrap": "5.1.3", - "ethers": "5.6.1", - "jquery": "3.6.0", + "@popperjs/core": "2.11.8", + "bootstrap": "5.3.2", + "ethers": "5.7.2", + "jquery": "3.7.1", "jquery-datepicker": "1.12.3", "jquery-datetimepicker": "2.5.21", "jquery-ui": "1.13.2", - "jquery-validation": "1.19.5", - "jquery-validation-unobtrusive": "3.2.12", + "jquery-validation": "1.20.0", + "jquery-validation-unobtrusive": "4.0.0", "popper.js": "1.16.1" }, "devDependencies": { - "autoprefixer": "10.4.4", - "laravel-mix": "6.0.43", + "autoprefixer": "10.4.16", + "laravel-mix": "6.0.49", "laravel-mix-purgecss": "6.0.0", - "postcss": "8.4.12", + "postcss": "8.4.33", "resolve-url-loader": "5.0.0", - "sass": "1.49.9", - "sass-loader": "12.6.0", - "ts-loader": "9.2.8", - "typescript": "4.6.2" + "sass": "1.69.7", + "sass-loader": "13.3.3", + "ts-loader": "9.5.1", + "typescript": "5.3.3" } }, "node_modules/@ampproject/remapping": { @@ -1792,9 +1792,9 @@ } }, "node_modules/@ethersproject/abi": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.0.tgz", - "integrity": "sha512-AhVByTwdXCc2YQ20v300w6KVHle9g2OFc28ZAFCPnJyEpkv1xKXjZcSTgWOlv1i+0dqlgF8RCF2Rn2KC1t+1Vg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", "funding": [ { "type": "individual", @@ -1806,21 +1806,21 @@ } ], "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@ethersproject/abstract-provider": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz", - "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", "funding": [ { "type": "individual", @@ -1832,19 +1832,19 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" } }, "node_modules/@ethersproject/abstract-signer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz", - "integrity": "sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", "funding": [ { "type": "individual", @@ -1856,17 +1856,17 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, "node_modules/@ethersproject/address": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", - "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", "funding": [ { "type": "individual", @@ -1878,17 +1878,17 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" } }, "node_modules/@ethersproject/base64": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz", - "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", "funding": [ { "type": "individual", @@ -1900,13 +1900,13 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0" + "@ethersproject/bytes": "^5.7.0" } }, "node_modules/@ethersproject/basex": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.0.tgz", - "integrity": "sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", "funding": [ { "type": "individual", @@ -1918,14 +1918,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/properties": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" } }, "node_modules/@ethersproject/bignumber": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz", - "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", "funding": [ { "type": "individual", @@ -1937,15 +1937,20 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" } }, + "node_modules/@ethersproject/bignumber/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, "node_modules/@ethersproject/bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.0.tgz", - "integrity": "sha512-3hJPlYemb9V4VLfJF5BfN0+55vltPZSHU3QKUyP9M3Y2TcajbiRrz65UG+xVHOzBereB1b9mn7r12o177xgN7w==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", "funding": [ { "type": "individual", @@ -1957,13 +1962,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/constants": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", - "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", "funding": [ { "type": "individual", @@ -1975,13 +1980,13 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.0" + "@ethersproject/bignumber": "^5.7.0" } }, "node_modules/@ethersproject/contracts": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.0.tgz", - "integrity": "sha512-74Ge7iqTDom0NX+mux8KbRUeJgu1eHZ3iv6utv++sLJG80FVuU9HnHeKVPfjd9s3woFhaFoQGf3B3iH/FrQmgw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", "funding": [ { "type": "individual", @@ -1993,22 +1998,22 @@ } ], "dependencies": { - "@ethersproject/abi": "^5.6.0", - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.0" + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" } }, "node_modules/@ethersproject/hash": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz", - "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", "funding": [ { "type": "individual", @@ -2020,20 +2025,21 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@ethersproject/hdnode": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.0.tgz", - "integrity": "sha512-61g3Jp3nwDqJcL/p4nugSyLrpl/+ChXIOtCEM8UDmWeB3JCAt5FoLdOMXQc3WWkc0oM2C0aAn6GFqqMcS/mHTw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", "funding": [ { "type": "individual", @@ -2045,24 +2051,24 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/basex": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/wordlists": "^5.6.0" + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, "node_modules/@ethersproject/json-wallets": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.0.tgz", - "integrity": "sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", "funding": [ { "type": "individual", @@ -2074,25 +2080,25 @@ } ], "dependencies": { - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hdnode": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/pbkdf2": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", "aes-js": "3.0.0", "scrypt-js": "3.0.1" } }, "node_modules/@ethersproject/keccak256": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", - "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", "funding": [ { "type": "individual", @@ -2104,14 +2110,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0", + "@ethersproject/bytes": "^5.7.0", "js-sha3": "0.8.0" } }, "node_modules/@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", "funding": [ { "type": "individual", @@ -2124,9 +2130,9 @@ ] }, "node_modules/@ethersproject/networks": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.0.tgz", - "integrity": "sha512-DaVzgyThzHgSDLuURhvkp4oviGoGe9iTZW4jMEORHDRCgSZ9K9THGFKqL+qGXqPAYLEgZTf5z2w56mRrPR1MjQ==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", "funding": [ { "type": "individual", @@ -2138,13 +2144,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/pbkdf2": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.0.tgz", - "integrity": "sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", "funding": [ { "type": "individual", @@ -2156,14 +2162,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/sha2": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" } }, "node_modules/@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", "funding": [ { "type": "individual", @@ -2175,13 +2181,13 @@ } ], "dependencies": { - "@ethersproject/logger": "^5.6.0" + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/providers": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.1.tgz", - "integrity": "sha512-w8Wx15nH+aVDvnoKCyI1f3x0B5idmk/bDJXMEUqCfdO8Eadd0QpDx9lDMTMmenhOmf9vufLJXjpSm24D3ZnVpg==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", "funding": [ { "type": "individual", @@ -2193,31 +2199,32 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/basex": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/strings": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/web": "^5.6.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", "bech32": "1.1.4", "ws": "7.4.6" } }, "node_modules/@ethersproject/random": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.0.tgz", - "integrity": "sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", "funding": [ { "type": "individual", @@ -2229,14 +2236,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/rlp": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", - "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", "funding": [ { "type": "individual", @@ -2248,14 +2255,14 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/sha2": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.0.tgz", - "integrity": "sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", "funding": [ { "type": "individual", @@ -2267,15 +2274,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", "hash.js": "1.1.7" } }, "node_modules/@ethersproject/signing-key": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.0.tgz", - "integrity": "sha512-S+njkhowmLeUu/r7ir8n78OUKx63kBdMCPssePS89So1TH4hZqnWFsThEd/GiXYp9qMxVrydf7KdM9MTGPFukA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", "funding": [ { "type": "individual", @@ -2287,18 +2294,23 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^4.11.9", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", "elliptic": "6.5.4", "hash.js": "1.1.7" } }, + "node_modules/@ethersproject/signing-key/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, "node_modules/@ethersproject/solidity": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.0.tgz", - "integrity": "sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", "funding": [ { "type": "individual", @@ -2310,18 +2322,18 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/sha2": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@ethersproject/strings": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz", - "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", "funding": [ { "type": "individual", @@ -2333,15 +2345,15 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/transactions": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz", - "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", "funding": [ { "type": "individual", @@ -2353,21 +2365,21 @@ } ], "dependencies": { - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0" + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, "node_modules/@ethersproject/units": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.0.tgz", - "integrity": "sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", "funding": [ { "type": "individual", @@ -2379,15 +2391,15 @@ } ], "dependencies": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/logger": "^5.6.0" + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, "node_modules/@ethersproject/wallet": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.0.tgz", - "integrity": "sha512-qMlSdOSTyp0MBeE+r7SUhr1jjDlC1zAXB8VD84hCnpijPQiSNbxr6GdiLXxpUs8UKzkDiNYYC5DRI3MZr+n+tg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", "funding": [ { "type": "individual", @@ -2399,27 +2411,27 @@ } ], "dependencies": { - "@ethersproject/abstract-provider": "^5.6.0", - "@ethersproject/abstract-signer": "^5.6.0", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/hdnode": "^5.6.0", - "@ethersproject/json-wallets": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/random": "^5.6.0", - "@ethersproject/signing-key": "^5.6.0", - "@ethersproject/transactions": "^5.6.0", - "@ethersproject/wordlists": "^5.6.0" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, "node_modules/@ethersproject/web": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz", - "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", "funding": [ { "type": "individual", @@ -2431,17 +2443,17 @@ } ], "dependencies": { - "@ethersproject/base64": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@ethersproject/wordlists": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.0.tgz", - "integrity": "sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", "funding": [ { "type": "individual", @@ -2453,11 +2465,11 @@ } ], "dependencies": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/hash": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, "node_modules/@fullhuman/postcss-purgecss": { @@ -2575,9 +2587,9 @@ } }, "node_modules/@popperjs/core": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.4.tgz", - "integrity": "sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -3309,9 +3321,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", - "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "dev": true, "funding": [ { @@ -3321,12 +3333,16 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "browserslist": "^4.20.2", - "caniuse-lite": "^1.0.30001317", - "fraction.js": "^4.2.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -3535,15 +3551,21 @@ "dev": true }, "node_modules/bootstrap": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", - "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz", + "integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], "peerDependencies": { - "@popperjs/core": "^2.10.2" + "@popperjs/core": "^2.11.8" } }, "node_modules/brace-expansion": { @@ -3673,9 +3695,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -3685,13 +3707,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -3783,9 +3809,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001486", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001486.tgz", - "integrity": "sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg==", + "version": "1.0.30001574", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001574.tgz", + "integrity": "sha512-BtYEK4r/iHt/txm81KBudCUcTy7t+s9emrIaHqjYurQ10x71zJ5VQ9x1dYPcz/b+pKSp4y/v1xSI67A+LzpNyg==", "dev": true, "funding": [ { @@ -4698,9 +4724,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.391", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.391.tgz", - "integrity": "sha512-GqydVV1+kUWY5qlEzaw34/hyWTApuQrHiGrcGA2Kk/56nEK44i+YUW45VH43JuZT0Oo7uY8aVtpPhBBZXEWtSA==", + "version": "1.4.622", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.622.tgz", + "integrity": "sha512-GZ47DEy0Gm2Z8RVG092CkFvX7SdotG57c4YZOe8W8qD4rOmk3plgeNmiLVRHP/Liqj1wRiY3uUUod9vb9hnxZA==", "dev": true }, "node_modules/elliptic": { @@ -4876,9 +4902,9 @@ } }, "node_modules/ethers": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.1.tgz", - "integrity": "sha512-qtl/2W+dwmUa5Z3JqwsbV3JEBZZHNARe5K/A2ePcNAuhJYnEKIgGOT/O9ouPwBijSqVoQnmQMzi5D48LFNOY2A==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", "funding": [ { "type": "individual", @@ -4890,36 +4916,36 @@ } ], "dependencies": { - "@ethersproject/abi": "5.6.0", - "@ethersproject/abstract-provider": "5.6.0", - "@ethersproject/abstract-signer": "5.6.0", - "@ethersproject/address": "5.6.0", - "@ethersproject/base64": "5.6.0", - "@ethersproject/basex": "5.6.0", - "@ethersproject/bignumber": "5.6.0", - "@ethersproject/bytes": "5.6.0", - "@ethersproject/constants": "5.6.0", - "@ethersproject/contracts": "5.6.0", - "@ethersproject/hash": "5.6.0", - "@ethersproject/hdnode": "5.6.0", - "@ethersproject/json-wallets": "5.6.0", - "@ethersproject/keccak256": "5.6.0", - "@ethersproject/logger": "5.6.0", - "@ethersproject/networks": "5.6.0", - "@ethersproject/pbkdf2": "5.6.0", - "@ethersproject/properties": "5.6.0", - "@ethersproject/providers": "5.6.1", - "@ethersproject/random": "5.6.0", - "@ethersproject/rlp": "5.6.0", - "@ethersproject/sha2": "5.6.0", - "@ethersproject/signing-key": "5.6.0", - "@ethersproject/solidity": "5.6.0", - "@ethersproject/strings": "5.6.0", - "@ethersproject/transactions": "5.6.0", - "@ethersproject/units": "5.6.0", - "@ethersproject/wallet": "5.6.0", - "@ethersproject/web": "5.6.0", - "@ethersproject/wordlists": "5.6.0" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, "node_modules/eventemitter3": { @@ -5243,16 +5269,16 @@ } }, "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/rawify" } }, "node_modules/fresh": { @@ -5290,20 +5316,6 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -6124,9 +6136,9 @@ } }, "node_modules/jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, "node_modules/jquery-datepicker": { "version": "1.12.3", @@ -6157,20 +6169,20 @@ } }, "node_modules/jquery-validation": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.19.5.tgz", - "integrity": "sha512-X2SmnPq1mRiDecVYL8edWx+yTBZDyC8ohWXFhXdtqFHgU9Wd4KHkvcbCoIZ0JaSaumzS8s2gXSkP8F7ivg/8ZQ==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.20.0.tgz", + "integrity": "sha512-c8tg4ltIIP6L7l0bZ79sRzOJYquyjS48kQZ6iv8MJ2r0OYztxtkWYKTReZyU2/zVFYiINB29i0Z/IRNNuJQN1g==", "peerDependencies": { "jquery": "^1.7 || ^2.0 || ^3.1" } }, "node_modules/jquery-validation-unobtrusive": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz", - "integrity": "sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz", + "integrity": "sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ==", "dependencies": { - "jquery": "^3.5.1", - "jquery-validation": ">=1.16" + "jquery": "^3.6.0", + "jquery-validation": ">=1.19" } }, "node_modules/js-sha3": { @@ -6260,9 +6272,9 @@ } }, "node_modules/laravel-mix": { - "version": "6.0.43", - "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-6.0.43.tgz", - "integrity": "sha512-SOO+C1aOpVSAUs30DYc6k/e0QJxfyD42aav4IKJtE5UZKw9ROWcVzkVoek2J475jNeNnl7GkoLAC27gejZsQ8g==", + "version": "6.0.49", + "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-6.0.49.tgz", + "integrity": "sha512-bBMFpFjp26XfijPvY5y9zGKud7VqlyOE0OWUcPo3vTBY5asw8LTjafAbee1dhfLz6PWNqDziz69CP78ELSpfKw==", "dev": true, "dependencies": { "@babel/core": "^7.15.8", @@ -6712,9 +6724,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -6809,9 +6821,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-path": { @@ -7215,9 +7227,9 @@ } }, "node_modules/postcss": { - "version": "8.4.12", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", - "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", "dev": true, "funding": [ { @@ -7227,10 +7239,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -8310,9 +8326,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.49.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", - "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", + "version": "1.69.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", + "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -8323,20 +8339,19 @@ "sass": "sass.js" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "version": "13.3.3", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.3.tgz", + "integrity": "sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==", "dev": true, "dependencies": { - "klona": "^2.0.4", "neo-async": "^2.6.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -8344,7 +8359,7 @@ }, "peerDependencies": { "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" @@ -9104,15 +9119,16 @@ } }, "node_modules/ts-loader": { - "version": "9.2.8", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.8.tgz", - "integrity": "sha512-gxSak7IHUuRtwKf3FIPSW1VpZcqF9+MBrHOvBp9cjHh+525SjtCIJKVGjRKIAfxBwDGDGCFF00rTfzB1quxdSw==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", "dev": true, "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", "micromatch": "^4.0.0", - "semver": "^7.3.4" + "semver": "^7.3.4", + "source-map": "^0.7.4" }, "engines": { "node": ">=12.0.0" @@ -9122,6 +9138,15 @@ "webpack": "^5.0.0" } }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -9148,16 +9173,16 @@ } }, "node_modules/typescript": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", - "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -9219,9 +9244,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { diff --git a/src/EthernaSSO/package.json b/src/EthernaSSO/package.json index 7de2031d..94bdb9ff 100644 --- a/src/EthernaSSO/package.json +++ b/src/EthernaSSO/package.json @@ -11,26 +11,26 @@ "author": "", "license": "ISC", "dependencies": { - "@popperjs/core": "2.11.4", - "bootstrap": "5.1.3", - "ethers": "5.6.1", - "jquery": "3.6.0", + "@popperjs/core": "2.11.8", + "bootstrap": "5.3.2", + "ethers": "5.7.2", + "jquery": "3.7.1", "jquery-datepicker": "1.12.3", "jquery-datetimepicker": "2.5.21", "jquery-ui": "1.13.2", - "jquery-validation": "1.19.5", - "jquery-validation-unobtrusive": "3.2.12", + "jquery-validation": "1.20.0", + "jquery-validation-unobtrusive": "4.0.0", "popper.js": "1.16.1" }, "devDependencies": { - "autoprefixer": "10.4.4", - "laravel-mix": "6.0.43", + "autoprefixer": "10.4.16", + "laravel-mix": "6.0.49", "laravel-mix-purgecss": "6.0.0", - "postcss": "8.4.12", + "postcss": "8.4.33", "resolve-url-loader": "5.0.0", - "sass": "1.49.9", - "sass-loader": "12.6.0", - "ts-loader": "9.2.8", - "typescript": "4.6.2" + "sass": "1.69.7", + "sass-loader": "13.3.3", + "ts-loader": "9.5.1", + "typescript": "5.3.3" } } From e74f0ee2ed90ad4c4858630b91daee8bfab24ae5 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte Date: Fri, 5 Jan 2024 16:46:22 +0100 Subject: [PATCH 3/9] update license --- EthernaSSO.sln | 1 - EthernaSSO.sln.DotSettings | 14 ++++++ EthernaSSO.sln.licenseheader | 47 ------------------- .../Events/EntityCreatedEvent.cs | 8 ++-- .../Events/EntityDeletedEvent.cs | 8 ++-- .../Events/UserLoginFailureEvent.cs | 8 ++-- .../Events/UserLoginSuccessEvent.cs | 8 ++-- .../Events/UserLogoutSuccessEvent.cs | 8 ++-- src/EthernaSSO.Domain/GlobalSuppressions.cs | 8 ++-- .../Helpers/UsernameHelper.cs | 8 ++-- src/EthernaSSO.Domain/ISharedDbContext.cs | 8 ++-- src/EthernaSSO.Domain/ISsoDbContext.cs | 8 ++-- .../Models/AlphaPassRequest.cs | 8 ++-- src/EthernaSSO.Domain/Models/ApiKey.cs | 8 ++-- src/EthernaSSO.Domain/Models/DailyStats.cs | 8 ++-- .../Models/EntityModelBase.cs | 8 ++-- src/EthernaSSO.Domain/Models/Invitation.cs | 8 ++-- src/EthernaSSO.Domain/Models/ModelBase.cs | 8 ++-- src/EthernaSSO.Domain/Models/Role.cs | 8 ++-- .../Models/UserAgg/UserClaim.cs | 8 ++-- .../Models/UserAgg/UserSharedInfo.cs | 8 ++-- src/EthernaSSO.Domain/Models/UserBase.cs | 8 ++-- src/EthernaSSO.Domain/Models/UserWeb2.cs | 8 ++-- src/EthernaSSO.Domain/Models/UserWeb3.cs | 8 ++-- .../Models/Web3LoginToken.cs | 8 ++-- .../Properties/AssemblyInfo.cs | 8 ++-- .../IEventDispatcherDbContext.cs | 8 ++-- .../ModelMaps/Shared/ModelBaseMap.cs | 8 ++-- .../ModelMaps/Shared/UserSharedInfoMap.cs | 8 ++-- .../ModelMaps/Sso/AlphaPassRequestMap.cs | 8 ++-- .../ModelMaps/Sso/ApiKeyMap.cs | 8 ++-- .../ModelMaps/Sso/DailyStatsMap.cs | 8 ++-- .../ModelMaps/Sso/InvitationMap.cs | 8 ++-- .../ModelMaps/Sso/ModelBaseMap.cs | 8 ++-- .../ModelMaps/Sso/RoleMap.cs | 8 ++-- .../ModelMaps/Sso/UserClaimMap.cs | 8 ++-- .../ModelMaps/Sso/UserMap.cs | 8 ++-- .../ModelMaps/Sso/Web3LoginTokenMap.cs | 8 ++-- .../Properties/AssemblyInfo.cs | 8 ++-- .../Repositories/DomainRepository.cs | 8 ++-- .../Settings/SsoDbSeedSettings.cs | 8 ++-- src/EthernaSSO.Persistence/SharedDbContext.cs | 8 ++-- src/EthernaSSO.Persistence/SsoDbContext.cs | 8 ++-- .../Domain/IUserService.cs | 8 ++-- .../Domain/IWeb3AuthnService.cs | 8 ++-- src/EthernaSSO.Services/Domain/UserService.cs | 8 ++-- .../Domain/Web3AuthnService.cs | 8 ++-- ...nFailureThenNotifyIdentityServerHandler.cs | 8 ++-- ...nSuccessThenNotifyIdentityServerHandler.cs | 8 ++-- ...ccessThenUpdateLastLoginDatetimeHandler.cs | 8 ++-- ...tSuccessThenNotifyIdentityServerHandler.cs | 8 ++-- .../Properties/AssemblyInfo.cs | 8 ++-- .../ServiceCollectionExtensions.cs | 8 ++-- .../Settings/ApplicationSettings.cs | 8 ++-- .../Tasks/CompileDailyStatsTask.cs | 8 ++-- .../Tasks/DeleteOldInvitationsTask.cs | 8 ++-- .../Tasks/ICompileDailyStatsTask.cs | 8 ++-- .../Tasks/IDeleteOldInvitationsTask.cs | 8 ++-- .../Tasks/IProcessAlphaPassRequestsTask.cs | 8 ++-- .../Tasks/IWeb3LoginTokensCleanTask.cs | 8 ++-- .../Tasks/ProcessAlphaPassRequestsTask.cs | 8 ++-- src/EthernaSSO.Services/Tasks/Queues.cs | 8 ++-- .../Tasks/Web3LoginTokensCleanTask.cs | 8 ++-- .../Views/Emails/AlphaPassLetter.cshtml | 2 +- .../Views/Emails/AlphaPassLetter.cshtml.cs | 8 ++-- .../AlphaPassRequestEmailConfirmation.cshtml | 2 +- ...lphaPassRequestEmailConfirmation.cshtml.cs | 8 ++-- .../Views/Emails/ConfirmEmailChange.cshtml | 2 +- .../Views/Emails/ConfirmEmailChange.cshtml.cs | 8 ++-- .../Views/Emails/InvitationLetter.cshtml | 2 +- .../Views/Emails/InvitationLetter.cshtml.cs | 8 ++-- .../Views/Emails/ResetPassword.cshtml | 2 +- .../Views/Emails/ResetPassword.cshtml.cs | 8 ++-- .../Views/Emails/TotpConfirmEmail.cshtml | 2 +- .../Views/Emails/TotpConfirmEmail.cshtml.cs | 8 ++-- .../Views/Emails/_ViewImports.cshtml | 2 +- .../Views/Emails/_ViewStart.cshtml | 2 +- .../Admin/Pages/IdentityServer/Index.cshtml | 2 +- .../Pages/IdentityServer/Index.cshtml.cs | 8 ++-- .../Admin/Pages/IdentityServer/Role.cshtml | 2 +- .../Admin/Pages/IdentityServer/Role.cshtml.cs | 8 ++-- .../Pages/IdentityServer/RoleDelete.cshtml | 2 +- .../Pages/IdentityServer/RoleDelete.cshtml.cs | 8 ++-- .../Pages/IdentityServer/RoleUsers.cshtml | 2 +- .../Pages/IdentityServer/RoleUsers.cshtml.cs | 8 ++-- .../Admin/Pages/IdentityServer/Roles.cshtml | 2 +- .../Pages/IdentityServer/Roles.cshtml.cs | 8 ++-- .../Admin/Pages/IdentityServer/User.cshtml | 2 +- .../Admin/Pages/IdentityServer/User.cshtml.cs | 8 ++-- .../IdentityServer/UserChangePassword.cshtml | 2 +- .../UserChangePassword.cshtml.cs | 8 ++-- .../Pages/IdentityServer/UserClaims.cshtml | 2 +- .../Pages/IdentityServer/UserClaims.cshtml.cs | 8 ++-- .../IdentityServer/UserClaimsDelete.cshtml | 2 +- .../IdentityServer/UserClaimsDelete.cshtml.cs | 8 ++-- .../Pages/IdentityServer/UserDelete.cshtml | 2 +- .../Pages/IdentityServer/UserDelete.cshtml.cs | 8 ++-- .../Pages/IdentityServer/UserRoles.cshtml | 2 +- .../Pages/IdentityServer/UserRoles.cshtml.cs | 8 ++-- .../IdentityServer/UserRolesDelete.cshtml | 2 +- .../IdentityServer/UserRolesDelete.cshtml.cs | 8 ++-- .../Admin/Pages/IdentityServer/Users.cshtml | 2 +- .../Pages/IdentityServer/Users.cshtml.cs | 8 ++-- src/EthernaSSO/Areas/Admin/Pages/Index.cshtml | 2 +- .../Areas/Admin/Pages/Index.cshtml.cs | 8 ++-- .../Admin/Pages/Invitations/Index.cshtml | 2 +- .../Admin/Pages/Invitations/Index.cshtml.cs | 8 ++-- .../Pages/_ValidationScriptsPartial.cshtml | 2 +- .../Areas/Admin/Pages/_ViewImports.cshtml | 2 +- .../Areas/Admin/Pages/_ViewStart.cshtml | 2 +- .../AlphaPass/Pages/ConfirmRequest.cshtml | 2 +- .../AlphaPass/Pages/ConfirmRequest.cshtml.cs | 8 ++-- .../Areas/AlphaPass/Pages/Index.cshtml | 2 +- .../Areas/AlphaPass/Pages/Index.cshtml.cs | 8 ++-- .../Pages/_ValidationScriptsPartial.cshtml | 2 +- .../Areas/AlphaPass/Pages/_ViewImports.cshtml | 2 +- .../Areas/AlphaPass/Pages/_ViewStart.cshtml | 2 +- src/EthernaSSO/Areas/Api/ApiHostingStartup.cs | 8 ++-- .../Api/Controllers/IdentityController.cs | 8 ++-- .../Controllers/ServiceInteractController.cs | 8 ++-- .../Areas/Api/DtoModels/PrivateUserDto.cs | 8 ++-- .../Areas/Api/DtoModels/UserContactInfoDto.cs | 8 ++-- src/EthernaSSO/Areas/Api/DtoModels/UserDto.cs | 8 ++-- .../Services/IIdentityControllerService.cs | 8 ++-- .../IServiceInteractControllerService.cs | 8 ++-- .../Api/Services/IdentityControllerService.cs | 8 ++-- .../ServiceInteractControllerService.cs | 8 ++-- .../Pages/Account/ConfirmEmailChange.cshtml | 2 +- .../Account/ConfirmEmailChange.cshtml.cs | 8 ++-- .../Pages/Account/ForgotPassword.cshtml | 2 +- .../Pages/Account/ForgotPassword.cshtml.cs | 8 ++-- .../Account/ForgotPasswordConfirmation.cshtml | 2 +- .../ForgotPasswordConfirmation.cshtml.cs | 8 ++-- .../Identity/Pages/Account/Lockout.cshtml | 2 +- .../Identity/Pages/Account/Lockout.cshtml.cs | 8 ++-- .../Identity/Pages/Account/LoggedOut.cshtml | 2 +- .../Pages/Account/LoggedOut.cshtml.cs | 8 ++-- .../Areas/Identity/Pages/Account/Login.cshtml | 2 +- .../Identity/Pages/Account/Login.cshtml.cs | 8 ++-- .../Pages/Account/LoginWith2fa.cshtml | 2 +- .../Pages/Account/LoginWith2fa.cshtml.cs | 8 ++-- .../Account/LoginWithRecoveryCode.cshtml | 2 +- .../Account/LoginWithRecoveryCode.cshtml.cs | 8 ++-- .../Identity/Pages/Account/Logout.cshtml | 2 +- .../Identity/Pages/Account/Logout.cshtml.cs | 8 ++-- .../Pages/Account/Manage/ApiKeyCreate.cshtml | 2 +- .../Account/Manage/ApiKeyCreate.cshtml.cs | 8 ++-- .../Pages/Account/Manage/ApiKeyDelete.cshtml | 2 +- .../Account/Manage/ApiKeyDelete.cshtml.cs | 8 ++-- .../Pages/Account/Manage/ApiKeys.cshtml | 2 +- .../Pages/Account/Manage/ApiKeys.cshtml.cs | 8 ++-- .../Account/Manage/ChangePassword.cshtml | 2 +- .../Account/Manage/ChangePassword.cshtml.cs | 8 ++-- .../Account/Manage/DeletePersonalData.cshtml | 2 +- .../Manage/DeletePersonalData.cshtml.cs | 8 ++-- .../Pages/Account/Manage/Disable2fa.cshtml | 2 +- .../Pages/Account/Manage/Disable2fa.cshtml.cs | 8 ++-- .../Manage/DownloadPersonalData.cshtml | 2 +- .../Manage/DownloadPersonalData.cshtml.cs | 8 ++-- .../Pages/Account/Manage/Email.cshtml | 2 +- .../Pages/Account/Manage/Email.cshtml.cs | 8 ++-- .../Account/Manage/EnableAuthenticator.cshtml | 2 +- .../Manage/EnableAuthenticator.cshtml.cs | 8 ++-- .../Manage/GenerateRecoveryCodes.cshtml | 2 +- .../Manage/GenerateRecoveryCodes.cshtml.cs | 8 ++-- .../Pages/Account/Manage/Index.cshtml | 2 +- .../Pages/Account/Manage/Index.cshtml.cs | 8 ++-- .../Pages/Account/Manage/ManageNavPages.cs | 8 ++-- .../Pages/Account/Manage/PersonalData.cshtml | 2 +- .../Account/Manage/PersonalData.cshtml.cs | 8 ++-- .../Account/Manage/ResetAuthenticator.cshtml | 2 +- .../Manage/ResetAuthenticator.cshtml.cs | 8 ++-- .../Pages/Account/Manage/SetPassword.cshtml | 2 +- .../Account/Manage/SetPassword.cshtml.cs | 8 ++-- .../Account/Manage/ShowRecoveryCodes.cshtml | 2 +- .../Manage/ShowRecoveryCodes.cshtml.cs | 8 ++-- .../Manage/TwoFactorAuthentication.cshtml | 2 +- .../Manage/TwoFactorAuthentication.cshtml.cs | 8 ++-- .../Pages/Account/Manage/Web3Login.cshtml | 2 +- .../Pages/Account/Manage/Web3Login.cshtml.cs | 8 ++-- .../Pages/Account/Manage/Web3Upgrade.cshtml | 2 +- .../Account/Manage/Web3Upgrade.cshtml.cs | 8 ++-- .../Pages/Account/Manage/_Layout.cshtml | 2 +- .../Pages/Account/Manage/_ManageNav.cshtml | 2 +- .../Pages/Account/Manage/_ViewImports.cshtml | 2 +- .../Pages/Account/Manage/_ViewStart.cshtml | 2 +- .../Identity/Pages/Account/Register.cshtml | 2 +- .../Identity/Pages/Account/Register.cshtml.cs | 8 ++-- .../Pages/Account/ResetPassword.cshtml | 2 +- .../Pages/Account/ResetPassword.cshtml.cs | 8 ++-- .../Account/ResetPasswordConfirmation.cshtml | 2 +- .../ResetPasswordConfirmation.cshtml.cs | 8 ++-- .../Pages/Account/SetVerifiedEmail.cshtml | 2 +- .../Pages/Account/SetVerifiedEmail.cshtml.cs | 8 ++-- .../Pages/Account/SsoExitPageModelBase.cs | 8 ++-- .../Identity/Pages/Account/Web3Login.cshtml | 2 +- .../Pages/Account/Web3Login.cshtml.cs | 8 ++-- .../Pages/Account/_ViewImports.cshtml | 2 +- .../Pages/Account/_Web3LoginPartial.cshtml | 2 +- .../Pages/Account/_Web3LoginPartial.cshtml.cs | 8 ++-- .../Pages/_ValidationScriptsPartial.cshtml | 2 +- .../Areas/Identity/Pages/_ViewImports.cshtml | 2 +- .../Areas/Identity/Pages/_ViewStart.cshtml | 2 +- ...ideUnauthorizedExceptionFilterAttribute.cs | 8 ++-- .../SimpleExceptionFilterAttribute.cs | 8 ++-- .../DenyBannedAuthorizationHandler.cs | 8 ++-- .../DenyBannedAuthorizationRequirement.cs | 8 ++-- src/EthernaSSO/Configs/CommonConsts.cs | 8 ++-- .../Configs/Hangfire/AdminAuthFilter.cs | 8 ++-- .../Configs/Identity/CustomUserManager.cs | 8 ++-- .../Configs/Identity/CustomUserValidator.cs | 8 ++-- src/EthernaSSO/Configs/Identity/RoleStore.cs | 8 ++-- src/EthernaSSO/Configs/Identity/UserStore.cs | 8 ++-- .../Configs/IdentityServer/ApiKeyValidator.cs | 8 ++-- .../Configs/IdentityServer/IdServerConfig.cs | 8 ++-- .../Configs/MongODM/AdminAuthFilter.cs | 8 ++-- .../Swagger/ConfigureSwaggerOptions.cs | 8 ++-- .../Configs/Swagger/SwaggerDefaultValues.cs | 8 ++-- .../SystemStore/PersistedGrantRepository.cs | 8 ++-- .../SystemStore/SigningKeyRepository.cs | 8 ++-- .../Configs/SystemStore/XmlRepository.cs | 8 ++-- .../Extensions/ClientStoreExtensions.cs | 8 ++-- .../DataProtectionBuilderExtensions.cs | 8 ++-- src/EthernaSSO/Extensions/LoggerExtensions.cs | 8 ++-- src/EthernaSSO/Pages/Index.cshtml | 2 +- src/EthernaSSO/Pages/Index.cshtml.cs | 8 ++-- src/EthernaSSO/Pages/Redirect.cshtml | 2 +- src/EthernaSSO/Pages/Redirect.cshtml.cs | 8 ++-- src/EthernaSSO/Pages/Shared/_Layout.cshtml | 2 +- .../Pages/Shared/_LoginPartial.cshtml | 2 +- .../Shared/_ValidationScriptsPartial.cshtml | 2 +- src/EthernaSSO/Pages/_ViewImports.cshtml | 2 +- src/EthernaSSO/Pages/_ViewStart.cshtml | 2 +- src/EthernaSSO/Program.cs | 8 ++-- src/EthernaSSO/Properties/AssemblyInfo.cs | 8 ++-- src/EthernaSSO/Startup.cs | 8 ++-- .../Helpers/DbContextMockHelper.cs | 8 ++-- .../Helpers/DeserializationTestElement.cs | 8 ++-- .../Helpers/EntityModelEqualityComparer.cs | 8 ++-- .../SharedDbContextDeserializationTest.cs | 8 ++-- .../SsoDbContextDeserializationTest.cs | 8 ++-- .../Properties/AssemblyInfo.cs | 8 ++-- 242 files changed, 733 insertions(+), 767 deletions(-) create mode 100644 EthernaSSO.sln.DotSettings delete mode 100644 EthernaSSO.sln.licenseheader diff --git a/EthernaSSO.sln b/EthernaSSO.sln index ab938eed..f414ead1 100644 --- a/EthernaSSO.sln +++ b/EthernaSSO.sln @@ -25,7 +25,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution .editorconfig = .editorconfig .gitignore = .gitignore Dockerfile = Dockerfile - EthernaSSO.sln.licenseheader = EthernaSSO.sln.licenseheader LICENSE = LICENSE nuget.config = nuget.config README.md = README.md diff --git a/EthernaSSO.sln.DotSettings b/EthernaSSO.sln.DotSettings new file mode 100644 index 00000000..72a4e47d --- /dev/null +++ b/EthernaSSO.sln.DotSettings @@ -0,0 +1,14 @@ + + Copyright 2021-present Etherna Sa + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/EthernaSSO.sln.licenseheader b/EthernaSSO.sln.licenseheader deleted file mode 100644 index 6c2b7441..00000000 --- a/EthernaSSO.sln.licenseheader +++ /dev/null @@ -1,47 +0,0 @@ -extensions: designer.cs generated.cs -extensions: .cs .cpp .h -// Copyright 2021-present Etherna Sagl -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -extensions: .cshtml -@* * Copyright 2021-present Etherna Sagl - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. -*@ - -extensions: .xml .config .xsd - diff --git a/src/EthernaSSO.Domain/Events/EntityCreatedEvent.cs b/src/EthernaSSO.Domain/Events/EntityCreatedEvent.cs index dd68a465..0628eb96 100644 --- a/src/EthernaSSO.Domain/Events/EntityCreatedEvent.cs +++ b/src/EthernaSSO.Domain/Events/EntityCreatedEvent.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Events/EntityDeletedEvent.cs b/src/EthernaSSO.Domain/Events/EntityDeletedEvent.cs index f444edc2..7357a81f 100644 --- a/src/EthernaSSO.Domain/Events/EntityDeletedEvent.cs +++ b/src/EthernaSSO.Domain/Events/EntityDeletedEvent.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Events/UserLoginFailureEvent.cs b/src/EthernaSSO.Domain/Events/UserLoginFailureEvent.cs index 6005bbf6..ea7164c0 100644 --- a/src/EthernaSSO.Domain/Events/UserLoginFailureEvent.cs +++ b/src/EthernaSSO.Domain/Events/UserLoginFailureEvent.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Events/UserLoginSuccessEvent.cs b/src/EthernaSSO.Domain/Events/UserLoginSuccessEvent.cs index a6ef9a5a..e16a84a9 100644 --- a/src/EthernaSSO.Domain/Events/UserLoginSuccessEvent.cs +++ b/src/EthernaSSO.Domain/Events/UserLoginSuccessEvent.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Events/UserLogoutSuccessEvent.cs b/src/EthernaSSO.Domain/Events/UserLogoutSuccessEvent.cs index bcad82d0..f5429122 100644 --- a/src/EthernaSSO.Domain/Events/UserLogoutSuccessEvent.cs +++ b/src/EthernaSSO.Domain/Events/UserLogoutSuccessEvent.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/GlobalSuppressions.cs b/src/EthernaSSO.Domain/GlobalSuppressions.cs index 006cc51c..15bf95c6 100644 --- a/src/EthernaSSO.Domain/GlobalSuppressions.cs +++ b/src/EthernaSSO.Domain/GlobalSuppressions.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Helpers/UsernameHelper.cs b/src/EthernaSSO.Domain/Helpers/UsernameHelper.cs index 33127ee5..d0ffdf0a 100644 --- a/src/EthernaSSO.Domain/Helpers/UsernameHelper.cs +++ b/src/EthernaSSO.Domain/Helpers/UsernameHelper.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/ISharedDbContext.cs b/src/EthernaSSO.Domain/ISharedDbContext.cs index 89c5a028..78ab32d2 100644 --- a/src/EthernaSSO.Domain/ISharedDbContext.cs +++ b/src/EthernaSSO.Domain/ISharedDbContext.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/ISsoDbContext.cs b/src/EthernaSSO.Domain/ISsoDbContext.cs index 8b04b539..c770f1ff 100644 --- a/src/EthernaSSO.Domain/ISsoDbContext.cs +++ b/src/EthernaSSO.Domain/ISsoDbContext.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/AlphaPassRequest.cs b/src/EthernaSSO.Domain/Models/AlphaPassRequest.cs index 56da3e98..36702f96 100644 --- a/src/EthernaSSO.Domain/Models/AlphaPassRequest.cs +++ b/src/EthernaSSO.Domain/Models/AlphaPassRequest.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/ApiKey.cs b/src/EthernaSSO.Domain/Models/ApiKey.cs index 8b9d49a5..0afe3b55 100644 --- a/src/EthernaSSO.Domain/Models/ApiKey.cs +++ b/src/EthernaSSO.Domain/Models/ApiKey.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/DailyStats.cs b/src/EthernaSSO.Domain/Models/DailyStats.cs index be291768..1d5e43e1 100644 --- a/src/EthernaSSO.Domain/Models/DailyStats.cs +++ b/src/EthernaSSO.Domain/Models/DailyStats.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/EntityModelBase.cs b/src/EthernaSSO.Domain/Models/EntityModelBase.cs index 2fa74737..69f522aa 100644 --- a/src/EthernaSSO.Domain/Models/EntityModelBase.cs +++ b/src/EthernaSSO.Domain/Models/EntityModelBase.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/Invitation.cs b/src/EthernaSSO.Domain/Models/Invitation.cs index 68d5b65e..bd7aeabe 100644 --- a/src/EthernaSSO.Domain/Models/Invitation.cs +++ b/src/EthernaSSO.Domain/Models/Invitation.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/ModelBase.cs b/src/EthernaSSO.Domain/Models/ModelBase.cs index 198449dc..06a26889 100644 --- a/src/EthernaSSO.Domain/Models/ModelBase.cs +++ b/src/EthernaSSO.Domain/Models/ModelBase.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/Role.cs b/src/EthernaSSO.Domain/Models/Role.cs index 6d3f1b79..b447213e 100644 --- a/src/EthernaSSO.Domain/Models/Role.cs +++ b/src/EthernaSSO.Domain/Models/Role.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/UserAgg/UserClaim.cs b/src/EthernaSSO.Domain/Models/UserAgg/UserClaim.cs index af00a8b7..83f16fc5 100644 --- a/src/EthernaSSO.Domain/Models/UserAgg/UserClaim.cs +++ b/src/EthernaSSO.Domain/Models/UserAgg/UserClaim.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/UserAgg/UserSharedInfo.cs b/src/EthernaSSO.Domain/Models/UserAgg/UserSharedInfo.cs index d781348f..baa5fe89 100644 --- a/src/EthernaSSO.Domain/Models/UserAgg/UserSharedInfo.cs +++ b/src/EthernaSSO.Domain/Models/UserAgg/UserSharedInfo.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/UserBase.cs b/src/EthernaSSO.Domain/Models/UserBase.cs index c5fa1ab0..a8d8cfc5 100644 --- a/src/EthernaSSO.Domain/Models/UserBase.cs +++ b/src/EthernaSSO.Domain/Models/UserBase.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/UserWeb2.cs b/src/EthernaSSO.Domain/Models/UserWeb2.cs index b1b7872d..231327d3 100644 --- a/src/EthernaSSO.Domain/Models/UserWeb2.cs +++ b/src/EthernaSSO.Domain/Models/UserWeb2.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/UserWeb3.cs b/src/EthernaSSO.Domain/Models/UserWeb3.cs index 142188b4..e586cbab 100644 --- a/src/EthernaSSO.Domain/Models/UserWeb3.cs +++ b/src/EthernaSSO.Domain/Models/UserWeb3.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Models/Web3LoginToken.cs b/src/EthernaSSO.Domain/Models/Web3LoginToken.cs index a0b0ca9d..14091747 100644 --- a/src/EthernaSSO.Domain/Models/Web3LoginToken.cs +++ b/src/EthernaSSO.Domain/Models/Web3LoginToken.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Domain/Properties/AssemblyInfo.cs b/src/EthernaSSO.Domain/Properties/AssemblyInfo.cs index 59b4fd6f..3a9a260d 100644 --- a/src/EthernaSSO.Domain/Properties/AssemblyInfo.cs +++ b/src/EthernaSSO.Domain/Properties/AssemblyInfo.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/IEventDispatcherDbContext.cs b/src/EthernaSSO.Persistence/IEventDispatcherDbContext.cs index 5d47586b..b5f366b1 100644 --- a/src/EthernaSSO.Persistence/IEventDispatcherDbContext.cs +++ b/src/EthernaSSO.Persistence/IEventDispatcherDbContext.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Shared/ModelBaseMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Shared/ModelBaseMap.cs index d948d2e7..05b149d2 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Shared/ModelBaseMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Shared/ModelBaseMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Shared/UserSharedInfoMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Shared/UserSharedInfoMap.cs index 99531f3f..14218a79 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Shared/UserSharedInfoMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Shared/UserSharedInfoMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Sso/AlphaPassRequestMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Sso/AlphaPassRequestMap.cs index 7bc7f35f..2eed4a0e 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Sso/AlphaPassRequestMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Sso/AlphaPassRequestMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Sso/ApiKeyMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Sso/ApiKeyMap.cs index d0a3de76..76ab3c51 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Sso/ApiKeyMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Sso/ApiKeyMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Sso/DailyStatsMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Sso/DailyStatsMap.cs index 560e5c8d..e6c288e0 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Sso/DailyStatsMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Sso/DailyStatsMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Sso/InvitationMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Sso/InvitationMap.cs index 9c7f4c4c..153002a5 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Sso/InvitationMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Sso/InvitationMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Sso/ModelBaseMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Sso/ModelBaseMap.cs index 01adedfb..9bac0bc9 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Sso/ModelBaseMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Sso/ModelBaseMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Sso/RoleMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Sso/RoleMap.cs index ff4dfe5d..ee674061 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Sso/RoleMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Sso/RoleMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Sso/UserClaimMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Sso/UserClaimMap.cs index 79eb73be..bbd5ccda 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Sso/UserClaimMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Sso/UserClaimMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Sso/UserMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Sso/UserMap.cs index bc62ad6d..204eaaf8 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Sso/UserMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Sso/UserMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/ModelMaps/Sso/Web3LoginTokenMap.cs b/src/EthernaSSO.Persistence/ModelMaps/Sso/Web3LoginTokenMap.cs index 6bf566ea..8fbb1fbe 100644 --- a/src/EthernaSSO.Persistence/ModelMaps/Sso/Web3LoginTokenMap.cs +++ b/src/EthernaSSO.Persistence/ModelMaps/Sso/Web3LoginTokenMap.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/Properties/AssemblyInfo.cs b/src/EthernaSSO.Persistence/Properties/AssemblyInfo.cs index 9a314b22..f5323b8a 100644 --- a/src/EthernaSSO.Persistence/Properties/AssemblyInfo.cs +++ b/src/EthernaSSO.Persistence/Properties/AssemblyInfo.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/Repositories/DomainRepository.cs b/src/EthernaSSO.Persistence/Repositories/DomainRepository.cs index 36180f8b..becb5d72 100644 --- a/src/EthernaSSO.Persistence/Repositories/DomainRepository.cs +++ b/src/EthernaSSO.Persistence/Repositories/DomainRepository.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/Settings/SsoDbSeedSettings.cs b/src/EthernaSSO.Persistence/Settings/SsoDbSeedSettings.cs index 9d705c5d..ca0cf3ef 100644 --- a/src/EthernaSSO.Persistence/Settings/SsoDbSeedSettings.cs +++ b/src/EthernaSSO.Persistence/Settings/SsoDbSeedSettings.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/SharedDbContext.cs b/src/EthernaSSO.Persistence/SharedDbContext.cs index d46b497c..16dc3787 100644 --- a/src/EthernaSSO.Persistence/SharedDbContext.cs +++ b/src/EthernaSSO.Persistence/SharedDbContext.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Persistence/SsoDbContext.cs b/src/EthernaSSO.Persistence/SsoDbContext.cs index 47af0cf0..9293d068 100644 --- a/src/EthernaSSO.Persistence/SsoDbContext.cs +++ b/src/EthernaSSO.Persistence/SsoDbContext.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Domain/IUserService.cs b/src/EthernaSSO.Services/Domain/IUserService.cs index 614d5b1b..1ecad124 100644 --- a/src/EthernaSSO.Services/Domain/IUserService.cs +++ b/src/EthernaSSO.Services/Domain/IUserService.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Domain/IWeb3AuthnService.cs b/src/EthernaSSO.Services/Domain/IWeb3AuthnService.cs index c1ce292f..565ccf6b 100644 --- a/src/EthernaSSO.Services/Domain/IWeb3AuthnService.cs +++ b/src/EthernaSSO.Services/Domain/IWeb3AuthnService.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Domain/UserService.cs b/src/EthernaSSO.Services/Domain/UserService.cs index c6ed05f3..9479e473 100644 --- a/src/EthernaSSO.Services/Domain/UserService.cs +++ b/src/EthernaSSO.Services/Domain/UserService.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Domain/Web3AuthnService.cs b/src/EthernaSSO.Services/Domain/Web3AuthnService.cs index 89aa763b..4d71cc0e 100644 --- a/src/EthernaSSO.Services/Domain/Web3AuthnService.cs +++ b/src/EthernaSSO.Services/Domain/Web3AuthnService.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/EventHandlers/OnUserLoginFailureThenNotifyIdentityServerHandler.cs b/src/EthernaSSO.Services/EventHandlers/OnUserLoginFailureThenNotifyIdentityServerHandler.cs index 4ae60bf8..2fffb5fb 100644 --- a/src/EthernaSSO.Services/EventHandlers/OnUserLoginFailureThenNotifyIdentityServerHandler.cs +++ b/src/EthernaSSO.Services/EventHandlers/OnUserLoginFailureThenNotifyIdentityServerHandler.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/EventHandlers/OnUserLoginSuccessThenNotifyIdentityServerHandler.cs b/src/EthernaSSO.Services/EventHandlers/OnUserLoginSuccessThenNotifyIdentityServerHandler.cs index ce327f29..cd8678d2 100644 --- a/src/EthernaSSO.Services/EventHandlers/OnUserLoginSuccessThenNotifyIdentityServerHandler.cs +++ b/src/EthernaSSO.Services/EventHandlers/OnUserLoginSuccessThenNotifyIdentityServerHandler.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/EventHandlers/OnUserLoginSuccessThenUpdateLastLoginDatetimeHandler.cs b/src/EthernaSSO.Services/EventHandlers/OnUserLoginSuccessThenUpdateLastLoginDatetimeHandler.cs index e6aec734..29147c20 100644 --- a/src/EthernaSSO.Services/EventHandlers/OnUserLoginSuccessThenUpdateLastLoginDatetimeHandler.cs +++ b/src/EthernaSSO.Services/EventHandlers/OnUserLoginSuccessThenUpdateLastLoginDatetimeHandler.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/EventHandlers/OnUserLogoutSuccessThenNotifyIdentityServerHandler.cs b/src/EthernaSSO.Services/EventHandlers/OnUserLogoutSuccessThenNotifyIdentityServerHandler.cs index 964688d7..5991d1c7 100644 --- a/src/EthernaSSO.Services/EventHandlers/OnUserLogoutSuccessThenNotifyIdentityServerHandler.cs +++ b/src/EthernaSSO.Services/EventHandlers/OnUserLogoutSuccessThenNotifyIdentityServerHandler.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Properties/AssemblyInfo.cs b/src/EthernaSSO.Services/Properties/AssemblyInfo.cs index 9a314b22..f5323b8a 100644 --- a/src/EthernaSSO.Services/Properties/AssemblyInfo.cs +++ b/src/EthernaSSO.Services/Properties/AssemblyInfo.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/ServiceCollectionExtensions.cs b/src/EthernaSSO.Services/ServiceCollectionExtensions.cs index e6c22126..aeab8dfb 100644 --- a/src/EthernaSSO.Services/ServiceCollectionExtensions.cs +++ b/src/EthernaSSO.Services/ServiceCollectionExtensions.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Settings/ApplicationSettings.cs b/src/EthernaSSO.Services/Settings/ApplicationSettings.cs index 1973b3f2..bd50e391 100644 --- a/src/EthernaSSO.Services/Settings/ApplicationSettings.cs +++ b/src/EthernaSSO.Services/Settings/ApplicationSettings.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Tasks/CompileDailyStatsTask.cs b/src/EthernaSSO.Services/Tasks/CompileDailyStatsTask.cs index 8eed4179..b5cabd12 100644 --- a/src/EthernaSSO.Services/Tasks/CompileDailyStatsTask.cs +++ b/src/EthernaSSO.Services/Tasks/CompileDailyStatsTask.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Tasks/DeleteOldInvitationsTask.cs b/src/EthernaSSO.Services/Tasks/DeleteOldInvitationsTask.cs index 0d8c317f..d1889774 100644 --- a/src/EthernaSSO.Services/Tasks/DeleteOldInvitationsTask.cs +++ b/src/EthernaSSO.Services/Tasks/DeleteOldInvitationsTask.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Tasks/ICompileDailyStatsTask.cs b/src/EthernaSSO.Services/Tasks/ICompileDailyStatsTask.cs index 4c141dda..763561a5 100644 --- a/src/EthernaSSO.Services/Tasks/ICompileDailyStatsTask.cs +++ b/src/EthernaSSO.Services/Tasks/ICompileDailyStatsTask.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Tasks/IDeleteOldInvitationsTask.cs b/src/EthernaSSO.Services/Tasks/IDeleteOldInvitationsTask.cs index 83c65c06..c35ddc6d 100644 --- a/src/EthernaSSO.Services/Tasks/IDeleteOldInvitationsTask.cs +++ b/src/EthernaSSO.Services/Tasks/IDeleteOldInvitationsTask.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Tasks/IProcessAlphaPassRequestsTask.cs b/src/EthernaSSO.Services/Tasks/IProcessAlphaPassRequestsTask.cs index c82b76ca..f7d10530 100644 --- a/src/EthernaSSO.Services/Tasks/IProcessAlphaPassRequestsTask.cs +++ b/src/EthernaSSO.Services/Tasks/IProcessAlphaPassRequestsTask.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Tasks/IWeb3LoginTokensCleanTask.cs b/src/EthernaSSO.Services/Tasks/IWeb3LoginTokensCleanTask.cs index 3037ba1c..ba4a5974 100644 --- a/src/EthernaSSO.Services/Tasks/IWeb3LoginTokensCleanTask.cs +++ b/src/EthernaSSO.Services/Tasks/IWeb3LoginTokensCleanTask.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Tasks/ProcessAlphaPassRequestsTask.cs b/src/EthernaSSO.Services/Tasks/ProcessAlphaPassRequestsTask.cs index 47eac623..96ec4bd4 100644 --- a/src/EthernaSSO.Services/Tasks/ProcessAlphaPassRequestsTask.cs +++ b/src/EthernaSSO.Services/Tasks/ProcessAlphaPassRequestsTask.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Tasks/Queues.cs b/src/EthernaSSO.Services/Tasks/Queues.cs index 20de0cf8..20dda828 100644 --- a/src/EthernaSSO.Services/Tasks/Queues.cs +++ b/src/EthernaSSO.Services/Tasks/Queues.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Tasks/Web3LoginTokensCleanTask.cs b/src/EthernaSSO.Services/Tasks/Web3LoginTokensCleanTask.cs index e8ca30f9..6cd96ff3 100644 --- a/src/EthernaSSO.Services/Tasks/Web3LoginTokensCleanTask.cs +++ b/src/EthernaSSO.Services/Tasks/Web3LoginTokensCleanTask.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Views/Emails/AlphaPassLetter.cshtml b/src/EthernaSSO.Services/Views/Emails/AlphaPassLetter.cshtml index 89c0e763..cb55e3ea 100644 --- a/src/EthernaSSO.Services/Views/Emails/AlphaPassLetter.cshtml +++ b/src/EthernaSSO.Services/Views/Emails/AlphaPassLetter.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO.Services/Views/Emails/AlphaPassLetter.cshtml.cs b/src/EthernaSSO.Services/Views/Emails/AlphaPassLetter.cshtml.cs index dc1a3930..98a4c2d2 100644 --- a/src/EthernaSSO.Services/Views/Emails/AlphaPassLetter.cshtml.cs +++ b/src/EthernaSSO.Services/Views/Emails/AlphaPassLetter.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Views/Emails/AlphaPassRequestEmailConfirmation.cshtml b/src/EthernaSSO.Services/Views/Emails/AlphaPassRequestEmailConfirmation.cshtml index 2b85975c..6d6ab52c 100644 --- a/src/EthernaSSO.Services/Views/Emails/AlphaPassRequestEmailConfirmation.cshtml +++ b/src/EthernaSSO.Services/Views/Emails/AlphaPassRequestEmailConfirmation.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO.Services/Views/Emails/AlphaPassRequestEmailConfirmation.cshtml.cs b/src/EthernaSSO.Services/Views/Emails/AlphaPassRequestEmailConfirmation.cshtml.cs index 570e4978..bc39180c 100644 --- a/src/EthernaSSO.Services/Views/Emails/AlphaPassRequestEmailConfirmation.cshtml.cs +++ b/src/EthernaSSO.Services/Views/Emails/AlphaPassRequestEmailConfirmation.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Views/Emails/ConfirmEmailChange.cshtml b/src/EthernaSSO.Services/Views/Emails/ConfirmEmailChange.cshtml index 4f49b72f..2c67969a 100644 --- a/src/EthernaSSO.Services/Views/Emails/ConfirmEmailChange.cshtml +++ b/src/EthernaSSO.Services/Views/Emails/ConfirmEmailChange.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO.Services/Views/Emails/ConfirmEmailChange.cshtml.cs b/src/EthernaSSO.Services/Views/Emails/ConfirmEmailChange.cshtml.cs index d63a27dd..caef43b4 100644 --- a/src/EthernaSSO.Services/Views/Emails/ConfirmEmailChange.cshtml.cs +++ b/src/EthernaSSO.Services/Views/Emails/ConfirmEmailChange.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Views/Emails/InvitationLetter.cshtml b/src/EthernaSSO.Services/Views/Emails/InvitationLetter.cshtml index e6375956..3ddb5e73 100644 --- a/src/EthernaSSO.Services/Views/Emails/InvitationLetter.cshtml +++ b/src/EthernaSSO.Services/Views/Emails/InvitationLetter.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO.Services/Views/Emails/InvitationLetter.cshtml.cs b/src/EthernaSSO.Services/Views/Emails/InvitationLetter.cshtml.cs index d18bdf4e..9686a22a 100644 --- a/src/EthernaSSO.Services/Views/Emails/InvitationLetter.cshtml.cs +++ b/src/EthernaSSO.Services/Views/Emails/InvitationLetter.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Views/Emails/ResetPassword.cshtml b/src/EthernaSSO.Services/Views/Emails/ResetPassword.cshtml index bab76baf..4a7452bb 100644 --- a/src/EthernaSSO.Services/Views/Emails/ResetPassword.cshtml +++ b/src/EthernaSSO.Services/Views/Emails/ResetPassword.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO.Services/Views/Emails/ResetPassword.cshtml.cs b/src/EthernaSSO.Services/Views/Emails/ResetPassword.cshtml.cs index a3efe2a8..1af5673c 100644 --- a/src/EthernaSSO.Services/Views/Emails/ResetPassword.cshtml.cs +++ b/src/EthernaSSO.Services/Views/Emails/ResetPassword.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Views/Emails/TotpConfirmEmail.cshtml b/src/EthernaSSO.Services/Views/Emails/TotpConfirmEmail.cshtml index 1c3c14b5..4e11b848 100644 --- a/src/EthernaSSO.Services/Views/Emails/TotpConfirmEmail.cshtml +++ b/src/EthernaSSO.Services/Views/Emails/TotpConfirmEmail.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO.Services/Views/Emails/TotpConfirmEmail.cshtml.cs b/src/EthernaSSO.Services/Views/Emails/TotpConfirmEmail.cshtml.cs index 06451246..e0eed760 100644 --- a/src/EthernaSSO.Services/Views/Emails/TotpConfirmEmail.cshtml.cs +++ b/src/EthernaSSO.Services/Views/Emails/TotpConfirmEmail.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO.Services/Views/Emails/_ViewImports.cshtml b/src/EthernaSSO.Services/Views/Emails/_ViewImports.cshtml index 7f56b2e2..5872af1a 100644 --- a/src/EthernaSSO.Services/Views/Emails/_ViewImports.cshtml +++ b/src/EthernaSSO.Services/Views/Emails/_ViewImports.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO.Services/Views/Emails/_ViewStart.cshtml b/src/EthernaSSO.Services/Views/Emails/_ViewStart.cshtml index 7a1e266f..c1f6ed49 100644 --- a/src/EthernaSSO.Services/Views/Emails/_ViewStart.cshtml +++ b/src/EthernaSSO.Services/Views/Emails/_ViewStart.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml index cb9ab632..0f2b26fb 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml.cs index 5d974018..859727d3 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Index.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Role.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Role.cshtml index f4ba5353..7690add6 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Role.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Role.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Role.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Role.cshtml.cs index 693c6c11..a9e321fb 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Role.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Role.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml index 2f306722..e43d57cd 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml.cs index 50f907de..9ff520a9 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleDelete.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml index 6ea251f0..550cc88b 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml.cs index a04563fa..9260ff12 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/RoleUsers.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml index 41b42563..6777e85c 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml.cs index 6ae92b68..98824cc9 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Roles.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml index a463cb69..d79d3f9c 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml.cs index 638c9c8d..7e943e1e 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/User.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml index e6694124..be8be2c1 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml.cs index 4deb7432..df9a802c 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserChangePassword.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml index cc0a60ad..310e646f 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml.cs index cf495179..73ff29bc 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaims.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml index 83895a7d..ec668bf0 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml.cs index 8912bc3a..7113376d 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserClaimsDelete.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml index aba10433..82917fc0 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml.cs index f1ddc6fa..e0b7fed9 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserDelete.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml index 4f49a445..962d234f 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml.cs index c5a3aca3..29ba238a 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRoles.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml index 19fb2bc9..ff20aa33 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml.cs index 3497432a..fb27a118 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/UserRolesDelete.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml index ea942403..e8b6e591 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml.cs index 013c0c47..4db46506 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/IdentityServer/Users.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml b/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml index 05c6c2dc..05499025 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml.cs index 5d1a543e..ba0d3605 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/Index.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml b/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml index 612cfd32..5ae20246 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml.cs b/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml.cs index 5d8d6980..d296ffdf 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml.cs +++ b/src/EthernaSSO/Areas/Admin/Pages/Invitations/Index.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Admin/Pages/_ValidationScriptsPartial.cshtml b/src/EthernaSSO/Areas/Admin/Pages/_ValidationScriptsPartial.cshtml index d76626c7..3496dab1 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/_ValidationScriptsPartial.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/_ValidationScriptsPartial.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/_ViewImports.cshtml b/src/EthernaSSO/Areas/Admin/Pages/_ViewImports.cshtml index c041e1db..dee60d57 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/_ViewImports.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/_ViewImports.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Admin/Pages/_ViewStart.cshtml b/src/EthernaSSO/Areas/Admin/Pages/_ViewStart.cshtml index abf2015f..adec094a 100644 --- a/src/EthernaSSO/Areas/Admin/Pages/_ViewStart.cshtml +++ b/src/EthernaSSO/Areas/Admin/Pages/_ViewStart.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/AlphaPass/Pages/ConfirmRequest.cshtml b/src/EthernaSSO/Areas/AlphaPass/Pages/ConfirmRequest.cshtml index 6025d828..76c7c76a 100644 --- a/src/EthernaSSO/Areas/AlphaPass/Pages/ConfirmRequest.cshtml +++ b/src/EthernaSSO/Areas/AlphaPass/Pages/ConfirmRequest.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/AlphaPass/Pages/ConfirmRequest.cshtml.cs b/src/EthernaSSO/Areas/AlphaPass/Pages/ConfirmRequest.cshtml.cs index 3fa72ccf..aaa53aab 100644 --- a/src/EthernaSSO/Areas/AlphaPass/Pages/ConfirmRequest.cshtml.cs +++ b/src/EthernaSSO/Areas/AlphaPass/Pages/ConfirmRequest.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/AlphaPass/Pages/Index.cshtml b/src/EthernaSSO/Areas/AlphaPass/Pages/Index.cshtml index e88c3831..0309dda8 100644 --- a/src/EthernaSSO/Areas/AlphaPass/Pages/Index.cshtml +++ b/src/EthernaSSO/Areas/AlphaPass/Pages/Index.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/AlphaPass/Pages/Index.cshtml.cs b/src/EthernaSSO/Areas/AlphaPass/Pages/Index.cshtml.cs index cc405f8e..c99de141 100644 --- a/src/EthernaSSO/Areas/AlphaPass/Pages/Index.cshtml.cs +++ b/src/EthernaSSO/Areas/AlphaPass/Pages/Index.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/AlphaPass/Pages/_ValidationScriptsPartial.cshtml b/src/EthernaSSO/Areas/AlphaPass/Pages/_ValidationScriptsPartial.cshtml index d76626c7..3496dab1 100644 --- a/src/EthernaSSO/Areas/AlphaPass/Pages/_ValidationScriptsPartial.cshtml +++ b/src/EthernaSSO/Areas/AlphaPass/Pages/_ValidationScriptsPartial.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/AlphaPass/Pages/_ViewImports.cshtml b/src/EthernaSSO/Areas/AlphaPass/Pages/_ViewImports.cshtml index 1b1592da..b4a283fc 100644 --- a/src/EthernaSSO/Areas/AlphaPass/Pages/_ViewImports.cshtml +++ b/src/EthernaSSO/Areas/AlphaPass/Pages/_ViewImports.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/AlphaPass/Pages/_ViewStart.cshtml b/src/EthernaSSO/Areas/AlphaPass/Pages/_ViewStart.cshtml index abf2015f..adec094a 100644 --- a/src/EthernaSSO/Areas/AlphaPass/Pages/_ViewStart.cshtml +++ b/src/EthernaSSO/Areas/AlphaPass/Pages/_ViewStart.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs b/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs index 046a8817..9bf37398 100644 --- a/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs +++ b/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs b/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs index e3345565..b5a21537 100644 --- a/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs +++ b/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Api/Controllers/ServiceInteractController.cs b/src/EthernaSSO/Areas/Api/Controllers/ServiceInteractController.cs index ae5ead3a..ccf322f6 100644 --- a/src/EthernaSSO/Areas/Api/Controllers/ServiceInteractController.cs +++ b/src/EthernaSSO/Areas/Api/Controllers/ServiceInteractController.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Api/DtoModels/PrivateUserDto.cs b/src/EthernaSSO/Areas/Api/DtoModels/PrivateUserDto.cs index b9187d25..8319c0a2 100644 --- a/src/EthernaSSO/Areas/Api/DtoModels/PrivateUserDto.cs +++ b/src/EthernaSSO/Areas/Api/DtoModels/PrivateUserDto.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Api/DtoModels/UserContactInfoDto.cs b/src/EthernaSSO/Areas/Api/DtoModels/UserContactInfoDto.cs index 6a980087..37469b79 100644 --- a/src/EthernaSSO/Areas/Api/DtoModels/UserContactInfoDto.cs +++ b/src/EthernaSSO/Areas/Api/DtoModels/UserContactInfoDto.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Api/DtoModels/UserDto.cs b/src/EthernaSSO/Areas/Api/DtoModels/UserDto.cs index 9d3ab42b..01bf7d74 100644 --- a/src/EthernaSSO/Areas/Api/DtoModels/UserDto.cs +++ b/src/EthernaSSO/Areas/Api/DtoModels/UserDto.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Api/Services/IIdentityControllerService.cs b/src/EthernaSSO/Areas/Api/Services/IIdentityControllerService.cs index 580c743f..e36d3990 100644 --- a/src/EthernaSSO/Areas/Api/Services/IIdentityControllerService.cs +++ b/src/EthernaSSO/Areas/Api/Services/IIdentityControllerService.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Api/Services/IServiceInteractControllerService.cs b/src/EthernaSSO/Areas/Api/Services/IServiceInteractControllerService.cs index b62ae83b..fcc5fa30 100644 --- a/src/EthernaSSO/Areas/Api/Services/IServiceInteractControllerService.cs +++ b/src/EthernaSSO/Areas/Api/Services/IServiceInteractControllerService.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Api/Services/IdentityControllerService.cs b/src/EthernaSSO/Areas/Api/Services/IdentityControllerService.cs index 5fcd3623..1f7eb5df 100644 --- a/src/EthernaSSO/Areas/Api/Services/IdentityControllerService.cs +++ b/src/EthernaSSO/Areas/Api/Services/IdentityControllerService.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Api/Services/ServiceInteractControllerService.cs b/src/EthernaSSO/Areas/Api/Services/ServiceInteractControllerService.cs index 829b9249..2d073b17 100644 --- a/src/EthernaSSO/Areas/Api/Services/ServiceInteractControllerService.cs +++ b/src/EthernaSSO/Areas/Api/Services/ServiceInteractControllerService.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/ConfirmEmailChange.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/ConfirmEmailChange.cshtml index 4808fdf8..6e134c9b 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/ConfirmEmailChange.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/ConfirmEmailChange.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/ConfirmEmailChange.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/ConfirmEmailChange.cshtml.cs index 3b8bb4f5..f98d0597 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/ConfirmEmailChange.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/ConfirmEmailChange.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPassword.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPassword.cshtml index 1e71fd81..c2469849 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPassword.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPassword.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs index d0997b7c..0d5d75e3 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml index 5dc2fa6e..95f978d9 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs index a8572c47..e738f1a2 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Lockout.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Lockout.cshtml index ba24934f..7fc5af26 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Lockout.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Lockout.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Lockout.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Lockout.cshtml.cs index a659edd7..8e281fd4 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Lockout.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Lockout.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/LoggedOut.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/LoggedOut.cshtml index 2db4ec3d..78c6d234 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/LoggedOut.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/LoggedOut.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/LoggedOut.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/LoggedOut.cshtml.cs index b9dd1f96..60bc8424 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/LoggedOut.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/LoggedOut.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml index b4e206e1..249cd040 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs index 7ec4d385..25378c4f 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml index 9adf94af..0519d3cb 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml.cs index bb92e872..eb8068e4 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWith2fa.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml index a436c3d8..47af37b3 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml.cs index c4ec3f16..304df395 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Logout.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Logout.cshtml index a1441cdd..3cd107c3 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Logout.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Logout.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Logout.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Logout.cshtml.cs index 444aabfe..94ad30ec 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Logout.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Logout.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyCreate.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyCreate.cshtml index 33aab499..92a9bb1e 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyCreate.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyCreate.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyCreate.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyCreate.cshtml.cs index ff4e55d8..a4cceeea 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyCreate.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyCreate.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml index 7af8e1e7..038114d1 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml.cs index 88cf20a0..6ba17145 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeyDelete.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeys.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeys.cshtml index 8ab8d7e1..6fd380ff 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeys.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeys.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeys.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeys.cshtml.cs index afc0ee5c..80fe9872 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeys.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ApiKeys.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml index e08b3cdd..37a22491 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml.cs index f0e2f552..116443db 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml index 3945d9a7..5dd430fe 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml.cs index 6b8b08f7..5208bbc3 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml index 71b83d14..a7887db6 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml.cs index 00207eea..49b50cb6 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml index cd68a641..6623cb2d 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs index c211f3bb..1d4d483d 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Email.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Email.cshtml index f0f7ba45..b7eb0b49 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Email.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Email.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Email.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Email.cshtml.cs index 1e716785..037aad45 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Email.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Email.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml index 83932663..be14666a 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs index 04ee6aed..d8c457bb 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml index e2e97cb6..04be39de 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs index b0d50aea..644e5187 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Index.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Index.cshtml index 27af89cb..c0a14e4e 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Index.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Index.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Index.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Index.cshtml.cs index 5b6a6991..76f6d76e 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Index.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Index.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs index b52c1081..d056a8c7 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml index 0a5255bb..70ace9ea 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml.cs index e52ad867..b9050256 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml index ef958bcf..29190685 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml.cs index 296d4d9c..9eaa0818 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml index a3feaa08..f994ac3d 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml.cs index 548f2336..5bc3c1fc 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml index 06bc724f..cd42c370 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml.cs index b2852d46..04844658 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/ShowRecoveryCodes.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml index 320365c3..3ae75088 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs index 6aa65deb..9dd71752 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Login.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Login.cshtml index 03616112..5851ce25 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Login.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Login.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Login.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Login.cshtml.cs index 646145f7..f412625e 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Login.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Login.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Upgrade.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Upgrade.cshtml index f472e80e..523ca42c 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Upgrade.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Upgrade.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Upgrade.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Upgrade.cshtml.cs index aefdc217..39e49dc7 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Upgrade.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/Web3Upgrade.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_Layout.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_Layout.cshtml index b6b40694..43055a9d 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_Layout.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_Layout.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ManageNav.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ManageNav.cshtml index 06a3367e..1844f5a6 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ManageNav.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ManageNav.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ViewImports.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ViewImports.cshtml index 6f425ef8..e0805ef5 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ViewImports.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ViewImports.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ViewStart.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ViewStart.cshtml index d9ad6bb5..496b5ca9 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ViewStart.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Manage/_ViewStart.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml index f072b4d8..6f1db96d 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml.cs index aa54113e..722187c4 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Register.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPassword.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPassword.cshtml index b011b6e5..9ffdcd92 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPassword.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPassword.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPassword.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPassword.cshtml.cs index d4aa4c52..50c80849 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPassword.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPassword.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml index 1668ff97..807fcb5d 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs index 98aa2666..f8b77235 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml index d197b205..88afe8ed 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml.cs index f11dcf9f..cb99431c 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/SetVerifiedEmail.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/SsoExitPageModelBase.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/SsoExitPageModelBase.cs index c3f11a35..cdf162a4 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/SsoExitPageModelBase.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/SsoExitPageModelBase.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml index 7080b712..ccb027fc 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml.cs index 026e7092..bba9c21b 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Web3Login.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/_ViewImports.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/_ViewImports.cshtml index 580cd186..e253c581 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/_ViewImports.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/_ViewImports.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/_Web3LoginPartial.cshtml b/src/EthernaSSO/Areas/Identity/Pages/Account/_Web3LoginPartial.cshtml index b2a2fc99..55ad5917 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/_Web3LoginPartial.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/_Web3LoginPartial.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/_Web3LoginPartial.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/_Web3LoginPartial.cshtml.cs index dc316039..e6986e4a 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/_Web3LoginPartial.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/_Web3LoginPartial.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml b/src/EthernaSSO/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml index d76626c7..3496dab1 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/_ViewImports.cshtml b/src/EthernaSSO/Areas/Identity/Pages/_ViewImports.cshtml index 1b1592da..b4a283fc 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/_ViewImports.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/_ViewImports.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Areas/Identity/Pages/_ViewStart.cshtml b/src/EthernaSSO/Areas/Identity/Pages/_ViewStart.cshtml index abf2015f..adec094a 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/_ViewStart.cshtml +++ b/src/EthernaSSO/Areas/Identity/Pages/_ViewStart.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Attributes/HideUnauthorizedExceptionFilterAttribute.cs b/src/EthernaSSO/Attributes/HideUnauthorizedExceptionFilterAttribute.cs index af6ca0fc..d5cfeba2 100644 --- a/src/EthernaSSO/Attributes/HideUnauthorizedExceptionFilterAttribute.cs +++ b/src/EthernaSSO/Attributes/HideUnauthorizedExceptionFilterAttribute.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Attributes/SimpleExceptionFilterAttribute.cs b/src/EthernaSSO/Attributes/SimpleExceptionFilterAttribute.cs index 9eaea7f1..e0cbe653 100644 --- a/src/EthernaSSO/Attributes/SimpleExceptionFilterAttribute.cs +++ b/src/EthernaSSO/Attributes/SimpleExceptionFilterAttribute.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationHandler.cs b/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationHandler.cs index 8a31f3c4..eb3733d1 100644 --- a/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationHandler.cs +++ b/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationHandler.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationRequirement.cs b/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationRequirement.cs index 9ca9330b..e32ba597 100644 --- a/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationRequirement.cs +++ b/src/EthernaSSO/Configs/Authorization/DenyBannedAuthorizationRequirement.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/CommonConsts.cs b/src/EthernaSSO/Configs/CommonConsts.cs index 1e080243..cd29952e 100644 --- a/src/EthernaSSO/Configs/CommonConsts.cs +++ b/src/EthernaSSO/Configs/CommonConsts.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/Hangfire/AdminAuthFilter.cs b/src/EthernaSSO/Configs/Hangfire/AdminAuthFilter.cs index 8bfe1b58..7d3f0e54 100644 --- a/src/EthernaSSO/Configs/Hangfire/AdminAuthFilter.cs +++ b/src/EthernaSSO/Configs/Hangfire/AdminAuthFilter.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/Identity/CustomUserManager.cs b/src/EthernaSSO/Configs/Identity/CustomUserManager.cs index 90c49f2b..8bf97f20 100644 --- a/src/EthernaSSO/Configs/Identity/CustomUserManager.cs +++ b/src/EthernaSSO/Configs/Identity/CustomUserManager.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/Identity/CustomUserValidator.cs b/src/EthernaSSO/Configs/Identity/CustomUserValidator.cs index f0d3769f..13177f37 100644 --- a/src/EthernaSSO/Configs/Identity/CustomUserValidator.cs +++ b/src/EthernaSSO/Configs/Identity/CustomUserValidator.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/Identity/RoleStore.cs b/src/EthernaSSO/Configs/Identity/RoleStore.cs index 064010d6..e9c56b8a 100644 --- a/src/EthernaSSO/Configs/Identity/RoleStore.cs +++ b/src/EthernaSSO/Configs/Identity/RoleStore.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/Identity/UserStore.cs b/src/EthernaSSO/Configs/Identity/UserStore.cs index c86d884c..14794160 100644 --- a/src/EthernaSSO/Configs/Identity/UserStore.cs +++ b/src/EthernaSSO/Configs/Identity/UserStore.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/IdentityServer/ApiKeyValidator.cs b/src/EthernaSSO/Configs/IdentityServer/ApiKeyValidator.cs index 03061ce3..e924c823 100644 --- a/src/EthernaSSO/Configs/IdentityServer/ApiKeyValidator.cs +++ b/src/EthernaSSO/Configs/IdentityServer/ApiKeyValidator.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs b/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs index b9607782..30be0c52 100644 --- a/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs +++ b/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/MongODM/AdminAuthFilter.cs b/src/EthernaSSO/Configs/MongODM/AdminAuthFilter.cs index 55e5b336..a7411ce5 100644 --- a/src/EthernaSSO/Configs/MongODM/AdminAuthFilter.cs +++ b/src/EthernaSSO/Configs/MongODM/AdminAuthFilter.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/Swagger/ConfigureSwaggerOptions.cs b/src/EthernaSSO/Configs/Swagger/ConfigureSwaggerOptions.cs index d413ff88..6cbe009e 100644 --- a/src/EthernaSSO/Configs/Swagger/ConfigureSwaggerOptions.cs +++ b/src/EthernaSSO/Configs/Swagger/ConfigureSwaggerOptions.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/Swagger/SwaggerDefaultValues.cs b/src/EthernaSSO/Configs/Swagger/SwaggerDefaultValues.cs index 10988cf9..8ef17274 100644 --- a/src/EthernaSSO/Configs/Swagger/SwaggerDefaultValues.cs +++ b/src/EthernaSSO/Configs/Swagger/SwaggerDefaultValues.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/SystemStore/PersistedGrantRepository.cs b/src/EthernaSSO/Configs/SystemStore/PersistedGrantRepository.cs index 27543b98..b47fd69e 100644 --- a/src/EthernaSSO/Configs/SystemStore/PersistedGrantRepository.cs +++ b/src/EthernaSSO/Configs/SystemStore/PersistedGrantRepository.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/SystemStore/SigningKeyRepository.cs b/src/EthernaSSO/Configs/SystemStore/SigningKeyRepository.cs index 46655f14..b3f4cb93 100644 --- a/src/EthernaSSO/Configs/SystemStore/SigningKeyRepository.cs +++ b/src/EthernaSSO/Configs/SystemStore/SigningKeyRepository.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Configs/SystemStore/XmlRepository.cs b/src/EthernaSSO/Configs/SystemStore/XmlRepository.cs index fd64f423..44bf667f 100644 --- a/src/EthernaSSO/Configs/SystemStore/XmlRepository.cs +++ b/src/EthernaSSO/Configs/SystemStore/XmlRepository.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Extensions/ClientStoreExtensions.cs b/src/EthernaSSO/Extensions/ClientStoreExtensions.cs index 944fe99b..cbd9b5c4 100644 --- a/src/EthernaSSO/Extensions/ClientStoreExtensions.cs +++ b/src/EthernaSSO/Extensions/ClientStoreExtensions.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Extensions/DataProtectionBuilderExtensions.cs b/src/EthernaSSO/Extensions/DataProtectionBuilderExtensions.cs index b6838836..b31971f9 100644 --- a/src/EthernaSSO/Extensions/DataProtectionBuilderExtensions.cs +++ b/src/EthernaSSO/Extensions/DataProtectionBuilderExtensions.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Extensions/LoggerExtensions.cs b/src/EthernaSSO/Extensions/LoggerExtensions.cs index a5b3257d..3cd9b21f 100644 --- a/src/EthernaSSO/Extensions/LoggerExtensions.cs +++ b/src/EthernaSSO/Extensions/LoggerExtensions.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Pages/Index.cshtml b/src/EthernaSSO/Pages/Index.cshtml index 96ff6e65..40c20c6c 100644 --- a/src/EthernaSSO/Pages/Index.cshtml +++ b/src/EthernaSSO/Pages/Index.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Pages/Index.cshtml.cs b/src/EthernaSSO/Pages/Index.cshtml.cs index 37b92510..964a32db 100644 --- a/src/EthernaSSO/Pages/Index.cshtml.cs +++ b/src/EthernaSSO/Pages/Index.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Pages/Redirect.cshtml b/src/EthernaSSO/Pages/Redirect.cshtml index a05588ce..6e1937b9 100644 --- a/src/EthernaSSO/Pages/Redirect.cshtml +++ b/src/EthernaSSO/Pages/Redirect.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Pages/Redirect.cshtml.cs b/src/EthernaSSO/Pages/Redirect.cshtml.cs index b445e795..1f2f7864 100644 --- a/src/EthernaSSO/Pages/Redirect.cshtml.cs +++ b/src/EthernaSSO/Pages/Redirect.cshtml.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Pages/Shared/_Layout.cshtml b/src/EthernaSSO/Pages/Shared/_Layout.cshtml index 0d3637e6..7357349f 100644 --- a/src/EthernaSSO/Pages/Shared/_Layout.cshtml +++ b/src/EthernaSSO/Pages/Shared/_Layout.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Pages/Shared/_LoginPartial.cshtml b/src/EthernaSSO/Pages/Shared/_LoginPartial.cshtml index 7c5f0d4b..967fce37 100644 --- a/src/EthernaSSO/Pages/Shared/_LoginPartial.cshtml +++ b/src/EthernaSSO/Pages/Shared/_LoginPartial.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Pages/Shared/_ValidationScriptsPartial.cshtml b/src/EthernaSSO/Pages/Shared/_ValidationScriptsPartial.cshtml index 0ecfb0d1..7782269d 100644 --- a/src/EthernaSSO/Pages/Shared/_ValidationScriptsPartial.cshtml +++ b/src/EthernaSSO/Pages/Shared/_ValidationScriptsPartial.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Pages/_ViewImports.cshtml b/src/EthernaSSO/Pages/_ViewImports.cshtml index 4eabd1d6..b9b7741c 100644 --- a/src/EthernaSSO/Pages/_ViewImports.cshtml +++ b/src/EthernaSSO/Pages/_ViewImports.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Pages/_ViewStart.cshtml b/src/EthernaSSO/Pages/_ViewStart.cshtml index cdedd00e..ba60983d 100644 --- a/src/EthernaSSO/Pages/_ViewStart.cshtml +++ b/src/EthernaSSO/Pages/_ViewStart.cshtml @@ -1,4 +1,4 @@ -@* * Copyright 2021-present Etherna Sagl +@* * Copyright 2021-present Etherna Sa * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/EthernaSSO/Program.cs b/src/EthernaSSO/Program.cs index 567d83ef..dd1ebdf4 100644 --- a/src/EthernaSSO/Program.cs +++ b/src/EthernaSSO/Program.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Properties/AssemblyInfo.cs b/src/EthernaSSO/Properties/AssemblyInfo.cs index 9a314b22..f5323b8a 100644 --- a/src/EthernaSSO/Properties/AssemblyInfo.cs +++ b/src/EthernaSSO/Properties/AssemblyInfo.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/EthernaSSO/Startup.cs b/src/EthernaSSO/Startup.cs index 9e2254e2..8ac615bb 100644 --- a/src/EthernaSSO/Startup.cs +++ b/src/EthernaSSO/Startup.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/test/EthernaSSO.Persistence.Tests/Helpers/DbContextMockHelper.cs b/test/EthernaSSO.Persistence.Tests/Helpers/DbContextMockHelper.cs index 209c3939..0b3b4831 100644 --- a/test/EthernaSSO.Persistence.Tests/Helpers/DbContextMockHelper.cs +++ b/test/EthernaSSO.Persistence.Tests/Helpers/DbContextMockHelper.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/test/EthernaSSO.Persistence.Tests/Helpers/DeserializationTestElement.cs b/test/EthernaSSO.Persistence.Tests/Helpers/DeserializationTestElement.cs index 62151534..cb14c68c 100644 --- a/test/EthernaSSO.Persistence.Tests/Helpers/DeserializationTestElement.cs +++ b/test/EthernaSSO.Persistence.Tests/Helpers/DeserializationTestElement.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/test/EthernaSSO.Persistence.Tests/Helpers/EntityModelEqualityComparer.cs b/test/EthernaSSO.Persistence.Tests/Helpers/EntityModelEqualityComparer.cs index b730e0ce..d0b2c948 100644 --- a/test/EthernaSSO.Persistence.Tests/Helpers/EntityModelEqualityComparer.cs +++ b/test/EthernaSSO.Persistence.Tests/Helpers/EntityModelEqualityComparer.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/test/EthernaSSO.Persistence.Tests/ModelMaps/SharedDbContextDeserializationTest.cs b/test/EthernaSSO.Persistence.Tests/ModelMaps/SharedDbContextDeserializationTest.cs index 1936b6b3..56f0c392 100644 --- a/test/EthernaSSO.Persistence.Tests/ModelMaps/SharedDbContextDeserializationTest.cs +++ b/test/EthernaSSO.Persistence.Tests/ModelMaps/SharedDbContextDeserializationTest.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/test/EthernaSSO.Persistence.Tests/ModelMaps/SsoDbContextDeserializationTest.cs b/test/EthernaSSO.Persistence.Tests/ModelMaps/SsoDbContextDeserializationTest.cs index 174a6346..993ed2a2 100644 --- a/test/EthernaSSO.Persistence.Tests/ModelMaps/SsoDbContextDeserializationTest.cs +++ b/test/EthernaSSO.Persistence.Tests/ModelMaps/SsoDbContextDeserializationTest.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/test/EthernaSSO.Persistence.Tests/Properties/AssemblyInfo.cs b/test/EthernaSSO.Persistence.Tests/Properties/AssemblyInfo.cs index 9a314b22..f5323b8a 100644 --- a/test/EthernaSSO.Persistence.Tests/Properties/AssemblyInfo.cs +++ b/test/EthernaSSO.Persistence.Tests/Properties/AssemblyInfo.cs @@ -1,11 +1,11 @@ -// Copyright 2021-present Etherna Sagl -// +// Copyright 2021-present Etherna Sa +// // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. From 4b4b474f68321784b7847d39da847687a8f16d3d Mon Sep 17 00:00:00 2001 From: Mirko Da Corte Date: Fri, 5 Jan 2024 17:36:24 +0100 Subject: [PATCH 4/9] merge Program and Startup classes --- EthernaSSO.sln.DotSettings | 4 +- src/EthernaSSO/Areas/Api/ApiHostingStartup.cs | 2 +- src/EthernaSSO/Program.cs | 508 +++++++++++++++++- src/EthernaSSO/Startup.cs | 504 ----------------- 4 files changed, 488 insertions(+), 530 deletions(-) delete mode 100644 src/EthernaSSO/Startup.cs diff --git a/EthernaSSO.sln.DotSettings b/EthernaSSO.sln.DotSettings index 72a4e47d..353cf6e5 100644 --- a/EthernaSSO.sln.DotSettings +++ b/EthernaSSO.sln.DotSettings @@ -11,4 +11,6 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file + limitations under the License. + True + True \ No newline at end of file diff --git a/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs b/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs index 9bf37398..b739c2db 100644 --- a/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs +++ b/src/EthernaSSO/Areas/Api/ApiHostingStartup.cs @@ -31,7 +31,7 @@ public void Configure(IWebHostBuilder builder) builder.ConfigureServices((context, services) => { - var currentType = typeof(Startup).GetTypeInfo(); + var currentType = typeof(Program).GetTypeInfo(); var servicesNamespace = $"{currentType.Namespace}.{ServicesSubNamespace}"; // Register services. diff --git a/src/EthernaSSO/Program.cs b/src/EthernaSSO/Program.cs index dd1ebdf4..d0b78537 100644 --- a/src/EthernaSSO/Program.cs +++ b/src/EthernaSSO/Program.cs @@ -12,20 +12,65 @@ // See the License for the specific language governing permissions and // limitations under the License. +using Duende.IdentityServer.Stores; +using Duende.IdentityServer.Validation; using Etherna.ACR.Exceptions; -using Etherna.ACR.Filters; +using Etherna.ACR.Middlewares.DebugPages; +using Etherna.ACR.Settings; +using Etherna.Authentication.AspNetCore; +using Etherna.DomainEvents; +using Etherna.MongODM; +using Etherna.MongODM.AspNetCore.UI; +using Etherna.MongODM.Core.Options; +using Etherna.SSOServer.Configs; +using Etherna.SSOServer.Configs.Authorization; +using Etherna.SSOServer.Configs.Identity; +using Etherna.SSOServer.Configs.IdentityServer; +using Etherna.SSOServer.Configs.MongODM; +using Etherna.SSOServer.Configs.Swagger; +using Etherna.SSOServer.Configs.SystemStore; +using Etherna.SSOServer.Domain; +using Etherna.SSOServer.Domain.Models; +using Etherna.SSOServer.Extensions; +using Etherna.SSOServer.Persistence; +using Etherna.SSOServer.Persistence.Settings; +using Etherna.SSOServer.Services; +using Etherna.SSOServer.Services.Settings; +using Etherna.SSOServer.Services.Tasks; +using Hangfire; +using Hangfire.Mongo; +using Hangfire.Mongo.Migration.Strategies; +using Hangfire.Mongo.Migration.Strategies.Backup; +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Authentication.Cookies; +using Microsoft.AspNetCore.Authentication.OpenIdConnect; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Authorization.Infrastructure; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.HttpOverrides; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc.ApiExplorer; +using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Options; +using Microsoft.Net.Http.Headers; using Serilog; using Serilog.Exceptions; using Serilog.Sinks.Elasticsearch; +using Swashbuckle.AspNetCore.SwaggerGen; using System; +using System.Collections.Generic; using System.Globalization; +using System.IO; using System.Linq; +using System.Net; using System.Reflection; +using System.Threading.Tasks; +using DashboardOptions = Etherna.MongODM.AspNetCore.UI.DashboardOptions; +using IPNetwork = Microsoft.AspNetCore.HttpOverrides.IPNetwork; namespace Etherna.SSOServer { @@ -40,7 +85,22 @@ public static void Main(string[] args) try { Log.Information("Starting web host"); - CreateHostBuilder(args).Build().Run(); + + var builder = WebApplication.CreateBuilder(args); + + // Configs. + builder.Host.UseSerilog(); + + ConfigureServices(builder); + + var app = builder.Build(); + ConfigureApplication(app); + + // First operations. + app.SeedDbContexts(); + + // Run application. + app.Run(); } catch (Exception ex) { @@ -53,20 +113,18 @@ public static void Main(string[] args) } } - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureServices(services => - { - // Register here for execute before host filter. - services.AddSingleton(); - }) - .UseSerilog() - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }); - // Helpers. + private static ElasticsearchSinkOptions ConfigureElasticSink(IConfigurationRoot configuration, string environment) + { + string assemblyName = Assembly.GetExecutingAssembly().GetName().Name!.ToLower(CultureInfo.InvariantCulture).Replace(".", "-", StringComparison.InvariantCulture); + string envName = environment.ToLower(CultureInfo.InvariantCulture).Replace(".", "-", StringComparison.InvariantCulture); + return new ElasticsearchSinkOptions((configuration.GetSection("Elastic:Urls").Get() ?? throw new ServiceConfigurationException()).Select(u => new Uri(u))) + { + AutoRegisterTemplate = true, + IndexFormat = $"{assemblyName}-{envName}-{DateTime.UtcNow:yyyy-MM}" + }; + } + private static void ConfigureLogging() { var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? throw new ServiceConfigurationException(); @@ -88,15 +146,417 @@ private static void ConfigureLogging() .CreateLogger(); } - private static ElasticsearchSinkOptions ConfigureElasticSink(IConfigurationRoot configuration, string environment) + private static void ConfigureServices(WebApplicationBuilder builder) { - string assemblyName = Assembly.GetExecutingAssembly().GetName().Name!.ToLower(CultureInfo.InvariantCulture).Replace(".", "-", StringComparison.InvariantCulture); - string envName = environment.ToLower(CultureInfo.InvariantCulture).Replace(".", "-", StringComparison.InvariantCulture); - return new ElasticsearchSinkOptions((configuration.GetSection("Elastic:Urls").Get() ?? throw new ServiceConfigurationException()).Select(u => new Uri(u))) + var services = builder.Services; + var config = builder.Configuration; + var env = builder.Environment; + + // Configure Asp.Net Core framework services. + services.AddDataProtection() + .PersistKeysToDbContext(new DbContextOptions + { + ConnectionString = config["ConnectionStrings:DataProtectionDb"] ?? throw new ServiceConfigurationException() + }); + + services.AddIdentity(options => { - AutoRegisterTemplate = true, - IndexFormat = $"{assemblyName}-{envName}-{DateTime.UtcNow:yyyy-MM}" - }; + options.Password.RequiredLength = 6; + options.Password.RequireDigit = true; + options.Password.RequireLowercase = true; + options.Password.RequireUppercase = true; + options.Password.RequireNonAlphanumeric = false; + + options.Tokens.EmailConfirmationTokenProvider = TokenOptions.DefaultEmailProvider; //totp code + + options.User.RequireUniqueEmail = true; + }) + .AddDefaultTokenProviders() + .AddRoles() + .AddRoleStore() + .AddUserStore(); + + //replace default implementations with customs + services.Replace(ServiceDescriptor.Scoped, CustomUserManager>()); + services.Replace(ServiceDescriptor.Scoped, CustomUserValidator>()); + + services.ConfigureApplicationCookie(options => + { + // Cookie settings. + options.Cookie.HttpOnly = true; + options.Cookie.Name = config["Application:CompactName"] ?? throw new ServiceConfigurationException(); + options.ExpireTimeSpan = TimeSpan.FromDays(30); + + options.LoginPath = "/Identity/Account/Login"; + options.LogoutPath = "/Identity/Account/Logout"; + options.AccessDeniedPath = "/AccessDenied"; + + options.SlidingExpiration = true; + + // Response 401 for unauthorized call on api. + static Task unauthorizedApiCallHandler(RedirectContext context) + { + if (context.Request.Path.StartsWithSegments("/api", StringComparison.InvariantCulture)) + context.Response.StatusCode = (int)HttpStatusCode.Unauthorized; + else + context.Response.Redirect(context.RedirectUri); + return Task.CompletedTask; + } + options.Events.OnRedirectToAccessDenied = unauthorizedApiCallHandler; + options.Events.OnRedirectToLogin = unauthorizedApiCallHandler; + }); + + services.Configure(options => + { + options.ForwardedHeaders = ForwardedHeaders.All; + + var knownNetworksConfig = config.GetSection("ForwardedHeaders:KnownNetworks"); + if (knownNetworksConfig.Exists()) + { + var networks = (knownNetworksConfig.Get() ?? throw new ServiceConfigurationException()).Select(address => + { + var parts = address.Split('/'); + if (parts.Length != 2) + throw new ServiceConfigurationException(); + + return new IPNetwork( + IPAddress.Parse(parts[0]), + int.Parse(parts[1], CultureInfo.InvariantCulture)); + }); + + foreach (var network in networks) + options.KnownNetworks.Add(network); + } + }); + + services.AddCors(); + services.AddRazorPages(options => + { + options.Conventions.AuthorizeAreaFolder(CommonConsts.AdminArea, "/", CommonConsts.RequireAdministratorRolePolicy); + options.Conventions.AuthorizeAreaFolder(CommonConsts.IdentityArea, "/Account/Manage"); + + options.Conventions.AuthorizeAreaPage(CommonConsts.IdentityArea, "/Account/Logout"); + }); + services.AddControllers(); //used for APIs + services.AddApiVersioning(options => + { + options.ReportApiVersions = true; + }); + services.AddVersionedApiExplorer(options => + { + // add the versioned api explorer, which also adds IApiVersionDescriptionProvider service + // note: the specified format code will format the version as "'v'major[.minor][-status]" + options.GroupNameFormat = "'v'VVV"; + + // note: this option is only necessary when versioning by url segment. the SubstitutionFormat + // can also be used to control the format of the API version in route templates + options.SubstituteApiVersionInUrl = true; + }); + + services.AddSingleton(); + + // Configure authentication. + var allowUnsafeAuthorityConnection = false; + if (config["IdServer:SsoServer:AllowUnsafeConnection"] is not null) + allowUnsafeAuthorityConnection = bool.Parse(config["IdServer:SsoServer:AllowUnsafeConnection"]!); + + services.AddAuthentication(options => + { + options.DefaultAuthenticateScheme = CommonConsts.UserAuthenticationPolicyScheme; + }) + + //users access + .AddJwtBearer(CommonConsts.UserAuthenticationJwtScheme, options => + { + options.Audience = "userApi"; + options.Authority = config["IdServer:SsoServer:BaseUrl"] ?? throw new ServiceConfigurationException(); + + options.RequireHttpsMetadata = !allowUnsafeAuthorityConnection; + }) + .AddPolicyScheme(CommonConsts.UserAuthenticationPolicyScheme, CommonConsts.UserAuthenticationPolicyScheme, options => + { + //runs on each request + options.ForwardDefaultSelector = context => + { + //filter by auth type + string? authorization = context.Request.Headers[HeaderNames.Authorization]; + if (!string.IsNullOrEmpty(authorization) && authorization.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase)) + return CommonConsts.UserAuthenticationJwtScheme; + + //otherwise always check with default cookie auth by Identity framework + return IdentityConstants.ApplicationScheme; + }; + }) + .AddEthernaOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options => + { + // Set properties. + options.Authority = config["IdServer:SsoServer:BaseUrl"] ?? throw new ServiceConfigurationException(); + options.ClientId = config["IdServer:SsoServer:Clients:Webapp:ClientId"] ?? throw new ServiceConfigurationException(); + options.ClientSecret = config["IdServer:SsoServer:Clients:Webapp:Secret"] ?? throw new ServiceConfigurationException(); + + options.RequireHttpsMetadata = !allowUnsafeAuthorityConnection; + options.ResponseType = "code"; + options.SaveTokens = true; + + options.Scope.Add("ether_accounts"); + options.Scope.Add("role"); + + // Handle unauthorized call on api with 401 response. For users not logged in. + options.Events.OnRedirectToIdentityProvider = context => + { + if (context.Request.Path.StartsWithSegments("/api", StringComparison.InvariantCulture)) + { + context.Response.StatusCode = (int)HttpStatusCode.Unauthorized; + context.HandleResponse(); + } + return Task.CompletedTask; + }; + }) + + //services access + .AddJwtBearer(CommonConsts.ServiceAuthenticationScheme, options => + { + options.Audience = "ethernaSsoServiceInteract"; + options.Authority = config["IdServer:SsoServer:BaseUrl"] ?? throw new ServiceConfigurationException(); + + options.RequireHttpsMetadata = !allowUnsafeAuthorityConnection; + }); + + // Configure authorization. + //policy and requirements + services.AddAuthorization(options => + { + //default policy + options.DefaultPolicy = new AuthorizationPolicy( + new IAuthorizationRequirement[] + { + new DenyAnonymousAuthorizationRequirement(), + new DenyBannedAuthorizationRequirement() + }, + Array.Empty()); + + //other policies + options.AddPolicy(CommonConsts.RequireAdministratorRolePolicy, + policy => + { + policy.RequireRole(Role.NormalizeName(Role.AdministratorName)); + policy.AddRequirements(new DenyBannedAuthorizationRequirement()); + }); + + options.AddPolicy(CommonConsts.ServiceInteractApiScopePolicy, policy => + { + policy.AuthenticationSchemes = new List { CommonConsts.ServiceAuthenticationScheme }; + policy.RequireAuthenticatedUser(); + policy.RequireClaim("scope", "ethernaSso_userContactInfo_api"); + }); + }); + + //requirement handlers + services.AddScoped(); + + // Configure IdentityServer. + var idServerConfig = new IdServerConfig(config); + services.AddIdentityServer(options => + { + options.Authentication.CookieAuthenticationScheme = IdentityConstants.ApplicationScheme; + options.LicenseKey = config["IdServer:LicenseKey"]; //can be null in dev env + options.UserInteraction.ErrorUrl = "/Error"; + }) + .AddInMemoryApiResources(idServerConfig.ApiResources) + .AddInMemoryApiScopes(idServerConfig.ApiScopes) + .AddInMemoryClients(idServerConfig.Clients) + .AddInMemoryIdentityResources(idServerConfig.IdResources) + .AddAspNetIdentity(); + + //replace default implementations with customs + services.Replace(ServiceDescriptor.Transient()); + + //add other custom services + services.AddSingleton(new PersistedGrantRepository(new DbContextOptions + { + ConnectionString = config["ConnectionStrings:DataProtectionDb"] ?? throw new ServiceConfigurationException() + }, "persistedGrants")); + services.AddSingleton(new SigningKeyRepository(new DbContextOptions + { + ConnectionString = config["ConnectionStrings:DataProtectionDb"] ?? throw new ServiceConfigurationException() + }, "signingKeys")); + + // Configure Hangfire server. + if (!env.IsStaging()) //don't start server in staging + { + //register hangfire server + services.AddHangfireServer(options => + { + options.Queues = new[] + { + Queues.DB_MAINTENANCE, + Queues.DOMAIN_MAINTENANCE, + Queues.STATS, + "default" + }; + options.WorkerCount = Environment.ProcessorCount * 2; + }); + } + + // Configure Swagger services. + services.AddTransient, ConfigureSwaggerOptions>(); + services.AddSwaggerGen(options => + { + options.SupportNonNullableReferenceTypes(); + options.UseInlineDefinitionsForEnums(); + + //add a custom operation filter which sets default values + options.OperationFilter(); + + //integrate xml comments + var xmlFile = typeof(Program).GetTypeInfo().Assembly.GetName().Name + ".xml"; + var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); + options.IncludeXmlComments(xmlPath); + }); + + // Configure setting. + services.Configure(config.GetSection("Application") ?? throw new ServiceConfigurationException()); + services.Configure(config.GetSection("Email") ?? throw new ServiceConfigurationException()); + services.Configure(config.GetSection("DbSeed") ?? throw new ServiceConfigurationException()); + + // Configure persistence. + services.AddMongODMWithHangfire(configureHangfireOptions: options => + { + options.ConnectionString = config["ConnectionStrings:HangfireDb"] ?? throw new ServiceConfigurationException(); + options.StorageOptions = new MongoStorageOptions + { + MigrationOptions = new MongoMigrationOptions //don't remove, could throw exception + { + MigrationStrategy = new MigrateMongoMigrationStrategy(), + BackupStrategy = new CollectionMongoBackupStrategy() + } + }; + }, configureMongODMOptions: options => + { + options.DbMaintenanceQueueName = Queues.DB_MAINTENANCE; + }) + .AddDbContext(sp => + { + var eventDispatcher = sp.GetRequiredService(); + var seedSettings = sp.GetRequiredService>(); + return new SsoDbContext(eventDispatcher, seedSettings.Value, sp); + }, + options => + { + options.ConnectionString = config["ConnectionStrings:SSOServerDb"] ?? throw new ServiceConfigurationException(); + options.ParentFor(); + }) + + .AddDbContext(sp => + { + var eventDispatcher = sp.GetRequiredService(); + return new SharedDbContext(eventDispatcher); + }, + options => + { + options.ConnectionString = config["ConnectionStrings:ServiceSharedDb"] ?? throw new ServiceConfigurationException(); + }); + + services.AddMongODMAdminDashboard(new DashboardOptions + { + AuthFilters = new[] { new AdminAuthFilter() }, + BasePath = CommonConsts.DatabaseAdminPath + }); + + // Configure domain services. + services.AddDomainServices(); + } + + private static void ConfigureApplication(WebApplication app) + { + var env = app.Environment; + var apiProvider = app.Services.GetRequiredService(); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + app.UseForwardedHeaders(); + app.UseEthernaAcrDebugPages(); + } + else + { + app.UseExceptionHandler("/Error"); + app.UseForwardedHeaders(); + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); + } + + app.UseCors(builder => + { + if (env.IsDevelopment()) + { + builder.SetIsOriginAllowed(_ => true) + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + } + else + { + builder.WithOrigins("https://etherna.io") + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + } + }); + + app.UseHttpsRedirection(); + app.UseStaticFiles(); + + app.UseRouting(); + + app.UseAuthentication(); + app.UseIdentityServer(); + app.UseAuthorization(); + + // Add Hangfire. + app.UseHangfireDashboard(CommonConsts.HangfireAdminPath, + new Hangfire.DashboardOptions + { + Authorization = new[] { new Configs.Hangfire.AdminAuthFilter() } + }); + + // Add Swagger. + app.UseSwagger(); + app.UseSwaggerUI(options => + { + options.DocumentTitle = "Etherna SSO API"; + + // build a swagger endpoint for each discovered API version + foreach (var description in apiProvider.ApiVersionDescriptions) + { + options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant()); + } + }); + + // Add endpoints. + app.MapControllers(); + app.MapRazorPages(); + + // Register cron tasks. + RecurringJob.AddOrUpdate( + CompileDailyStatsTask.TaskId, + task => task.RunAsync(), + Cron.Daily(2)); + + RecurringJob.AddOrUpdate( + DeleteOldInvitationsTask.TaskId, + task => task.RunAsync(), + Cron.Daily(5)); + + RecurringJob.AddOrUpdate( + ProcessAlphaPassRequestsTask.TaskId, + task => task.RunAsync(), + Cron.Hourly()); + + RecurringJob.AddOrUpdate( + Web3LoginTokensCleanTask.TaskId, + task => task.RunAsync(), + Cron.Daily(3)); } } -} +} \ No newline at end of file diff --git a/src/EthernaSSO/Startup.cs b/src/EthernaSSO/Startup.cs deleted file mode 100644 index 8ac615bb..00000000 --- a/src/EthernaSSO/Startup.cs +++ /dev/null @@ -1,504 +0,0 @@ -// Copyright 2021-present Etherna Sa -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -using Duende.IdentityServer.Stores; -using Duende.IdentityServer.Validation; -using Etherna.ACR.Exceptions; -using Etherna.ACR.Middlewares.DebugPages; -using Etherna.ACR.Settings; -using Etherna.Authentication.AspNetCore; -using Etherna.DomainEvents; -using Etherna.MongODM; -using Etherna.MongODM.AspNetCore.UI; -using Etherna.MongODM.Core.Options; -using Etherna.SSOServer.Configs; -using Etherna.SSOServer.Configs.Authorization; -using Etherna.SSOServer.Configs.Identity; -using Etherna.SSOServer.Configs.IdentityServer; -using Etherna.SSOServer.Configs.MongODM; -using Etherna.SSOServer.Configs.Swagger; -using Etherna.SSOServer.Configs.SystemStore; -using Etherna.SSOServer.Domain; -using Etherna.SSOServer.Domain.Models; -using Etherna.SSOServer.Extensions; -using Etherna.SSOServer.Persistence; -using Etherna.SSOServer.Persistence.Settings; -using Etherna.SSOServer.Services; -using Etherna.SSOServer.Services.Settings; -using Etherna.SSOServer.Services.Tasks; -using Hangfire; -using Hangfire.Mongo; -using Hangfire.Mongo.Migration.Strategies; -using Hangfire.Mongo.Migration.Strategies.Backup; -using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Authentication.Cookies; -using Microsoft.AspNetCore.Authentication.OpenIdConnect; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Authorization.Infrastructure; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.HttpOverrides; -using Microsoft.AspNetCore.Identity; -using Microsoft.AspNetCore.Mvc.ApiExplorer; -using Microsoft.AspNetCore.Mvc.Infrastructure; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Options; -using Microsoft.Net.Http.Headers; -using Swashbuckle.AspNetCore.SwaggerGen; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Net; -using System.Reflection; -using System.Threading.Tasks; -using DashboardOptions = Etherna.MongODM.AspNetCore.UI.DashboardOptions; -using IPNetwork = Microsoft.AspNetCore.HttpOverrides.IPNetwork; - -namespace Etherna.SSOServer -{ - public class Startup - { - // Constructor. - public Startup( - IConfiguration configuration, - IWebHostEnvironment environment) - { - Configuration = configuration; - Environment = environment; - } - - // Properties. - public IConfiguration Configuration { get; } - public IWebHostEnvironment Environment { get; } - - // Methods. - public void ConfigureServices(IServiceCollection services) - { - // Configure Asp.Net Core framework services. - services.AddDataProtection() - .PersistKeysToDbContext(new DbContextOptions - { - ConnectionString = Configuration["ConnectionStrings:DataProtectionDb"] ?? throw new ServiceConfigurationException() - }); - - services.AddIdentity(options => - { - options.Password.RequiredLength = 6; - options.Password.RequireDigit = true; - options.Password.RequireLowercase = true; - options.Password.RequireUppercase = true; - options.Password.RequireNonAlphanumeric = false; - - options.Tokens.EmailConfirmationTokenProvider = TokenOptions.DefaultEmailProvider; //totp code - - options.User.RequireUniqueEmail = true; - }) - .AddDefaultTokenProviders() - .AddRoles() - .AddRoleStore() - .AddUserStore(); - - //replace default implementations with customs - services.Replace(ServiceDescriptor.Scoped, CustomUserManager>()); - services.Replace(ServiceDescriptor.Scoped, CustomUserValidator>()); - - services.ConfigureApplicationCookie(options => - { - // Cookie settings. - options.Cookie.HttpOnly = true; - options.Cookie.Name = Configuration["Application:CompactName"] ?? throw new ServiceConfigurationException(); - options.ExpireTimeSpan = TimeSpan.FromDays(30); - - options.LoginPath = "/Identity/Account/Login"; - options.LogoutPath = "/Identity/Account/Logout"; - options.AccessDeniedPath = "/AccessDenied"; - - options.SlidingExpiration = true; - - // Response 401 for unauthorized call on api. - static Task unauthorizedApiCallHandler(RedirectContext context) - { - if (context.Request.Path.StartsWithSegments("/api", StringComparison.InvariantCulture)) - context.Response.StatusCode = (int)HttpStatusCode.Unauthorized; - else - context.Response.Redirect(context.RedirectUri); - return Task.CompletedTask; - } - options.Events.OnRedirectToAccessDenied = unauthorizedApiCallHandler; - options.Events.OnRedirectToLogin = unauthorizedApiCallHandler; - }); - - services.Configure(options => - { - options.ForwardedHeaders = ForwardedHeaders.All; - - var knownNetworksConfig = Configuration.GetSection("ForwardedHeaders:KnownNetworks"); - if (knownNetworksConfig.Exists()) - { - var networks = (knownNetworksConfig.Get() ?? throw new ServiceConfigurationException()).Select(address => - { - var parts = address.Split('/'); - if (parts.Length != 2) - throw new ServiceConfigurationException(); - - return new IPNetwork( - IPAddress.Parse(parts[0]), - int.Parse(parts[1], CultureInfo.InvariantCulture)); - }); - - foreach (var network in networks) - options.KnownNetworks.Add(network); - } - }); - - services.AddCors(); - services.AddRazorPages(options => - { - options.Conventions.AuthorizeAreaFolder(CommonConsts.AdminArea, "/", CommonConsts.RequireAdministratorRolePolicy); - options.Conventions.AuthorizeAreaFolder(CommonConsts.IdentityArea, "/Account/Manage"); - - options.Conventions.AuthorizeAreaPage(CommonConsts.IdentityArea, "/Account/Logout"); - }); - services.AddControllers(); //used for APIs - services.AddApiVersioning(options => - { - options.ReportApiVersions = true; - }); - services.AddVersionedApiExplorer(options => - { - // add the versioned api explorer, which also adds IApiVersionDescriptionProvider service - // note: the specified format code will format the version as "'v'major[.minor][-status]" - options.GroupNameFormat = "'v'VVV"; - - // note: this option is only necessary when versioning by url segment. the SubstitutionFormat - // can also be used to control the format of the API version in route templates - options.SubstituteApiVersionInUrl = true; - }); - - services.AddSingleton(); - - // Configure authentication. - var allowUnsafeAuthorityConnection = false; - if (Configuration["IdServer:SsoServer:AllowUnsafeConnection"] is not null) - allowUnsafeAuthorityConnection = bool.Parse(Configuration["IdServer:SsoServer:AllowUnsafeConnection"]!); - - services.AddAuthentication(options => - { - options.DefaultAuthenticateScheme = CommonConsts.UserAuthenticationPolicyScheme; - }) - - //users access - .AddJwtBearer(CommonConsts.UserAuthenticationJwtScheme, options => - { - options.Audience = "userApi"; - options.Authority = Configuration["IdServer:SsoServer:BaseUrl"] ?? throw new ServiceConfigurationException(); - - options.RequireHttpsMetadata = !allowUnsafeAuthorityConnection; - }) - .AddPolicyScheme(CommonConsts.UserAuthenticationPolicyScheme, CommonConsts.UserAuthenticationPolicyScheme, options => - { - //runs on each request - options.ForwardDefaultSelector = context => - { - //filter by auth type - string? authorization = context.Request.Headers[HeaderNames.Authorization]; - if (!string.IsNullOrEmpty(authorization) && authorization.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase)) - return CommonConsts.UserAuthenticationJwtScheme; - - //otherwise always check with default cookie auth by Identity framework - return IdentityConstants.ApplicationScheme; - }; - }) - .AddEthernaOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options => - { - // Set properties. - options.Authority = Configuration["IdServer:SsoServer:BaseUrl"] ?? throw new ServiceConfigurationException(); - options.ClientId = Configuration["IdServer:SsoServer:Clients:Webapp:ClientId"] ?? throw new ServiceConfigurationException(); - options.ClientSecret = Configuration["IdServer:SsoServer:Clients:Webapp:Secret"] ?? throw new ServiceConfigurationException(); - - options.RequireHttpsMetadata = !allowUnsafeAuthorityConnection; - options.ResponseType = "code"; - options.SaveTokens = true; - - options.Scope.Add("ether_accounts"); - options.Scope.Add("role"); - - // Handle unauthorized call on api with 401 response. For users not logged in. - options.Events.OnRedirectToIdentityProvider = context => - { - if (context.Request.Path.StartsWithSegments("/api", StringComparison.InvariantCulture)) - { - context.Response.StatusCode = (int)HttpStatusCode.Unauthorized; - context.HandleResponse(); - } - return Task.CompletedTask; - }; - }) - - //services access - .AddJwtBearer(CommonConsts.ServiceAuthenticationScheme, options => - { - options.Audience = "ethernaSsoServiceInteract"; - options.Authority = Configuration["IdServer:SsoServer:BaseUrl"] ?? throw new ServiceConfigurationException(); - - options.RequireHttpsMetadata = !allowUnsafeAuthorityConnection; - }); - - // Configure authorization. - //policy and requirements - services.AddAuthorization(options => - { - //default policy - options.DefaultPolicy = new AuthorizationPolicy( - new IAuthorizationRequirement[] - { - new DenyAnonymousAuthorizationRequirement(), - new DenyBannedAuthorizationRequirement() - }, - Array.Empty()); - - //other policies - options.AddPolicy(CommonConsts.RequireAdministratorRolePolicy, - policy => - { - policy.RequireRole(Role.NormalizeName(Role.AdministratorName)); - policy.AddRequirements(new DenyBannedAuthorizationRequirement()); - }); - - options.AddPolicy(CommonConsts.ServiceInteractApiScopePolicy, policy => - { - policy.AuthenticationSchemes = new List { CommonConsts.ServiceAuthenticationScheme }; - policy.RequireAuthenticatedUser(); - policy.RequireClaim("scope", "ethernaSso_userContactInfo_api"); - }); - }); - - //requirement handlers - services.AddScoped(); - - // Configure IdentityServer. - var idServerConfig = new IdServerConfig(Configuration); - var builder = services.AddIdentityServer(options => - { - options.Authentication.CookieAuthenticationScheme = IdentityConstants.ApplicationScheme; - options.LicenseKey = Configuration["IdServer:LicenseKey"]; //can be null in dev env - options.UserInteraction.ErrorUrl = "/Error"; - }) - .AddInMemoryApiResources(idServerConfig.ApiResources) - .AddInMemoryApiScopes(idServerConfig.ApiScopes) - .AddInMemoryClients(idServerConfig.Clients) - .AddInMemoryIdentityResources(idServerConfig.IdResources) - .AddAspNetIdentity(); - - //replace default implementations with customs - services.Replace(ServiceDescriptor.Transient()); - - //add other custom services - services.AddSingleton(new PersistedGrantRepository(new DbContextOptions - { - ConnectionString = Configuration["ConnectionStrings:DataProtectionDb"] ?? throw new ServiceConfigurationException() - }, "persistedGrants")); - services.AddSingleton(new SigningKeyRepository(new DbContextOptions - { - ConnectionString = Configuration["ConnectionStrings:DataProtectionDb"] ?? throw new ServiceConfigurationException() - }, "signingKeys")); - - // Configure Hangfire server. - if (!Environment.IsStaging()) //don't start server in staging - { - //register hangfire server - services.AddHangfireServer(options => - { - options.Queues = new[] - { - Queues.DB_MAINTENANCE, - Queues.DOMAIN_MAINTENANCE, - Queues.STATS, - "default" - }; - options.WorkerCount = System.Environment.ProcessorCount * 2; - }); - } - - // Configure Swagger services. - services.AddTransient, ConfigureSwaggerOptions>(); - services.AddSwaggerGen(options => - { - options.SupportNonNullableReferenceTypes(); - options.UseInlineDefinitionsForEnums(); - - //add a custom operation filter which sets default values - options.OperationFilter(); - - //integrate xml comments - var xmlFile = typeof(Startup).GetTypeInfo().Assembly.GetName().Name + ".xml"; - var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); - options.IncludeXmlComments(xmlPath); - }); - - // Configure setting. - services.Configure(Configuration.GetSection("Application") ?? throw new ServiceConfigurationException()); - services.Configure(Configuration.GetSection("Email") ?? throw new ServiceConfigurationException()); - services.Configure(Configuration.GetSection("DbSeed") ?? throw new ServiceConfigurationException()); - - // Configure persistence. - services.AddMongODMWithHangfire(configureHangfireOptions: options => - { - options.ConnectionString = Configuration["ConnectionStrings:HangfireDb"] ?? throw new ServiceConfigurationException(); - options.StorageOptions = new MongoStorageOptions - { - MigrationOptions = new MongoMigrationOptions //don't remove, could throw exception - { - MigrationStrategy = new MigrateMongoMigrationStrategy(), - BackupStrategy = new CollectionMongoBackupStrategy() - } - }; - }, configureMongODMOptions: options => - { - options.DbMaintenanceQueueName = Queues.DB_MAINTENANCE; - }) - .AddDbContext(sp => - { - var eventDispatcher = sp.GetRequiredService(); - var seedSettings = sp.GetRequiredService>(); - return new SsoDbContext(eventDispatcher, seedSettings.Value, sp); - }, - options => - { - options.ConnectionString = Configuration["ConnectionStrings:SSOServerDb"] ?? throw new ServiceConfigurationException(); - options.ParentFor(); - }) - - .AddDbContext(sp => - { - var eventDispatcher = sp.GetRequiredService(); - return new SharedDbContext(eventDispatcher); - }, - options => - { - options.ConnectionString = Configuration["ConnectionStrings:ServiceSharedDb"] ?? throw new ServiceConfigurationException(); - }); - - services.AddMongODMAdminDashboard(new DashboardOptions - { - AuthFilters = new[] { new AdminAuthFilter() }, - BasePath = CommonConsts.DatabaseAdminPath - }); - - // Configure domain services. - services.AddDomainServices(); - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IApiVersionDescriptionProvider apiProvider) - { - if (Environment.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - app.UseForwardedHeaders(); - app.UseEthernaAcrDebugPages(); - } - else - { - app.UseExceptionHandler("/Error"); - app.UseForwardedHeaders(); - // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. - app.UseHsts(); - } - - app.UseCors(builder => - { - if (Environment.IsDevelopment()) - { - builder.SetIsOriginAllowed(_ => true) - .AllowAnyHeader() - .AllowAnyMethod() - .AllowCredentials(); - } - else - { - builder.WithOrigins("https://etherna.io") - .AllowAnyHeader() - .AllowAnyMethod() - .AllowCredentials(); - } - }); - - app.UseHttpsRedirection(); - app.UseStaticFiles(); - - app.UseRouting(); - - app.UseAuthentication(); - app.UseIdentityServer(); - app.UseAuthorization(); - - // Add Hangfire. - app.UseHangfireDashboard(CommonConsts.HangfireAdminPath, - new Hangfire.DashboardOptions - { - Authorization = new[] { new Configs.Hangfire.AdminAuthFilter() } - }); - - // Add Swagger. - app.UseSwagger(); - app.UseSwaggerUI(options => - { - options.DocumentTitle = "Etherna SSO API"; - - // build a swagger endpoint for each discovered API version - foreach (var description in apiProvider.ApiVersionDescriptions) - { - options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant()); - } - }); - - // Add endpoints. - app.UseEndpoints(endpoints => - { - endpoints.MapControllers(); - endpoints.MapRazorPages(); - }); - - // Register cron tasks. - RecurringJob.AddOrUpdate( - CompileDailyStatsTask.TaskId, - task => task.RunAsync(), - Cron.Daily(2)); - - RecurringJob.AddOrUpdate( - DeleteOldInvitationsTask.TaskId, - task => task.RunAsync(), - Cron.Daily(5)); - - RecurringJob.AddOrUpdate( - ProcessAlphaPassRequestsTask.TaskId, - task => task.RunAsync(), - Cron.Hourly()); - - RecurringJob.AddOrUpdate( - Web3LoginTokensCleanTask.TaskId, - task => task.RunAsync(), - Cron.Daily(3)); - - // Seed db. - app.SeedDbContexts(); - } - } -} From 580baaaf877499db9446fcbd1edced3bc769d442 Mon Sep 17 00:00:00 2001 From: Mirko Da Corte Date: Fri, 5 Jan 2024 19:01:16 +0100 Subject: [PATCH 5/9] user api require jwt claim --- .../Api/Controllers/IdentityController.cs | 4 +- src/EthernaSSO/Configs/CommonConsts.cs | 6 ++- .../Configs/IdentityServer/IdServerConfig.cs | 7 ++- .../RouteTemplateAuthorizationConvention.cs | 45 +++++++++++++++++++ src/EthernaSSO/Program.cs | 34 +++++++++++--- 5 files changed, 83 insertions(+), 13 deletions(-) create mode 100644 src/EthernaSSO/Conventions/RouteTemplateAuthorizationConvention.cs diff --git a/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs b/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs index b5a21537..c3a3c873 100644 --- a/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs +++ b/src/EthernaSSO/Areas/Api/Controllers/IdentityController.cs @@ -45,7 +45,6 @@ public IdentityController( /// /// Current user information [HttpGet] - [Authorize] [SimpleExceptionFilter] [ProducesResponseType(StatusCodes.Status200OK)] public async Task GetCurrentUserAsync() => @@ -57,6 +56,7 @@ public async Task GetCurrentUserAsync() => /// User's ethereum address /// User information [HttpGet("address/{etherAddress}")] + [AllowAnonymous] [SimpleExceptionFilter] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status400BadRequest)] @@ -70,6 +70,7 @@ public Task GetUserByEtherAddressAsync(string etherAddress) => /// User's email /// True if email is registered, false otherwise [HttpGet("email/{email}")] + [AllowAnonymous] [SimpleExceptionFilter] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status400BadRequest)] @@ -82,6 +83,7 @@ public Task IsEmailRegistered(string email) => /// User's username /// User information [HttpGet("username/{username}")] + [AllowAnonymous] [SimpleExceptionFilter] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] diff --git a/src/EthernaSSO/Configs/CommonConsts.cs b/src/EthernaSSO/Configs/CommonConsts.cs index cd29952e..926be358 100644 --- a/src/EthernaSSO/Configs/CommonConsts.cs +++ b/src/EthernaSSO/Configs/CommonConsts.cs @@ -18,13 +18,15 @@ public static class CommonConsts { public const string AdminArea = "Admin"; public const string AlphaPassArea = "AlphaPass"; + public const string ApiArea = "Api"; public const string IdentityArea = "Identity"; public const string DatabaseAdminPath = "/admin/db"; public const string HangfireAdminPath = "/admin/hangfire"; - public const string RequireAdministratorRolePolicy = "RequireAdministratorRole"; - public const string ServiceInteractApiScopePolicy = "ServiceInteractApiScope"; + public const string RequireAdministratorRolePolicy = "RequireAdministratorRolePolicy"; + public const string ServiceInteractApiScopePolicy = "ServiceInteractApiScopePolicy"; + public const string UserInteractApiScopePolicy = "UserInteractApiScopePolicy"; public const string UserAuthenticationPolicyScheme = "userAuthnPolicyScheme"; public const string UserAuthenticationJwtScheme = "userAuthnJwtScheme"; diff --git a/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs b/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs index 30be0c52..c25471f9 100644 --- a/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs +++ b/src/EthernaSSO/Configs/IdentityServer/IdServerConfig.cs @@ -17,7 +17,6 @@ using Etherna.ACR.Exceptions; using Etherna.Authentication; using Microsoft.Extensions.Configuration; -using MongoDB.Driver; using System; using System.Collections.Generic; using System.Linq; @@ -27,7 +26,7 @@ namespace Etherna.SSOServer.Configs.IdentityServer public class IdServerConfig { // Consts. - private static class ApiResourcesDef + public static class ApiResourcesDef { public static readonly ApiResource EthernaCreditServiceInteract = new("ethernaCreditServiceInteract", "Etherna Credit service interact") { @@ -49,7 +48,7 @@ private static class ApiResourcesDef } }; } - private static class ApiScopesDef //these can go in very details of client permissions + public static class ApiScopesDef //these can go in very details of client permissions { //credit service interaction scopes public static readonly ApiScope EthernaCreditServiceInteract = new("ethernaCredit_serviceInteract_api", "Etherna Credit service interact API"); @@ -63,7 +62,7 @@ private static class ApiScopesDef //these can go in very details of client permi public static readonly ApiScope UserInteractEthernaIndex = new("userApi.index", "Etherna Index user API"); public static readonly ApiScope UserInteractEthernaSso = new("userApi.sso", "Etherna Sso user API"); } - private static class IdResourcesDef + public static class IdResourcesDef { public static readonly IdentityResource EtherAccounts = new() { diff --git a/src/EthernaSSO/Conventions/RouteTemplateAuthorizationConvention.cs b/src/EthernaSSO/Conventions/RouteTemplateAuthorizationConvention.cs new file mode 100644 index 00000000..ec088c79 --- /dev/null +++ b/src/EthernaSSO/Conventions/RouteTemplateAuthorizationConvention.cs @@ -0,0 +1,45 @@ +// Copyright 2021-present Etherna Sa +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc.ApplicationModels; +using Microsoft.AspNetCore.Mvc.Authorization; +using System; +using System.Linq; + +namespace Etherna.SSOServer.Conventions +{ + public class RouteTemplateAuthorizationConvention(string routeTemplate, string policyName) + : IApplicationModelConvention + { + public void Apply(ApplicationModel application) + { + ArgumentNullException.ThrowIfNull(application, nameof(application)); + + foreach (var controller in application.Controllers) + { + var isInRouteTemplate = controller.Selectors.Any( + s => s.AttributeRouteModel?.Template?.StartsWith( + routeTemplate, + StringComparison.OrdinalIgnoreCase) ?? false); + + //give priority to authorize attribute + var hasAuthorizeAttribute = controller.Attributes.OfType().Any(); + + if (isInRouteTemplate && !hasAuthorizeAttribute) + controller.Filters.Add(new AuthorizeFilter(policyName)); + } + } + } +} \ No newline at end of file diff --git a/src/EthernaSSO/Program.cs b/src/EthernaSSO/Program.cs index d0b78537..6c5496b4 100644 --- a/src/EthernaSSO/Program.cs +++ b/src/EthernaSSO/Program.cs @@ -29,6 +29,7 @@ using Etherna.SSOServer.Configs.MongODM; using Etherna.SSOServer.Configs.Swagger; using Etherna.SSOServer.Configs.SystemStore; +using Etherna.SSOServer.Conventions; using Etherna.SSOServer.Domain; using Etherna.SSOServer.Domain.Models; using Etherna.SSOServer.Extensions; @@ -68,6 +69,7 @@ using System.Linq; using System.Net; using System.Reflection; +using System.Text.Json.Serialization; using System.Threading.Tasks; using DashboardOptions = Etherna.MongODM.AspNetCore.UI.DashboardOptions; using IPNetwork = Microsoft.AspNetCore.HttpOverrides.IPNetwork; @@ -237,7 +239,18 @@ static Task unauthorizedApiCallHandler(RedirectContext + { + //api by default requires authentication with user interact policy + options.Conventions.Add( + new RouteTemplateAuthorizationConvention( + CommonConsts.ApiArea, + CommonConsts.UserInteractApiScopePolicy)); + }) + .AddJsonOptions(options => + { + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + }); services.AddApiVersioning(options => { options.ReportApiVersions = true; @@ -337,11 +350,20 @@ static Task unauthorizedApiCallHandler(RedirectContext - { - policy.RequireRole(Role.NormalizeName(Role.AdministratorName)); - policy.AddRequirements(new DenyBannedAuthorizationRequirement()); - }); + policy => + { + policy.RequireAuthenticatedUser(); + policy.RequireRole(Role.NormalizeName(Role.AdministratorName)); + policy.AddRequirements(new DenyBannedAuthorizationRequirement()); + }); + + options.AddPolicy(CommonConsts.UserInteractApiScopePolicy, policy => + { + policy.AuthenticationSchemes = new List { CommonConsts.UserAuthenticationJwtScheme }; + policy.RequireAuthenticatedUser(); + policy.RequireClaim("scope", IdServerConfig.ApiScopesDef.UserInteractEthernaSso.Name); + policy.AddRequirements(new DenyBannedAuthorizationRequirement()); + }); options.AddPolicy(CommonConsts.ServiceInteractApiScopePolicy, policy => { From db8fcde240280f9df3a8f69a41a8eb96eb01688c Mon Sep 17 00:00:00 2001 From: Mirko Da Corte Date: Sun, 7 Jan 2024 17:07:29 +0100 Subject: [PATCH 6/9] refresh login when already authenticated --- .../Events/UserLoginSuccessEvent.cs | 23 ++++++------ .../Events/UserRefreshLoginEvent.cs | 29 +++++++++++++++ ...eshLoginThenNotifyIdentityServerHandler.cs | 35 +++++++++++++++++++ .../Identity/Pages/Account/Login.cshtml.cs | 26 ++++++++++++-- .../Pages/Account/SsoExitPageModelBase.cs | 2 +- src/EthernaSSO/Extensions/LoggerExtensions.cs | 11 +++++- .../Pages/Shared/_LoginPartial.cshtml | 2 -- 7 files changed, 109 insertions(+), 19 deletions(-) create mode 100644 src/EthernaSSO.Domain/Events/UserRefreshLoginEvent.cs create mode 100644 src/EthernaSSO.Services/EventHandlers/OnUserRefreshLoginThenNotifyIdentityServerHandler.cs diff --git a/src/EthernaSSO.Domain/Events/UserLoginSuccessEvent.cs b/src/EthernaSSO.Domain/Events/UserLoginSuccessEvent.cs index e16a84a9..e103f197 100644 --- a/src/EthernaSSO.Domain/Events/UserLoginSuccessEvent.cs +++ b/src/EthernaSSO.Domain/Events/UserLoginSuccessEvent.cs @@ -18,19 +18,16 @@ namespace Etherna.SSOServer.Domain.Events { - public class UserLoginSuccessEvent : IDomainEvent + public class UserLoginSuccessEvent( + UserBase user, + string? clientId = null, + string? provider = null, + string? providerUserId = null) + : IDomainEvent { - public UserLoginSuccessEvent(UserBase user, string? clientId = null, string? provider = null, string? providerUserId = null) - { - User = user ?? throw new ArgumentNullException(nameof(user)); - ClientId = clientId; - Provider = provider; - ProviderUserId = providerUserId; - } - - public string? ClientId { get; } - public string? Provider { get; } - public string? ProviderUserId { get; } - public UserBase User { get; } + public string? ClientId { get; } = clientId; + public string? Provider { get; } = provider; + public string? ProviderUserId { get; } = providerUserId; + public UserBase User { get; } = user ?? throw new ArgumentNullException(nameof(user)); } } diff --git a/src/EthernaSSO.Domain/Events/UserRefreshLoginEvent.cs b/src/EthernaSSO.Domain/Events/UserRefreshLoginEvent.cs new file mode 100644 index 00000000..18c23195 --- /dev/null +++ b/src/EthernaSSO.Domain/Events/UserRefreshLoginEvent.cs @@ -0,0 +1,29 @@ +// Copyright 2021-present Etherna Sa +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using Etherna.DomainEvents; +using Etherna.SSOServer.Domain.Models; +using System; + +namespace Etherna.SSOServer.Domain.Events +{ + public class UserRefreshLoginEvent( + UserBase user, + string? clientId = null) + : IDomainEvent + { + public string? ClientId { get; } = clientId; + public UserBase User { get; } = user ?? throw new ArgumentNullException(nameof(user)); + } +} \ No newline at end of file diff --git a/src/EthernaSSO.Services/EventHandlers/OnUserRefreshLoginThenNotifyIdentityServerHandler.cs b/src/EthernaSSO.Services/EventHandlers/OnUserRefreshLoginThenNotifyIdentityServerHandler.cs new file mode 100644 index 00000000..ab7c84e1 --- /dev/null +++ b/src/EthernaSSO.Services/EventHandlers/OnUserRefreshLoginThenNotifyIdentityServerHandler.cs @@ -0,0 +1,35 @@ +// Copyright 2021-present Etherna Sa +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using Duende.IdentityServer.Services; +using Etherna.DomainEvents; +using Etherna.SSOServer.Domain.Events; +using System.Threading.Tasks; +using UserLoginSuccessEvent = Duende.IdentityServer.Events.UserLoginSuccessEvent; + +namespace Etherna.SSOServer.Services.EventHandlers +{ + internal sealed class OnUserRefreshLoginThenNotifyIdentityServerHandler( + IEventService identityServerEventService) + : EventHandlerBase + { + public override Task HandleAsync(UserRefreshLoginEvent @event) => + identityServerEventService.RaiseAsync( + new UserLoginSuccessEvent( + @event.User.Username, + @event.User.Id, + @event.User.Username, + clientId: @event.ClientId)); + } +} \ No newline at end of file diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs index 25378c4f..68bb2e4e 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/Login.cshtml.cs @@ -81,14 +81,36 @@ public LoginModel( public Web3LoginPartialModel Web3LoginPartialModel { get; set; } = default!; // Methods. - public async Task OnGetAsync(string? invitationCode = null, string? returnUrl = null) + public async Task OnGetAsync(string? invitationCode = null, string? returnUrl = null) { if (!string.IsNullOrEmpty(ErrorMessage)) { ModelState.AddModelError(string.Empty, ErrorMessage); } - + await InitializeAsync(invitationCode, returnUrl); + + // Check if user is already authenticated. + if (signInManager.IsSignedIn(User)) + { + var user = await userManager.GetUserAsync(User); + if (user is not null) + { + var context = await idServerInteractionService.GetAuthorizationContextAsync(ReturnUrl); + + // Refresh login. + await signInManager.RefreshSignInAsync(user); + + // Rise event and create log. + await eventDispatcher.DispatchAsync(new UserRefreshLoginEvent(user, clientId: context?.Client?.ClientId)); + logger.RefreshedLogin(user.Id); + + // Identify redirect. + return await ContextedRedirectAsync(context, ReturnUrl); + } + } + + return Page(); } public async Task OnPostAsync(string? invitationCode = null, string? returnUrl = null) diff --git a/src/EthernaSSO/Areas/Identity/Pages/Account/SsoExitPageModelBase.cs b/src/EthernaSSO/Areas/Identity/Pages/Account/SsoExitPageModelBase.cs index cdf162a4..0152893b 100644 --- a/src/EthernaSSO/Areas/Identity/Pages/Account/SsoExitPageModelBase.cs +++ b/src/EthernaSSO/Areas/Identity/Pages/Account/SsoExitPageModelBase.cs @@ -50,7 +50,7 @@ protected async Task ContextedRedirectAsync( //if the client is PKCE then we assume it's native, so this change in how to //return the response is for better UX for the end user HttpContext.Response.StatusCode = 200; - HttpContext.Response.Headers["Location"] = ""; + HttpContext.Response.Headers.Location = ""; return RedirectToPage("/Redirect", new { redirectUrl = returnUrl }); } diff --git a/src/EthernaSSO/Extensions/LoggerExtensions.cs b/src/EthernaSSO/Extensions/LoggerExtensions.cs index 3cd9b21f..cad849bb 100644 --- a/src/EthernaSSO/Extensions/LoggerExtensions.cs +++ b/src/EthernaSSO/Extensions/LoggerExtensions.cs @@ -20,7 +20,7 @@ namespace Etherna.SSOServer.Extensions { /* * Always group similar log delegates by type, always use incremental event ids. - * Last event id is: 25 + * Last event id is: 26 */ public static class LoggerExtensions { @@ -141,6 +141,12 @@ public static class LoggerExtensions new EventId(10, nameof(PasswordChanged)), "User with ID '{UserId}' changed its password successfully."); + private static readonly Action _refreshedLogin = + LoggerMessage.Define( + LogLevel.Information, + new EventId(26, nameof(RefreshedLogin)), + "User with ID '{UserId}' refreshed login."); + private static readonly Action _resetted2FAAuthApp = LoggerMessage.Define( LogLevel.Information, @@ -260,6 +266,9 @@ public static void NoUserFoundWithId(this ILogger logger, string userId) => public static void PasswordChanged(this ILogger logger, string userId) => _passwordChanged(logger, userId, null!); + public static void RefreshedLogin(this ILogger logger, string userId) => + _refreshedLogin(logger, userId, null!); + public static void Resetted2FAAuthApp(this ILogger logger, string userId) => _resetted2FAAuthApp(logger, userId, null!); } diff --git a/src/EthernaSSO/Pages/Shared/_LoginPartial.cshtml b/src/EthernaSSO/Pages/Shared/_LoginPartial.cshtml index 967fce37..24b8b1d4 100644 --- a/src/EthernaSSO/Pages/Shared/_LoginPartial.cshtml +++ b/src/EthernaSSO/Pages/Shared/_LoginPartial.cshtml @@ -15,9 +15,7 @@ @using Etherna.SSOServer.Configs @using Etherna.SSOServer.Domain.Models -@using Microsoft.AspNetCore.Identity @inject SignInManager SignInManager -@inject UserManager UserManager