-
-
- @if (post.Writer != null)
- {
+ @if (post.Writer != null)
+ {
+
+
- }
-
-
+
+
-
+ }
diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs
index 54d1a4e71d..114bdbb641 100644
--- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs
+++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs
@@ -86,7 +86,11 @@ namespace Volo.Blogging.Pages.Blog.Posts
{
Blog = await _blogAppService.GetByShortNameAsync(BlogShortName);
Post = await _postAppService.GetForReadingAsync(new GetPostInput { BlogId = Blog.Id, Url = PostUrl });
- PostsList = await _postAppService.GetListByUserIdAsync(Post.Writer.Id);
+
+ PostsList = Post.Writer != null
+ ? await _postAppService.GetListByUserIdAsync(Post.Writer.Id)
+ : new List
();
+
LatestPosts = await _postAppService.GetLatestBlogPostsAsync(Blog.Id, 5);
CommentsWithReplies = await _commentAppService.GetHierarchicalListOfPostAsync(Post.Id);
CountComments();
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureDefinitionRecord.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureDefinitionRecord.cs
index 0c181ab632..20ba414b08 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureDefinitionRecord.cs
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureDefinitionRecord.cs
@@ -7,13 +7,6 @@ namespace Volo.Abp.FeatureManagement;
public class FeatureDefinitionRecord : BasicAggregateRoot, IHasExtraProperties
{
- /* Ignoring Id because it is different whenever we create an instance of
- * this class, and we are using Json Serialize, than Hash to understand
- * if feature definitions have changed (in StaticFeatureSaver.CalculateHash()).
- */
- [JsonIgnore] //TODO: TODO: Use JSON modifier to ignore this property
- public override Guid Id { get; protected set; }
-
public string GroupName { get; set; }
public string Name { get; set; }
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureGroupDefinitionRecord.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureGroupDefinitionRecord.cs
index 677f055f3e..61c7e60473 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureGroupDefinitionRecord.cs
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureGroupDefinitionRecord.cs
@@ -1,5 +1,4 @@
using System;
-using System.Text.Json.Serialization;
using Volo.Abp.Data;
using Volo.Abp.Domain.Entities;
@@ -7,13 +6,6 @@ namespace Volo.Abp.FeatureManagement;
public class FeatureGroupDefinitionRecord : BasicAggregateRoot, IHasExtraProperties
{
- /* Ignoring Id because it is different whenever we create an instance of
- * this class, and we are using Json Serialize, than Hash to understand
- * if feature definitions have changed (in StaticFeatureSaver.CalculateHash()).
- */
- [JsonIgnore] //TODO: TODO: Use JSON modifier to ignore this property
- public override Guid Id { get; protected set; }
-
public string Name { get; set; }
public string DisplayName { get; set; }
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/StaticFeatureSaver.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/StaticFeatureSaver.cs
index 993e3ed32e..664594952b 100644
--- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/StaticFeatureSaver.cs
+++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/StaticFeatureSaver.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json;
+using System.Text.Json.Serialization.Metadata;
using System.Threading.Tasks;
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.Options;
@@ -10,6 +11,7 @@ using Volo.Abp.Caching;
using Volo.Abp.DependencyInjection;
using Volo.Abp.DistributedLocking;
using Volo.Abp.Features;
+using Volo.Abp.Json.SystemTextJson.Modifiers;
using Volo.Abp.Threading;
using Volo.Abp.Uow;
@@ -297,13 +299,25 @@ public class StaticFeatureSaver : IStaticFeatureSaver, ITransientDependency
IEnumerable deletedFeatureGroups,
IEnumerable deletedFeatures)
{
+ var jsonSerializerOptions = new JsonSerializerOptions
+ {
+ TypeInfoResolver = new DefaultJsonTypeInfoResolver
+ {
+ Modifiers =
+ {
+ new AbpIgnorePropertiesModifiers().CreateModifyAction(x => x.Id),
+ new AbpIgnorePropertiesModifiers().CreateModifyAction(x => x.Id)
+ }
+ }
+ };
+
var stringBuilder = new StringBuilder();
stringBuilder.Append("FeatureGroupRecords:");
- stringBuilder.AppendLine(JsonSerializer.Serialize(featureGroupRecords));
+ stringBuilder.AppendLine(JsonSerializer.Serialize(featureGroupRecords, jsonSerializerOptions));
stringBuilder.Append("FeatureRecords:");
- stringBuilder.AppendLine(JsonSerializer.Serialize(featureRecords));
+ stringBuilder.AppendLine(JsonSerializer.Serialize(featureRecords, jsonSerializerOptions));
stringBuilder.Append("DeletedFeatureGroups:");
stringBuilder.AppendLine(deletedFeatureGroups.JoinAsString(","));
diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo/Abp/FeatureManagement/CalculateHash_Tests.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo/Abp/FeatureManagement/CalculateHash_Tests.cs
new file mode 100644
index 0000000000..048d9f465e
--- /dev/null
+++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo/Abp/FeatureManagement/CalculateHash_Tests.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Text.Json;
+using System.Text.Json.Serialization.Metadata;
+using Shouldly;
+using Volo.Abp.Json.SystemTextJson.Modifiers;
+using Xunit;
+
+namespace Volo.Abp.FeatureManagement;
+
+public class CalculateHash_Tests : FeatureManagementDomainTestBase
+{
+ [Fact]
+ public void Test()
+ {
+ var jsonSerializerOptions = new JsonSerializerOptions
+ {
+ TypeInfoResolver = new DefaultJsonTypeInfoResolver
+ {
+ Modifiers =
+ {
+ new AbpIgnorePropertiesModifiers().CreateModifyAction(x => x.Id),
+ new AbpIgnorePropertiesModifiers().CreateModifyAction(x => x.Id)
+ }
+ }
+ };
+
+ var id = Guid.NewGuid();
+ var json = JsonSerializer.Serialize(new List()
+ {
+ new FeatureGroupDefinitionRecord(id, "Test", "Test")
+ },
+ jsonSerializerOptions);
+
+ json.ShouldNotContain("\"Id\"");
+ json.ShouldNotContain(id.ToString("D"));
+
+ json = JsonSerializer.Serialize(new List()
+ {
+ new FeatureDefinitionRecord(id, "Test", "Test", "Test", "Test", "Test", "Test", true, true,"Test", "Test")
+ },
+ jsonSerializerOptions);
+
+ json.ShouldNotContain("\"Id\"");
+ json.ShouldNotContain(id.ToString("D"));
+ }
+}
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnitRole.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnitRole.cs
index 2f8e9b3baf..88432f9286 100644
--- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnitRole.cs
+++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnitRole.cs
@@ -5,7 +5,7 @@ using Volo.Abp.MultiTenancy;
namespace Volo.Abp.Identity;
///
-/// Represents membership of a User to an OU.
+/// Represents the link between a role and an organization unit.
///
public class OrganizationUnitRole : CreationAuditedEntity, IMultiTenant
{
@@ -36,7 +36,7 @@ public class OrganizationUnitRole : CreationAuditedEntity, IMultiTenant
/// Initializes a new instance of the class.
///
/// TenantId
- /// Id of the User.
+ /// Id of the Role.
/// Id of the .
public OrganizationUnitRole(Guid roleId, Guid organizationUnitId, Guid? tenantId = null)
{
diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs
index 60abbb3054..2dc1963505 100644
--- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs
+++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs
@@ -252,10 +252,10 @@ public class EfCoreIdentityUserRepository : EfCoreRepository x.Email == emailAddress)
.WhereIf(!string.IsNullOrWhiteSpace(name), x => x.Name == name)
.WhereIf(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname)
- .WhereIf(isLockedOut.HasValue, x => x.LockoutEnabled && x.LockoutEnd.Value.CompareTo(DateTime.UtcNow) > 0)
- .WhereIf(notActive.HasValue, x => !x.IsActive)
- .WhereIf(emailConfirmed.HasValue, x => x.EmailConfirmed)
- .WhereIf(isExternal.HasValue, x => x.IsExternal)
+ .WhereIf(isLockedOut.HasValue, x => (x.LockoutEnabled && x.LockoutEnd.HasValue && x.LockoutEnd.Value.CompareTo(DateTime.UtcNow) > 0) == isLockedOut.Value)
+ .WhereIf(notActive.HasValue, x => x.IsActive == !notActive.Value)
+ .WhereIf(emailConfirmed.HasValue, x => x.EmailConfirmed == emailConfirmed.Value)
+ .WhereIf(isExternal.HasValue, x => x.IsExternal == isExternal.Value)
.WhereIf(maxCreationTime != null, p => p.CreationTime <= maxCreationTime)
.WhereIf(minCreationTime != null, p => p.CreationTime >= minCreationTime)
.WhereIf(maxModifitionTime != null, p => p.LastModificationTime <= maxModifitionTime)
diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs
index ae805d9a03..552e22afbe 100644
--- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs
+++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs
@@ -257,10 +257,11 @@ public class MongoIdentityUserRepository : MongoDbRepository>(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress)
.WhereIf>(!string.IsNullOrWhiteSpace(name), x => x.Name == name)
.WhereIf>(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname)
- .WhereIf>(isLockedOut.HasValue, x => x.LockoutEnabled && x.LockoutEnd > DateTimeOffset.UtcNow)
- .WhereIf>(notActive.HasValue, x => !x.IsActive)
- .WhereIf>(emailConfirmed.HasValue, x => x.EmailConfirmed)
- .WhereIf>(isExternal.HasValue, x => x.IsExternal)
+ .WhereIf>(isLockedOut.HasValue && isLockedOut.Value, x => x.LockoutEnabled && x.LockoutEnd != null && x.LockoutEnd > DateTimeOffset.UtcNow)
+ .WhereIf>(isLockedOut.HasValue && !isLockedOut.Value, x => !(x.LockoutEnabled && x.LockoutEnd != null && x.LockoutEnd > DateTimeOffset.UtcNow))
+ .WhereIf>(notActive.HasValue, x => x.IsActive == !notActive.Value)
+ .WhereIf>(emailConfirmed.HasValue, x => x.EmailConfirmed == emailConfirmed.Value)
+ .WhereIf>(isExternal.HasValue, x => x.IsExternal == isExternal.Value)
.WhereIf>(maxCreationTime != null, p => p.CreationTime <= maxCreationTime)
.WhereIf>(minCreationTime != null, p => p.CreationTime >= minCreationTime)
.WhereIf>(maxModifitionTime != null, p => p.LastModificationTime <= maxModifitionTime)
diff --git a/modules/openiddict/app/OpenIddict.Demo.Client.Console/Program.cs b/modules/openiddict/app/OpenIddict.Demo.Client.Console/Program.cs
index 501cf0b543..2e55cc24b1 100644
--- a/modules/openiddict/app/OpenIddict.Demo.Client.Console/Program.cs
+++ b/modules/openiddict/app/OpenIddict.Demo.Client.Console/Program.cs
@@ -134,7 +134,7 @@ tokenResponse = await client.RequestClientCredentialsTokenAsync(new ClientCreden
ClientId = clientId,
ClientSecret = clientSecret,
- Scope = "AbpAPI profile roles email phone offline_access",
+ Scope = "AbpAPI offline_access",
});
if (tokenResponse.IsError)
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs
index 961252aae7..f4d7008ef5 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs
+++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs
@@ -10,6 +10,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using OpenIddict.Abstractions;
using OpenIddict.Server.AspNetCore;
+using Volo.Abp.AspNetCore.Security;
using Volo.Abp.OpenIddict.ViewModels.Authorization;
namespace Volo.Abp.OpenIddict.Controllers;
@@ -20,6 +21,7 @@ public class AuthorizeController : AbpOpenIdDictControllerBase
{
[HttpGet, HttpPost]
[IgnoreAntiforgeryToken]
+ [IgnoreAbpSecurityHeader]
public virtual async Task HandleAsync()
{
var request = await GetOpenIddictServerRequestAsync(HttpContext);
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.ClientCredentials.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.ClientCredentials.cs
index 09f685ac83..f3cdd54485 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.ClientCredentials.cs
+++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.ClientCredentials.cs
@@ -1,6 +1,4 @@
using System;
-using System.Collections.Generic;
-using System.Collections.Immutable;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
@@ -47,27 +45,8 @@ public partial class TokenController
principal.SetScopes(request.GetScopes());
principal.SetResources(await GetResourcesAsync(request.GetScopes()));
- foreach (var claim in principal.Claims)
- {
- claim.SetDestinations(GetDestinations(claim));
- }
+ await OpenIddictClaimsPrincipalManager.HandleAsync(request, principal);
return SignIn(principal, OpenIddictServerAspNetCoreDefaults.AuthenticationScheme);
}
-
-
- protected virtual IEnumerable GetDestinations(Claim claim)
- {
- // Note: by default, claims are NOT automatically included in the access and identity tokens.
- // To allow OpenIddict to serialize them, you must attach them a destination, that specifies
- // whether they should be included in access tokens, in identity tokens or in both.
-
- return claim.Type switch {
- OpenIddictConstants.Claims.PreferredUsername or OpenIddictConstants.Claims.Subject
- => ImmutableArray.Create(OpenIddictConstants.Destinations.AccessToken,
- OpenIddictConstants.Destinations.IdentityToken),
-
- _ => ImmutableArray.Create(OpenIddictConstants.Destinations.AccessToken)
- };
- }
}
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateAuthorizedParty.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateAuthorizedParty.cs
index 81c7d66788..89ebfee28c 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateAuthorizedParty.cs
+++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/WildcardDomains/AbpValidateAuthorizedParty.cs
@@ -25,7 +25,6 @@ public class AbpValidateAuthorizedParty : AbpOpenIddictWildcardDomainBase
protected IUnitOfWorkManager UnitOfWorkManager { get; }
protected IGuidGenerator GuidGenerator { get; }
protected AbpOpenIddictIdentifierConverter IdentifierConverter { get; }
+ protected IOpenIddictDbConcurrencyExceptionHandler ConcurrencyExceptionHandler { get; }
- protected AbpOpenIddictStoreBase(TRepository repository, IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, AbpOpenIddictIdentifierConverter identifierConverter)
+ protected AbpOpenIddictStoreBase(TRepository repository, IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, AbpOpenIddictIdentifierConverter identifierConverter, IOpenIddictDbConcurrencyExceptionHandler concurrencyExceptionHandler)
{
Repository = repository;
UnitOfWorkManager = unitOfWorkManager;
GuidGenerator = guidGenerator;
IdentifierConverter = identifierConverter;
+ ConcurrencyExceptionHandler = concurrencyExceptionHandler;
Logger = NullLogger>.Instance;
}
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs
index 5b90574e59..e02d671652 100644
--- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs
+++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain/Volo/Abp/OpenIddict/Applications/AbpApplicationManager.cs
@@ -44,8 +44,8 @@ public class AbpApplicationManager : OpenIddictApplicationManager();
+ _testData = ServiceProvider.GetRequiredService();
+ }
+
+ [Fact]
+ public async Task Populate_Descriptor_With_Application_Test()
+ {
+ var app1 = (await _applicationManager.FindByClientIdAsync(_testData.App1ClientId)).As();
+
+ var descriptor = new AbpApplicationDescriptor();
+ await _applicationManager.PopulateAsync(descriptor, app1);
+
+ app1.ClientUri.ShouldNotBeNull();
+ app1.LogoUri.ShouldNotBeNull();
+
+ descriptor.ClientUri.ShouldBe(app1.ClientUri);
+ descriptor.LogoUri.ShouldBe(app1.LogoUri);
+ }
+
+ [Fact]
+ public async Task Populate_Application_With_Descriptor_Test()
+ {
+ var app1 = (await _applicationManager.FindByClientIdAsync(_testData.App1ClientId)).As();
+
+ var descriptor = new AbpApplicationDescriptor()
+ {
+ ClientUri = "https://new.com",
+ LogoUri = "https://new.com/logo.png"
+ };
+ await _applicationManager.PopulateAsync(app1, descriptor);
+
+ app1.ClientUri.ShouldBe(descriptor.ClientUri);
+ app1.LogoUri.ShouldBe(descriptor.LogoUri);
+ }
+}
diff --git a/modules/openiddict/test/Volo.Abp.OpenIddict.TestBase/Volo/Abp/OpenIddict/OpenIddictDataSeedContributor.cs b/modules/openiddict/test/Volo.Abp.OpenIddict.TestBase/Volo/Abp/OpenIddict/OpenIddictDataSeedContributor.cs
index eccdf828c6..df8a88a9d3 100644
--- a/modules/openiddict/test/Volo.Abp.OpenIddict.TestBase/Volo/Abp/OpenIddict/OpenIddictDataSeedContributor.cs
+++ b/modules/openiddict/test/Volo.Abp.OpenIddict.TestBase/Volo/Abp/OpenIddict/OpenIddictDataSeedContributor.cs
@@ -92,7 +92,7 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
private async Task CreateApplicationsAsync()
{
- await _applicationManager.CreateAsync(await GetOpenIddictApplicationModelAsync(_testData.App1Id, new OpenIddictApplicationDescriptor
+ await _applicationManager.CreateAsync(await GetOpenIddictApplicationModelAsync(_testData.App1Id, new AbpApplicationDescriptor
{
ClientId = _testData.App1ClientId,
ConsentType = OpenIddictConstants.ConsentTypes.Explicit,
@@ -137,10 +137,12 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
OpenIddictConstants.Permissions.Scopes.Phone,
OpenIddictConstants.Permissions.Prefixes.Scope + _testData.Scope1Name
- }
+ },
+ ClientUri = "https://abp.io/TestApplication",
+ LogoUri = "https://abp.io/TestApplication.png"
}));
- await _applicationManager.CreateAsync(await GetOpenIddictApplicationModelAsync(_testData.App2Id, new OpenIddictApplicationDescriptor
+ await _applicationManager.CreateAsync(await GetOpenIddictApplicationModelAsync(_testData.App2Id, new AbpApplicationDescriptor
{
ClientId = _testData.App2ClientId,
ConsentType = OpenIddictConstants.ConsentTypes.Explicit,
@@ -186,7 +188,9 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
OpenIddictConstants.Permissions.Prefixes.Scope + _testData.Scope1Name,
OpenIddictConstants.Permissions.Prefixes.Scope + _testData.Scope2Name,
- }
+ },
+ ClientUri = "https://abp.io/TestApplication2",
+ LogoUri = "https://abp.io/TestApplication2.png"
}));
}
@@ -240,7 +244,6 @@ public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDep
Subject = "TestSubject1",
Type = OpenIddictConstants.AuthorizationTypes.Permanent,
CreationDate = _clock.Now
-
}));
await _authorizationManager.CreateAsync(await GetOpenIddictAuthorizationModelAsync(_testData.Authorization2Id, new OpenIddictAuthorizationDescriptor
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionRecord.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionRecord.cs
index 2ba9ffa26a..7473eb2589 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionRecord.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionRecord.cs
@@ -1,5 +1,4 @@
using System;
-using System.Text.Json.Serialization;
using Volo.Abp.Data;
using Volo.Abp.Domain.Entities;
using Volo.Abp.MultiTenancy;
@@ -8,25 +7,18 @@ namespace Volo.Abp.PermissionManagement;
public class PermissionDefinitionRecord : BasicAggregateRoot, IHasExtraProperties
{
- /* Ignoring Id because it is different whenever we create an instance of
- * this class, and we are using Json Serialize, than Hash to understand
- * if permission definitions have changed (in StaticPermissionSaver.CalculateHash()).
- */
- [JsonIgnore]
- public override Guid Id { get; protected set; }
-
public string GroupName { get; set; }
-
+
public string Name { get; set; }
-
+
public string ParentName { get; set; }
-
+
public string DisplayName { get; set; }
public bool IsEnabled { get; set; }
-
+
public MultiTenancySides MultiTenancySide { get; set; }
-
+
///
/// Comma separated list of provider names.
///
@@ -36,7 +28,7 @@ public class PermissionDefinitionRecord : BasicAggregateRoot, IHasExtraPro
/// Serialized string to store info about the state checkers.
///
public string StateCheckers { get; set; }
-
+
public ExtraPropertyDictionary ExtraProperties { get; protected set; }
public PermissionDefinitionRecord()
@@ -44,7 +36,7 @@ public class PermissionDefinitionRecord : BasicAggregateRoot, IHasExtraPro
ExtraProperties = new ExtraPropertyDictionary();
this.SetDefaultsForExtraProperties();
}
-
+
public PermissionDefinitionRecord(
Guid id,
string groupName,
@@ -76,37 +68,37 @@ public class PermissionDefinitionRecord : BasicAggregateRoot, IHasExtraPro
{
return false;
}
-
+
if (GroupName != otherRecord.GroupName)
{
return false;
}
-
+
if (ParentName != otherRecord.ParentName)
{
return false;
}
-
+
if (DisplayName != otherRecord.DisplayName)
{
return false;
}
-
+
if (IsEnabled != otherRecord.IsEnabled)
{
return false;
}
-
+
if (MultiTenancySide != otherRecord.MultiTenancySide)
{
return false;
}
-
+
if (Providers != otherRecord.Providers)
{
return false;
}
-
+
if (StateCheckers != otherRecord.StateCheckers)
{
return false;
@@ -126,37 +118,37 @@ public class PermissionDefinitionRecord : BasicAggregateRoot, IHasExtraPro
{
Name = otherRecord.Name;
}
-
+
if (GroupName != otherRecord.GroupName)
{
GroupName = otherRecord.GroupName;
}
-
+
if (ParentName != otherRecord.ParentName)
{
ParentName = otherRecord.ParentName;
}
-
+
if (DisplayName != otherRecord.DisplayName)
{
DisplayName = otherRecord.DisplayName;
}
-
+
if (IsEnabled != otherRecord.IsEnabled)
{
IsEnabled = otherRecord.IsEnabled;
}
-
+
if (MultiTenancySide != otherRecord.MultiTenancySide)
{
MultiTenancySide = otherRecord.MultiTenancySide;
}
-
+
if (Providers != otherRecord.Providers)
{
Providers = otherRecord.Providers;
}
-
+
if (StateCheckers != otherRecord.StateCheckers)
{
StateCheckers = otherRecord.StateCheckers;
@@ -165,11 +157,11 @@ public class PermissionDefinitionRecord : BasicAggregateRoot, IHasExtraPro
if (!this.HasSameExtraProperties(otherRecord))
{
this.ExtraProperties.Clear();
-
+
foreach (var property in otherRecord.ExtraProperties)
{
this.ExtraProperties.Add(property.Key, property.Value);
}
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecord.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecord.cs
index f93bf57e21..4cd9c90894 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecord.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionGroupDefinitionRecord.cs
@@ -1,5 +1,4 @@
using System;
-using System.Text.Json.Serialization;
using Volo.Abp.Data;
using Volo.Abp.Domain.Entities;
@@ -7,17 +6,10 @@ namespace Volo.Abp.PermissionManagement;
public class PermissionGroupDefinitionRecord : BasicAggregateRoot, IHasExtraProperties
{
- /* Ignoring Id because it is different whenever we create an instance of
- * this class, and we are using Json Serialize, than Hash to understand
- * if permission definitions have changed (in StaticPermissionSaver.CalculateHash()).
- */
- [JsonIgnore]
- public override Guid Id { get; protected set; }
-
public string Name { get; set; }
-
+
public string DisplayName { get; set; }
-
+
public ExtraPropertyDictionary ExtraProperties { get; protected set; }
public PermissionGroupDefinitionRecord()
@@ -25,7 +17,7 @@ public class PermissionGroupDefinitionRecord : BasicAggregateRoot, IHasExt
ExtraProperties = new ExtraPropertyDictionary();
this.SetDefaultsForExtraProperties();
}
-
+
public PermissionGroupDefinitionRecord(
Guid id,
string name,
@@ -45,7 +37,7 @@ public class PermissionGroupDefinitionRecord : BasicAggregateRoot, IHasExt
{
return false;
}
-
+
if (DisplayName != otherRecord.DisplayName)
{
return false;
@@ -70,15 +62,15 @@ public class PermissionGroupDefinitionRecord : BasicAggregateRoot, IHasExt
{
DisplayName = otherRecord.DisplayName;
}
-
+
if (!this.HasSameExtraProperties(otherRecord))
{
this.ExtraProperties.Clear();
-
+
foreach (var property in otherRecord.ExtraProperties)
{
this.ExtraProperties.Add(property.Key, property.Value);
}
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs
index 0bde8ebb0a..1ef851dac3 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json;
+using System.Text.Json.Serialization.Metadata;
using System.Threading.Tasks;
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.Options;
@@ -10,6 +11,7 @@ using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Caching;
using Volo.Abp.DependencyInjection;
using Volo.Abp.DistributedLocking;
+using Volo.Abp.Json.SystemTextJson.Modifiers;
using Volo.Abp.Threading;
using Volo.Abp.Uow;
@@ -298,13 +300,25 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
IEnumerable deletedPermissionGroups,
IEnumerable deletedPermissions)
{
+ var jsonSerializerOptions = new JsonSerializerOptions
+ {
+ TypeInfoResolver = new DefaultJsonTypeInfoResolver
+ {
+ Modifiers =
+ {
+ new AbpIgnorePropertiesModifiers().CreateModifyAction(x => x.Id),
+ new AbpIgnorePropertiesModifiers().CreateModifyAction(x => x.Id)
+ }
+ }
+ };
+
var stringBuilder = new StringBuilder();
stringBuilder.Append("PermissionGroupRecords:");
- stringBuilder.AppendLine(JsonSerializer.Serialize(permissionGroupRecords));
+ stringBuilder.AppendLine(JsonSerializer.Serialize(permissionGroupRecords, jsonSerializerOptions));
stringBuilder.Append("PermissionRecords:");
- stringBuilder.AppendLine(JsonSerializer.Serialize(permissionRecords));
+ stringBuilder.AppendLine(JsonSerializer.Serialize(permissionRecords, jsonSerializerOptions));
stringBuilder.Append("DeletedPermissionGroups:");
stringBuilder.AppendLine(deletedPermissionGroups.JoinAsString(","));
diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/CalculateHash_Tests.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/CalculateHash_Tests.cs
new file mode 100644
index 0000000000..2e862c8f85
--- /dev/null
+++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/CalculateHash_Tests.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Text.Json;
+using System.Text.Json.Serialization.Metadata;
+using Shouldly;
+using Volo.Abp.Json.SystemTextJson.Modifiers;
+using Xunit;
+
+namespace Volo.Abp.PermissionManagement;
+
+public class CalculateHash_Tests: PermissionTestBase
+{
+ [Fact]
+ public void Test()
+ {
+ var jsonSerializerOptions = new JsonSerializerOptions
+ {
+ TypeInfoResolver = new DefaultJsonTypeInfoResolver
+ {
+ Modifiers =
+ {
+ new AbpIgnorePropertiesModifiers().CreateModifyAction(x => x.Id),
+ new AbpIgnorePropertiesModifiers().CreateModifyAction(x => x.Id)
+ }
+ }
+ };
+ var id = Guid.NewGuid();
+ var json = JsonSerializer.Serialize(new List()
+ {
+ new PermissionGroupDefinitionRecord(id, "Test", "Test")
+ },
+ jsonSerializerOptions);
+ json.ShouldNotContain("\"Id\"");
+ json.ShouldNotContain(id.ToString("D"));
+ json = JsonSerializer.Serialize(new List()
+ {
+ new PermissionDefinitionRecord(id, "Test", "Test", "Test", "Test")
+ },
+ jsonSerializerOptions);
+ json.ShouldNotContain("\"Id\"");
+ json.ShouldNotContain(id.ToString("D"));
+ }
+}
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor
index ff2cd7e73a..14397eed24 100644
--- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor
@@ -23,7 +23,7 @@
@foreach (var group in SettingComponentCreationContext.Groups)
{
-
+
@group.DisplayName
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.js b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.js
index 07b40c2c38..7abe85b089 100644
--- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.js
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.js
@@ -20,7 +20,7 @@
}).done(function (response) {
$('#tab-content').children('.tab-pane').removeClass('show').removeClass('active');
_this.attr('data-bs-target', '#' + $.escapeSelector($.escapeSelector(id)));
- $('#tab-content').append('' + response + '
');
+ $('#tab-content').append('' + response + '
');
})
});
}).first().click();
diff --git a/npm/lerna.json b/npm/lerna.json
index 4f6f9433d4..faa4964cfb 100644
--- a/npm/lerna.json
+++ b/npm/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "7.2.2",
+ "version": "7.3.0-rc.1",
"packages": [
"packs/*"
],
diff --git a/npm/ng-packs/apps/dev-app/project.json b/npm/ng-packs/apps/dev-app/project.json
index 88ce39325b..30fed19de1 100644
--- a/npm/ng-packs/apps/dev-app/project.json
+++ b/npm/ng-packs/apps/dev-app/project.json
@@ -24,9 +24,9 @@
"bundleName": "bootstrap-rtl.min"
},
{
- "input": "node_modules/bootstrap/dist/css/bootstrap.min.css",
- "inject": true,
- "bundleName": "bootstrap-ltr.min"
+ "input": "node_modules/bootstrap/dist/css/bootstrap.min.css",
+ "inject": true,
+ "bundleName": "bootstrap-ltr.min"
},
{
"input": "node_modules/@volo/ngx-lepton-x.lite/assets/css/bootstrap-dim.css",
diff --git a/npm/ng-packs/apps/dev-app/src/app/app.module.ts b/npm/ng-packs/apps/dev-app/src/app/app.module.ts
index 65c79a5707..7e903dff0d 100644
--- a/npm/ng-packs/apps/dev-app/src/app/app.module.ts
+++ b/npm/ng-packs/apps/dev-app/src/app/app.module.ts
@@ -1,22 +1,22 @@
-import { ThemeBasicModule } from '@abp/ng.theme.basic';
-import { AccountConfigModule } from '@abp/ng.account/config';
+import { NgModule } from '@angular/core';
+import { BrowserModule } from '@angular/platform-browser';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { CoreModule } from '@abp/ng.core';
import { registerLocale } from '@abp/ng.core/locale';
+import { ThemeSharedModule } from '@abp/ng.theme.shared';
+import { ThemeLeptonXModule } from '@abp/ng.theme.lepton-x';
+import { SideMenuLayoutModule } from '@abp/ng.theme.lepton-x/layouts';
import { IdentityConfigModule } from '@abp/ng.identity/config';
+import { AbpOAuthModule } from '@abp/ng.oauth';
import { SettingManagementConfigModule } from '@abp/ng.setting-management/config';
import { TenantManagementConfigModule } from '@abp/ng.tenant-management/config';
-import { ThemeLeptonXModule } from '@abp/ng.theme.lepton-x';
-import { SideMenuLayoutModule } from '@abp/ng.theme.lepton-x/layouts';
-import { ThemeSharedModule } from '@abp/ng.theme.shared';
-import { NgModule } from '@angular/core';
-import { BrowserModule } from '@angular/platform-browser';
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+import { FeatureManagementModule } from '@abp/ng.feature-management';
+import { AccountConfigModule } from '@abp/ng.account/config';
+import { AccountLayoutModule } from '@abp/ng.theme.lepton-x/account';
import { environment } from '../environments/environment';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { APP_ROUTE_PROVIDER } from './route.provider';
-import { FeatureManagementModule } from '@abp/ng.feature-management';
-import { AbpOAuthModule } from '@abp/ng.oauth';
@NgModule({
imports: [
@@ -36,7 +36,9 @@ import { AbpOAuthModule } from '@abp/ng.oauth';
TenantManagementConfigModule.forRoot(),
FeatureManagementModule.forRoot(),
SettingManagementConfigModule.forRoot(),
- ThemeBasicModule.forRoot(),
+ ThemeLeptonXModule.forRoot(),
+ SideMenuLayoutModule.forRoot(),
+ AccountLayoutModule.forRoot(),
],
providers: [APP_ROUTE_PROVIDER],
declarations: [AppComponent],
diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json
index 0b20e27525..287bd0963f 100644
--- a/npm/ng-packs/package.json
+++ b/npm/ng-packs/package.json
@@ -41,24 +41,23 @@
"migrate-nx": "yarn nx migrate --run-migrations",
"copy-to:app": "cd scripts && yarn && yarn copy-to-templates -t app",
"update-version": "nx generate @abp/nx.generators:update-version"
-
},
"private": true,
"devDependencies": {
- "@abp/ng.account": "~7.2.1",
- "@abp/ng.account.core": "~7.2.1",
- "@abp/ng.core": "~7.2.1",
- "@abp/ng.feature-management": "~7.2.1",
- "@abp/ng.identity": "~7.2.1",
- "@abp/ng.oauth": "~7.2.1",
- "@abp/ng.permission-management": "~7.2.1",
- "@abp/ng.schematics": "~7.2.1",
- "@abp/ng.setting-management": "~7.2.1",
- "@abp/ng.tenant-management": "~7.2.1",
- "@abp/ng.theme.basic": "~7.2.1",
- "@abp/ng.theme.lepton-x": "^2.2.0",
- "@abp/ng.theme.shared": "~7.2.1",
- "@abp/utils": "~7.2.1",
+ "@abp/ng.account": "~7.3.0-rc.1",
+ "@abp/ng.account.core": "~7.3.0-rc.1",
+ "@abp/ng.core": "~7.3.0-rc.1",
+ "@abp/ng.feature-management": "~7.3.0-rc.1",
+ "@abp/ng.identity": "~7.3.0-rc.1",
+ "@abp/ng.oauth": "~7.3.0-rc.1",
+ "@abp/ng.permission-management": "~7.3.0-rc.1",
+ "@abp/ng.schematics": "~7.3.0-rc.1",
+ "@abp/ng.setting-management": "~7.3.0-rc.1",
+ "@abp/ng.tenant-management": "~7.3.0-rc.1",
+ "@abp/ng.theme.basic": "~7.3.0-rc.1",
+ "@abp/ng.theme.lepton-x": "^2.3.0-rc.1",
+ "@abp/ng.theme.shared": "~7.3.0-rc.1",
+ "@abp/utils": "~7.3.0-rc.1",
"@angular-devkit/build-angular": "16.0.1",
"@angular-devkit/core": "16.0.1",
"@angular-devkit/schematics": "16.0.1",
@@ -120,7 +119,7 @@
"lerna": "^4.0.0",
"lint-staged": "^13.0.3",
"ng-packagr": "16.0.1",
- "ng-zorro-antd": "^15.0.0",
+ "ng-zorro-antd": "^16.0.0",
"nx": "16.2.2",
"perfect-scrollbar": "^1.5.5",
"postcss": "^8.3.9",
@@ -149,4 +148,3 @@
},
"dependencies": {}
}
-
diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json
index 52f8f685d9..6a8bd364f4 100644
--- a/npm/ng-packs/packages/account-core/package.json
+++ b/npm/ng-packs/packages/account-core/package.json
@@ -1,14 +1,14 @@
{
"name": "@abp/ng.account.core",
- "version": "7.2.2",
+ "version": "7.3.0-rc.1",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"peerDependencies": {
- "@abp/ng.core": "~7.2.2",
- "@abp/ng.theme.shared": "~7.2.2",
+ "@abp/ng.core": "~7.3.0-rc.1",
+ "@abp/ng.theme.shared": "~7.3.0-rc.1",
"@angular/common": ">=12.0.0",
"@angular/core": ">=12.0.0"
},
diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json
index 53c5e40a6a..6c6a22c961 100644
--- a/npm/ng-packs/packages/account/package.json
+++ b/npm/ng-packs/packages/account/package.json
@@ -1,14 +1,14 @@
{
"name": "@abp/ng.account",
- "version": "7.2.2",
+ "version": "7.3.0-rc.1",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.account.core": "~7.2.2",
- "@abp/ng.theme.shared": "~7.2.2",
+ "@abp/ng.account.core": "~7.3.0-rc.1",
+ "@abp/ng.theme.shared": "~7.3.0-rc.1",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/account/src/lib/account-routing.module.ts b/npm/ng-packs/packages/account/src/lib/account-routing.module.ts
index e4b18a717b..0b188f3751 100644
--- a/npm/ng-packs/packages/account/src/lib/account-routing.module.ts
+++ b/npm/ng-packs/packages/account/src/lib/account-routing.module.ts
@@ -1,20 +1,22 @@
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes, mapToCanActivate } from '@angular/router';
+
import {
AuthGuard,
ReplaceableComponents,
ReplaceableRouteContainerComponent,
RouterOutletComponent,
} from '@abp/ng.core';
-import { NgModule } from '@angular/core';
-import { RouterModule, Routes } from '@angular/router';
+
import { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';
import { LoginComponent } from './components/login/login.component';
import { ManageProfileComponent } from './components/manage-profile/manage-profile.component';
import { RegisterComponent } from './components/register/register.component';
import { ResetPasswordComponent } from './components/reset-password/reset-password.component';
import { eAccountComponents } from './enums/components';
-import { AuthenticationFlowGuard } from './guards/authentication-flow.guard';
-import { AccountExtensionsGuard } from './guards';
+import { AccountExtensionsGuard, AuthenticationFlowGuard } from './guards';
+const canActivate = mapToCanActivate([AuthenticationFlowGuard]);
const routes: Routes = [
{ path: '', pathMatch: 'full', redirectTo: 'login' },
@@ -25,7 +27,7 @@ const routes: Routes = [
{
path: 'login',
component: ReplaceableRouteContainerComponent,
- canActivate: [AuthenticationFlowGuard],
+ canActivate,
data: {
replaceableComponent: {
key: eAccountComponents.Login,
@@ -36,7 +38,7 @@ const routes: Routes = [
{
path: 'register',
component: ReplaceableRouteContainerComponent,
- canActivate: [AuthenticationFlowGuard],
+ canActivate,
data: {
replaceableComponent: {
key: eAccountComponents.Register,
@@ -47,7 +49,8 @@ const routes: Routes = [
{
path: 'forgot-password',
component: ReplaceableRouteContainerComponent,
- canActivate: [AuthenticationFlowGuard],
+ canActivate,
+
data: {
replaceableComponent: {
key: eAccountComponents.ForgotPassword,
@@ -70,7 +73,7 @@ const routes: Routes = [
{
path: 'manage',
component: ReplaceableRouteContainerComponent,
- canActivate: [AuthGuard, AccountExtensionsGuard],
+ canActivate: mapToCanActivate([AuthGuard, AccountExtensionsGuard]),
data: {
replaceableComponent: {
key: eAccountComponents.ManageProfile,
diff --git a/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html b/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html
index d7e0b6737b..154b8cfba8 100644
--- a/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html
+++ b/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html
@@ -1,4 +1,4 @@
-