From 61dcbb19eb47cafcb0e8c18b644a09730669be73 Mon Sep 17 00:00:00 2001 From: Mahmut Gundogdu Date: Wed, 21 Jun 2023 18:37:31 +0300 Subject: [PATCH 01/10] Excract generic as array (or not) --- npm/ng-packs/packages/schematics/src/utils/generics.ts | 8 +++++--- npm/ng-packs/packages/schematics/src/utils/rule.ts | 3 +++ npm/ng-packs/packages/schematics/src/utils/type.ts | 6 ++---- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/generics.ts b/npm/ng-packs/packages/schematics/src/utils/generics.ts index 193c62b1a5..96376900e7 100644 --- a/npm/ng-packs/packages/schematics/src/utils/generics.ts +++ b/npm/ng-packs/packages/schematics/src/utils/generics.ts @@ -67,21 +67,23 @@ export function generateRefWithPlaceholders(sourceType: string) { } export function extractSimpleGenerics(sourceType: string) { - const { identifier, generics } = extractGenerics(sourceType); + const { identifier, generics, array } = extractGenerics(sourceType); return { identifier: getLastSegment(identifier), generics: generics.map(getLastSegment), + array }; } export function extractGenerics(sourceType: string) { + const isArray = /\[\]$/.test(sourceType); const regex = /(?[^<]+)(<(?.+)>)?/g; const { identifier = '', generics = '' } = regex.exec(sourceType)?.groups ?? {}; - - return { + return { identifier, generics: generics.split(/,\s*/).filter(Boolean), + array: isArray ? '[]':'' }; } diff --git a/npm/ng-packs/packages/schematics/src/utils/rule.ts b/npm/ng-packs/packages/schematics/src/utils/rule.ts index c68347531f..c2a44e6474 100644 --- a/npm/ng-packs/packages/schematics/src/utils/rule.ts +++ b/npm/ng-packs/packages/schematics/src/utils/rule.ts @@ -25,6 +25,9 @@ export function applyWithOverwrite(source: Source, rules: Rule[]): Rule { export function mergeAndAllowDelete(host: Tree, rule: Rule) { return async (tree: Tree, context: SchematicContext) => { const nextTree = await callRule(rule, tree, context).toPromise(); + if(!nextTree){ + return; + } host.merge(nextTree, MergeStrategy.AllowDeleteConflict); }; } diff --git a/npm/ng-packs/packages/schematics/src/utils/type.ts b/npm/ng-packs/packages/schematics/src/utils/type.ts index dbae0c55db..a5c83f8e63 100644 --- a/npm/ng-packs/packages/schematics/src/utils/type.ts +++ b/npm/ng-packs/packages/schematics/src/utils/type.ts @@ -14,10 +14,8 @@ export function createTypeSimplifier() { ); type = /any` : identifier; + const { identifier, generics, array} = extractSimpleGenerics(type); + return generics.length ? `${identifier}<${generics.join(', ')}>${array}` : identifier; }); return (type: string) => { From bbec7d4aa2d4fce1e2087c77f58a360565e0c763 Mon Sep 17 00:00:00 2001 From: Salih Date: Thu, 22 Jun 2023 13:56:42 +0300 Subject: [PATCH 02/10] Add paging to docs module search result --- .../Docs/Documents/IDocumentAppService.cs | 3 +- .../Volo/Docs/Documents/DocumentAppService.cs | 11 +-- .../Elastic/ElasticDocumentFullSearch.cs | 4 +- .../FullSearch/Elastic/EsDocumentResult.cs | 15 ++++ .../FullSearch/Elastic/IDocumentFullSearch.cs | 2 +- .../Docs/Documents/DocsDocumentController.cs | 3 +- .../Pages/Documents/Search.cshtml | 78 ++++++++++--------- .../Pages/Documents/Search.cshtml.cs | 26 ++++++- 8 files changed, 95 insertions(+), 47 deletions(-) create mode 100644 modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/EsDocumentResult.cs diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs index 653d823ff6..bd901194e6 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; namespace Volo.Docs.Documents @@ -16,7 +17,7 @@ namespace Volo.Docs.Documents Task GetResourceAsync(GetDocumentResourceInput input); - Task> SearchAsync(DocumentSearchInput input); + Task> SearchAsync(DocumentSearchInput input); Task FullSearchEnabledAsync(); diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs index 228648f2fb..8eefc42d6d 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Volo.Abp; +using Volo.Abp.Application.Dtos; using Volo.Abp.Caching; using Volo.Docs.Caching; using Volo.Docs.Documents.FullSearch.Elastic; @@ -176,16 +177,16 @@ namespace Volo.Docs.Documents ); } - public async Task> SearchAsync(DocumentSearchInput input) + public async Task> SearchAsync(DocumentSearchInput input) { var project = await _projectRepository.GetAsync(input.ProjectId); input.Version = GetProjectVersionPrefixIfExist(project) + input.Version; - var esDocs = - await _documentFullSearch.SearchAsync(input.Context, project.Id, input.LanguageCode, input.Version); + var esDocResult = + await _documentFullSearch.SearchAsync(input.Context, project.Id, input.LanguageCode, input.Version, input.SkipCount, input.MaxResultCount); - return esDocs.Select(esDoc => new DocumentSearchOutput //TODO: auto map + return new PagedResultDto(esDocResult.TotalCount,esDocResult.EsDocuments.Select(esDoc => new DocumentSearchOutput //TODO: auto map { Name = esDoc.Name, FileName = esDoc.FileName, @@ -194,7 +195,7 @@ namespace Volo.Docs.Documents Highlight = esDoc.Highlight }).Where(x => x.FileName != project.NavigationDocumentName && x.FileName != project.ParametersDocumentName) - .ToList(); + .ToList()); } public async Task FullSearchEnabledAsync() diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/ElasticDocumentFullSearch.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/ElasticDocumentFullSearch.cs index 6a6c8cc7e4..e5f8401b20 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/ElasticDocumentFullSearch.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/ElasticDocumentFullSearch.cs @@ -138,7 +138,7 @@ namespace Volo.Docs.Documents.FullSearch.Elastic .DeleteByQueryAsync(request, cancellationToken)); } - public virtual async Task> SearchAsync(string context, Guid projectId, string languageCode, + public virtual async Task SearchAsync(string context, Guid projectId, string languageCode, string version, int? skipCount = null, int? maxResultCount = null, CancellationToken cancellationToken = default) { @@ -212,7 +212,7 @@ namespace Volo.Docs.Documents.FullSearch.Elastic docs.Add(doc); } - return docs; + return new EsDocumentResult { EsDocuments = docs, TotalCount = response.Total }; } protected virtual void HandleError(IElasticsearchResponse response) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/EsDocumentResult.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/EsDocumentResult.cs new file mode 100644 index 0000000000..269dc0e92d --- /dev/null +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/EsDocumentResult.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +namespace Volo.Docs.Documents.FullSearch.Elastic; + +public class EsDocumentResult +{ + public EsDocumentResult() + { + EsDocuments = new List(); + } + + public long TotalCount { get; set; } + + public List EsDocuments { get; set; } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/IDocumentFullSearch.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/IDocumentFullSearch.cs index 2c7cf1f3e6..77537b4e38 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/IDocumentFullSearch.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/IDocumentFullSearch.cs @@ -19,7 +19,7 @@ namespace Volo.Docs.Documents.FullSearch.Elastic Task DeleteAllByProjectIdAsync(Guid projectId, CancellationToken cancellationToken = default); - Task> SearchAsync(string context, Guid projectId, string languageCode, + Task SearchAsync(string context, Guid projectId, string languageCode, string version, int? skipCount = null, int? maxResultCount = null, CancellationToken cancellationToken = default); diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs index 9316f8eb97..2fd22c34a8 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp; +using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc; namespace Volo.Docs.Documents @@ -49,7 +50,7 @@ namespace Volo.Docs.Documents [HttpPost] [Route("search")] - public Task> SearchAsync(DocumentSearchInput input) + public Task> SearchAsync(DocumentSearchInput input) { return DocumentAppService.SearchAsync(input); } diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml index 82b1a80492..7056af34cb 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml @@ -41,45 +41,53 @@ -
-
-
@L["SearchResults"]
-
-
- @foreach (var docs in Model.SearchOutputs) - { -
-
-
- @functions - { - string RemoveFileExtensionFromPath(string path) + @if (!Model.KeyWord.IsNullOrWhiteSpace()) + { +
+
+
@L["SearchResults"]
+
+
+ @foreach (var docs in Model.SearchOutputs) + { +
+
+
+ @functions { - if (path == null) + string RemoveFileExtensionFromPath(string path) { - return null; + if (path == null) + { + return null; + } + + return path.EndsWith("." + @Model.Project.Format) + ? path.Left(path.Length - Model.Project.Format.Length - 1) + : path; } - - return path.EndsWith("." + @Model.Project.Format) - ? path.Left(path.Length - Model.Project.Format.Length - 1) - : path; } - } -
- - @RemoveFileExtensionFromPath(docs.Name) - -
-
- @foreach (var highlight in docs.Highlight) - { -

@Html.Raw(highlight)

- } -
-
+
+ + @RemoveFileExtensionFromPath(docs.Name) + +
+
+ @foreach (var highlight in docs.Highlight) + { +

@Html.Raw(highlight)

+ } +
+
+
-
- } + } + @if (Model.PagerModel != null) + { + + } +
-
+ } +
\ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs index d1f7b50b70..64df5e8dc2 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using System.Web; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination; using Volo.Docs.Documents; using Volo.Docs.GitHub.Documents.Version; using Volo.Docs.HtmlConverting; @@ -24,6 +25,10 @@ namespace Volo.Docs.Pages.Documents [BindProperty(SupportsGet = true)] public string LanguageCode { get; set; } [BindProperty(SupportsGet = true)] public string KeyWord { get; set; } + + [BindProperty(SupportsGet = true)] public int CurrentPage { get; set; } = 1; + + public PagerModel PagerModel { get; set; } public ProjectDto Project { get; set; } @@ -49,6 +54,11 @@ namespace Volo.Docs.Pages.Documents return RedirectToPage("Index"); } + if (keyword.IsNullOrWhiteSpace()) + { + return Page(); + } + KeyWord = keyword; Project = await _projectAppService.GetAsync(ProjectName); @@ -72,13 +82,25 @@ namespace Volo.Docs.Pages.Documents } } - SearchOutputs = await _documentAppService.SearchAsync(new DocumentSearchInput + var pagedSearchOutputs = await _documentAppService.SearchAsync(new DocumentSearchInput { ProjectId = Project.Id, Context = KeyWord, LanguageCode = LanguageCode, - Version = Version + Version = Version, + MaxResultCount = 10, + SkipCount = (CurrentPage - 1) * 10 }); + + SearchOutputs = pagedSearchOutputs.Items.ToList(); + + PagerModel = new PagerModel(pagedSearchOutputs.TotalCount, 10, CurrentPage, 10, Url.Page("Search", new + { + ProjectName, + Version, + LanguageCode, + KeyWord + })); var highlightTag1 = Guid.NewGuid().ToString(); var highlightTag2 = Guid.NewGuid().ToString(); From e210731217a9c885e1cc14ad6d79b04403b596f7 Mon Sep 17 00:00:00 2001 From: Salih Date: Thu, 22 Jun 2023 14:02:34 +0300 Subject: [PATCH 03/10] Update Host Migration --- ....cs => 20230622110108_Initial.Designer.cs} | 49 +++++++++++++++++-- ...1_Initial.cs => 20230622110108_Initial.cs} | 27 ++++++++++ .../VoloDocsDbContextModelSnapshot.cs | 46 ++++++++++++++++- 3 files changed, 117 insertions(+), 5 deletions(-) rename modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/{20220923075101_Initial.Designer.cs => 20230622110108_Initial.Designer.cs} (96%) rename modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/{20220923075101_Initial.cs => 20230622110108_Initial.cs} (95%) diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20220923075101_Initial.Designer.cs b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20230622110108_Initial.Designer.cs similarity index 96% rename from modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20220923075101_Initial.Designer.cs rename to modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20230622110108_Initial.Designer.cs index 89c93dcc84..cdd15cda63 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20220923075101_Initial.Designer.cs +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20230622110108_Initial.Designer.cs @@ -13,18 +13,19 @@ using VoloDocs.EntityFrameworkCore; namespace Migrations { [DbContext(typeof(VoloDocsDbContext))] - [Migration("20220923075101_Initial")] + [Migration("20230622110108_Initial")] partial class Initial { + /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.Identity.IdentityClaimType", b => { @@ -112,6 +113,9 @@ namespace Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -298,6 +302,9 @@ namespace Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -326,6 +333,9 @@ namespace Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); + b.Property("LastPasswordChangeTime") + .HasColumnType("datetimeoffset"); + b.Property("LockoutEnabled") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -374,6 +384,9 @@ namespace Migrations .HasColumnType("nvarchar(256)") .HasColumnName("SecurityStamp"); + b.Property("ShouldChangePasswordOnNextLogin") + .HasColumnType("bit"); + b.Property("Surname") .HasMaxLength(64) .HasColumnType("nvarchar(64)") @@ -436,6 +449,33 @@ namespace Migrations b.ToTable("AbpUserClaims", (string)null); }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserDelegation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("SourceUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TargetUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("AbpUserDelegations", (string)null); + }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => { b.Property("UserId") @@ -576,6 +616,9 @@ namespace Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20220923075101_Initial.cs b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20230622110108_Initial.cs similarity index 95% rename from modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20220923075101_Initial.cs rename to modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20230622110108_Initial.cs index 4715db32f4..606214611c 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20220923075101_Initial.cs +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/20230622110108_Initial.cs @@ -5,8 +5,10 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace Migrations { + /// public partial class Initial : Migration { + /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( @@ -53,6 +55,7 @@ namespace Migrations ParentId = table.Column(type: "uniqueidentifier", nullable: true), Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -133,6 +136,7 @@ namespace Migrations IsDefault = table.Column(type: "bit", nullable: false), IsStatic = table.Column(type: "bit", nullable: false), IsPublic = table.Column(type: "bit", nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) }, @@ -181,6 +185,22 @@ namespace Migrations table.PrimaryKey("PK_AbpSettings", x => x.Id); }); + migrationBuilder.CreateTable( + name: "AbpUserDelegations", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + SourceUserId = table.Column(type: "uniqueidentifier", nullable: false), + TargetUserId = table.Column(type: "uniqueidentifier", nullable: false), + StartTime = table.Column(type: "datetime2", nullable: false), + EndTime = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserDelegations", x => x.Id); + }); + migrationBuilder.CreateTable( name: "AbpUsers", columns: table => new @@ -204,6 +224,9 @@ namespace Migrations LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), + ShouldChangePasswordOnNextLogin = table.Column(type: "bit", nullable: false), + EntityVersion = table.Column(type: "int", nullable: false), + LastPasswordChangeTime = table.Column(type: "datetimeoffset", nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -578,6 +601,7 @@ namespace Migrations column: "UserName"); } + /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( @@ -610,6 +634,9 @@ namespace Migrations migrationBuilder.DropTable( name: "AbpUserClaims"); + migrationBuilder.DropTable( + name: "AbpUserDelegations"); + migrationBuilder.DropTable( name: "AbpUserLogins"); diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/VoloDocsDbContextModelSnapshot.cs b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/VoloDocsDbContextModelSnapshot.cs index 12b920e7fa..7627101da3 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/VoloDocsDbContextModelSnapshot.cs +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/Migrations/VoloDocsDbContextModelSnapshot.cs @@ -19,10 +19,10 @@ namespace Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("ProductVersion", "7.0.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Volo.Abp.Identity.IdentityClaimType", b => { @@ -110,6 +110,9 @@ namespace Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -296,6 +299,9 @@ namespace Migrations .HasDefaultValue(false) .HasColumnName("EmailConfirmed"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); @@ -324,6 +330,9 @@ namespace Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); + b.Property("LastPasswordChangeTime") + .HasColumnType("datetimeoffset"); + b.Property("LockoutEnabled") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -372,6 +381,9 @@ namespace Migrations .HasColumnType("nvarchar(256)") .HasColumnName("SecurityStamp"); + b.Property("ShouldChangePasswordOnNextLogin") + .HasColumnType("bit"); + b.Property("Surname") .HasMaxLength(64) .HasColumnType("nvarchar(64)") @@ -434,6 +446,33 @@ namespace Migrations b.ToTable("AbpUserClaims", (string)null); }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserDelegation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("SourceUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TargetUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("AbpUserDelegations", (string)null); + }); + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => { b.Property("UserId") @@ -574,6 +613,9 @@ namespace Migrations .HasColumnType("nvarchar(128)") .HasColumnName("DisplayName"); + b.Property("EntityVersion") + .HasColumnType("int"); + b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); From 23505704098601470cc037eb6d07af0ac4a3c63d Mon Sep 17 00:00:00 2001 From: Salih Date: Thu, 22 Jun 2023 14:25:43 +0300 Subject: [PATCH 04/10] Update ClientProxy --- .../DocsDocumentClientProxy.Generated.cs | 13 +- .../Documents}/DocsDocumentClientProxy.cs | 2 +- .../DocsProjectClientProxy.Generated.cs | 10 +- .../Docs/Projects}/DocsProjectClientProxy.cs | 2 +- .../ClientProxies/docs-generate-proxy.json | 236 +++++++++++++++++- 5 files changed, 247 insertions(+), 16 deletions(-) rename modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/{ => Volo/Docs/Documents}/DocsDocumentClientProxy.Generated.cs (90%) rename modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/{ => Volo/Docs/Documents}/DocsDocumentClientProxy.cs (78%) rename modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/{ => Volo/Docs/Projects}/DocsProjectClientProxy.Generated.cs (96%) rename modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/{ => Volo/Docs/Projects}/DocsProjectClientProxy.cs (78%) diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsDocumentClientProxy.Generated.cs b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Documents/DocsDocumentClientProxy.Generated.cs similarity index 90% rename from modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsDocumentClientProxy.Generated.cs rename to modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Documents/DocsDocumentClientProxy.Generated.cs index e329c395ea..418e46f6f8 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsDocumentClientProxy.Generated.cs +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Documents/DocsDocumentClientProxy.Generated.cs @@ -1,16 +1,17 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; +using Volo.Abp.Http.Modeling; using Volo.Docs.Documents; -using System.Collections.Generic; // ReSharper disable once CheckNamespace -namespace Volo.Docs.Documents.ClientProxies; +namespace Volo.Docs.Documents; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(IDocumentAppService), typeof(DocsDocumentClientProxy))] @@ -48,9 +49,9 @@ public partial class DocsDocumentClientProxy : ClientProxyBase> SearchAsync(DocumentSearchInput input) + public virtual async Task> SearchAsync(DocumentSearchInput input) { - return await RequestAsync>(nameof(SearchAsync), new ClientProxyRequestTypeValue + return await RequestAsync>(nameof(SearchAsync), new ClientProxyRequestTypeValue { { typeof(DocumentSearchInput), input } }); diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsDocumentClientProxy.cs b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Documents/DocsDocumentClientProxy.cs similarity index 78% rename from modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsDocumentClientProxy.cs rename to modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Documents/DocsDocumentClientProxy.cs index 8acc2d5e94..7671995758 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsDocumentClientProxy.cs +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Documents/DocsDocumentClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of DocsDocumentClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.Docs.Documents.ClientProxies; +namespace Volo.Docs.Documents; public partial class DocsDocumentClientProxy { diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsProjectClientProxy.Generated.cs b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Projects/DocsProjectClientProxy.Generated.cs similarity index 96% rename from modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsProjectClientProxy.Generated.cs rename to modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Projects/DocsProjectClientProxy.Generated.cs index b21f2c5e4f..2caa2e3e93 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsProjectClientProxy.Generated.cs +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Projects/DocsProjectClientProxy.Generated.cs @@ -1,16 +1,18 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.ClientProxying; -using Volo.Docs.Projects; +using Volo.Abp.Http.Modeling; using Volo.Docs.Documents; +using Volo.Docs.Projects; // ReSharper disable once CheckNamespace -namespace Volo.Docs.Projects.ClientProxies; +namespace Volo.Docs.Projects; [Dependency(ReplaceServices = true)] [ExposeServices(typeof(IProjectAppService), typeof(DocsProjectClientProxy))] diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsProjectClientProxy.cs b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Projects/DocsProjectClientProxy.cs similarity index 78% rename from modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsProjectClientProxy.cs rename to modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Projects/DocsProjectClientProxy.cs index 0fa89db6e4..c908205174 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/DocsProjectClientProxy.cs +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/Volo/Docs/Projects/DocsProjectClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of DocsProjectClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.Docs.Projects.ClientProxies; +namespace Volo.Docs.Projects; public partial class DocsProjectClientProxy { diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/docs-generate-proxy.json b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/docs-generate-proxy.json index 019b508956..0726d8b8de 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/docs-generate-proxy.json +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/ClientProxies/docs-generate-proxy.json @@ -8,11 +8,107 @@ "controllerName": "DocsProject", "controllerGroupName": "Project", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.Docs.Projects.DocsProjectController", "interfaces": [ { - "type": "Volo.Docs.Projects.IProjectAppService" + "type": "Volo.Docs.Projects.IProjectAppService", + "name": "IProjectAppService", + "methods": [ + { + "name": "GetListAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "shortName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Docs.Projects.ProjectDto", + "typeSimple": "Volo.Docs.Projects.ProjectDto" + } + }, + { + "name": "GetVersionsAsync", + "parametersOnMethod": [ + { + "name": "shortName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "GetDefaultLanguageCodeAsync", + "parametersOnMethod": [ + { + "name": "shortName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "version", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.String", + "typeSimple": "string" + } + }, + { + "name": "GetLanguageListAsync", + "parametersOnMethod": [ + { + "name": "shortName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "version", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Docs.Documents.LanguageConfig", + "typeSimple": "Volo.Docs.Documents.LanguageConfig" + } + } + ] } ], "actions": { @@ -225,11 +321,142 @@ "controllerName": "DocsDocument", "controllerGroupName": "Document", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.Docs.Documents.DocsDocumentController", "interfaces": [ { - "type": "Volo.Docs.Documents.IDocumentAppService" + "type": "Volo.Docs.Documents.IDocumentAppService", + "name": "IDocumentAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Docs.Documents.GetDocumentInput, Volo.Docs.Application.Contracts", + "type": "Volo.Docs.Documents.GetDocumentInput", + "typeSimple": "Volo.Docs.Documents.GetDocumentInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Docs.Documents.DocumentWithDetailsDto", + "typeSimple": "Volo.Docs.Documents.DocumentWithDetailsDto" + } + }, + { + "name": "GetDefaultAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Docs.Documents.GetDefaultDocumentInput, Volo.Docs.Application.Contracts", + "type": "Volo.Docs.Documents.GetDefaultDocumentInput", + "typeSimple": "Volo.Docs.Documents.GetDefaultDocumentInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Docs.Documents.DocumentWithDetailsDto", + "typeSimple": "Volo.Docs.Documents.DocumentWithDetailsDto" + } + }, + { + "name": "GetNavigationAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Docs.Documents.GetNavigationDocumentInput, Volo.Docs.Application.Contracts", + "type": "Volo.Docs.Documents.GetNavigationDocumentInput", + "typeSimple": "Volo.Docs.Documents.GetNavigationDocumentInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Docs.Documents.NavigationNode", + "typeSimple": "Volo.Docs.Documents.NavigationNode" + } + }, + { + "name": "GetParametersAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Docs.Documents.GetParametersDocumentInput, Volo.Docs.Application.Contracts", + "type": "Volo.Docs.Documents.GetParametersDocumentInput", + "typeSimple": "Volo.Docs.Documents.GetParametersDocumentInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Docs.Documents.DocumentParametersDto", + "typeSimple": "Volo.Docs.Documents.DocumentParametersDto" + } + }, + { + "name": "GetResourceAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Docs.Documents.GetDocumentResourceInput, Volo.Docs.Application.Contracts", + "type": "Volo.Docs.Documents.GetDocumentResourceInput", + "typeSimple": "Volo.Docs.Documents.GetDocumentResourceInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Docs.Documents.DocumentResourceDto", + "typeSimple": "Volo.Docs.Documents.DocumentResourceDto" + } + }, + { + "name": "SearchAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Docs.Documents.DocumentSearchInput, Volo.Docs.Application.Contracts", + "type": "Volo.Docs.Documents.DocumentSearchInput", + "typeSimple": "Volo.Docs.Documents.DocumentSearchInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + } + }, + { + "name": "FullSearchEnabledAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "System.Boolean", + "typeSimple": "boolean" + } + }, + { + "name": "GetUrlsAsync", + "parametersOnMethod": [ + { + "name": "prefix", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[string]" + } + } + ] } ], "actions": { @@ -532,8 +759,8 @@ } ], "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Docs.Documents.DocumentSearchOutput]" + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" }, "allowAnonymous": null, "implementFrom": "Volo.Docs.Documents.IDocumentAppService" @@ -657,6 +884,7 @@ "controllerName": "DocumentResource", "controllerGroupName": "DocumentResource", "isRemoteService": true, + "isIntegrationService": false, "apiVersion": null, "type": "Volo.Docs.Areas.Documents.DocumentResourceController", "interfaces": [], From 6351c40388e275d0ac2731afaa4611b62ee05998 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 26 Jun 2023 10:39:36 +0800 Subject: [PATCH 05/10] Fix unit test. --- .../Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs index d8a49abf23..6051ae6520 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs @@ -88,6 +88,8 @@ public class AbpAspNetCoreMvcTestModule : AbpModule ? "phones" : urlActionNameNormalizerContext.ActionNameInUrl; }); + + options.ExposeIntegrationServices = true; }); Configure(options => From 3501e277f41ed301951b5cecffc2ddfca0b92d77 Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 26 Jun 2023 14:43:11 +0300 Subject: [PATCH 06/10] Update en.json --- .../Commercial/Localization/Resources/en.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 93f513d01a..7fda9cc849 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -896,6 +896,9 @@ "OtherModules": "Other Modules", "OtherModules_Description1": "Account, Audit Logging, Chat , CMS Kit,File Management , Forms, GDPR, Identity, Language Management, Payment , Saas and more...", "HowItWorks_DatabaseProviderOptions": "Database provider options", - "SeeFAQ" : "See FAQ" + "SeeFAQ" : "See FAQ", + "ReleaseLogs": "Release Logs", + "ReleaseLogs_Tag": "{0} Release Logs", + "ReleaseLogs_Pr": "Pull Request #{0} - {1}" } } From ad54fc5650c3403783379768ba6bd4b592920ff0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 26 Jun 2023 15:18:26 +0300 Subject: [PATCH 07/10] Analyzed identity module --- modules/identity/.abpstudio/state.json | 4 + ....Application.Contracts.abppkg.analyze.json | 2 +- ...p.Identity.Application.abppkg.analyze.json | 88 ++- ...Identity.Blazor.Server.abppkg.analyze.json | 68 ++ ...lo.Abp.Identity.Blazor.abppkg.analyze.json | 90 +++ ...Identity.Domain.Shared.abppkg.analyze.json | 2 +- ...lo.Abp.Identity.Domain.abppkg.analyze.json | 602 +++++++++++++++++- ...ty.EntityFrameworkCore.abppkg.analyze.json | 83 +-- ...dentity.HttpApi.Client.abppkg.analyze.json | 2 +- ...o.Abp.Identity.HttpApi.abppkg.analyze.json | 307 ++++++++- ...o.Abp.Identity.MongoDB.abppkg.analyze.json | 28 +- .../Volo.Abp.Identity.Web.abppkg.analyze.json | 44 +- 12 files changed, 1216 insertions(+), 104 deletions(-) create mode 100644 modules/identity/.abpstudio/state.json create mode 100644 modules/identity/src/Volo.Abp.Identity.Blazor.Server/Volo.Abp.Identity.Blazor.Server.abppkg.analyze.json create mode 100644 modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.abppkg.analyze.json diff --git a/modules/identity/.abpstudio/state.json b/modules/identity/.abpstudio/state.json new file mode 100644 index 0000000000..11b53dd162 --- /dev/null +++ b/modules/identity/.abpstudio/state.json @@ -0,0 +1,4 @@ +{ + "selectedRunnerProfile": null, + "selectedKubernetesProfile": null +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json index 5c8f33a56d..6f323d4671 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.Application.Contracts", - "hash": "1f066a51d7d0c078867838f11c7d65a0", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Identity", diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json index e08328a6d6..603d2d9faf 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.Application", - "hash": "00000c49c13ccf21d57fdc044d1fefef", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Identity", @@ -690,6 +690,92 @@ "contentType": "applicationService", "name": "IdentityUserLookupAppService", "summary": null + }, + { + "namespace": "Volo.Abp.Identity.Integration", + "baseClass": { + "name": "IdentityAppServiceBase", + "namespace": "Volo.Abp.Identity", + "declaringAssemblyName": "Volo.Abp.Identity.Application", + "fullName": "Volo.Abp.Identity.IdentityAppServiceBase" + }, + "implementingInterfaces": [ + { + "name": "IApplicationService", + "namespace": "Volo.Abp.Application.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Application.Contracts", + "fullName": "Volo.Abp.Application.Services.IApplicationService" + }, + { + "name": "IRemoteService", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IRemoteService" + }, + { + "name": "IAvoidDuplicateCrossCuttingConcerns", + "namespace": "Volo.Abp.Aspects", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Aspects.IAvoidDuplicateCrossCuttingConcerns" + }, + { + "name": "IValidationEnabled", + "namespace": "Volo.Abp.Validation", + "declaringAssemblyName": "Volo.Abp.Validation", + "fullName": "Volo.Abp.Validation.IValidationEnabled" + }, + { + "name": "IUnitOfWorkEnabled", + "namespace": "Volo.Abp.Uow", + "declaringAssemblyName": "Volo.Abp.Uow", + "fullName": "Volo.Abp.Uow.IUnitOfWorkEnabled" + }, + { + "name": "IAuditingEnabled", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IAuditingEnabled" + }, + { + "name": "IGlobalFeatureCheckingEnabled", + "namespace": "Volo.Abp.GlobalFeatures", + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "fullName": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + }, + { + "name": "IIdentityUserIntegrationService", + "namespace": "Volo.Abp.Identity.Integration", + "declaringAssemblyName": "Volo.Abp.Identity.Application.Contracts", + "fullName": "Volo.Abp.Identity.Integration.IIdentityUserIntegrationService" + } + ], + "methods": [ + { + "returnType": "String[]", + "name": "GetRoleNamesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + } + ] + } + ], + "contentType": "applicationService", + "name": "IdentityUserIntegrationService", + "summary": null } ] } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.Server/Volo.Abp.Identity.Blazor.Server.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Blazor.Server/Volo.Abp.Identity.Blazor.Server.abppkg.analyze.json new file mode 100644 index 0000000000..365e3e33ac --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.Server/Volo.Abp.Identity.Blazor.Server.abppkg.analyze.json @@ -0,0 +1,68 @@ +{ + "name": "Volo.Abp.Identity.Blazor.Server", + "hash": "", + "contents": [ + { + "namespace": "Volo.Abp.Identity.Blazor.Server", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.Identity.Blazor", + "namespace": "Volo.Abp.Identity.Blazor", + "name": "AbpIdentityBlazorModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Blazor.Server", + "namespace": "Volo.Abp.PermissionManagement.Blazor.Server", + "name": "AbpPermissionManagementBlazorServerModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "AbpIdentityBlazorServerModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.abppkg.analyze.json new file mode 100644 index 0000000000..0d6a659403 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.abppkg.analyze.json @@ -0,0 +1,90 @@ +{ + "name": "Volo.Abp.Identity.Blazor", + "hash": "", + "contents": [ + { + "namespace": "Volo.Abp.Identity.Blazor", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.Identity.Application.Contracts", + "namespace": "Volo.Abp.Identity", + "name": "AbpIdentityApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AutoMapper", + "namespace": "Volo.Abp.AutoMapper", + "name": "AbpAutoMapperModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Blazor", + "namespace": "Volo.Abp.PermissionManagement.Blazor", + "name": "AbpPermissionManagementBlazorModule" + }, + { + "declaringAssemblyName": "Volo.Abp.BlazoriseUI", + "namespace": "Volo.Abp.BlazoriseUI", + "name": "AbpBlazoriseUIModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "AbpIdentityBlazorModule", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity.Blazor.Pages.Identity", + "contentType": "webPage", + "name": "RoleManagement", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity.Blazor.Pages.Identity", + "contentType": "webPage", + "name": "UserManagement", + "summary": null + } + ] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json index e384d8913b..4de643485a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.Domain.Shared", - "hash": "c01f912422549ed6fdc44d7dd389f7e7", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Identity", diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json index 8fd5b8c720..9873e72b5f 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.Domain", - "hash": "3a0497c62459a4c0ad393a295e33af27", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Identity", @@ -240,7 +240,7 @@ ], "contentType": "entity", "name": "OrganizationUnitRole", - "summary": "Represents membership of a User to an OU." + "summary": "Represents the link between a role and an organization unit." }, { "baseClass": { @@ -479,8 +479,14 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" + }, + { + "name": "IHasEntityVersion", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasEntityVersion" } ], "methods": [ @@ -631,6 +637,11 @@ "type": "System.Boolean", "name": "IsPublic", "summary": "A user can see other user's public roles" + }, + { + "type": "System.Int32", + "name": "EntityVersion", + "summary": "A version value that is increased whenever the entity is changed." } ], "contentType": "aggregateRoot", @@ -690,7 +701,7 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" } ], @@ -884,8 +895,14 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" + }, + { + "name": "IHasEntityVersion", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasEntityVersion" } ], "methods": [ @@ -1270,6 +1287,38 @@ } ] }, + { + "returnType": "Void", + "name": "SetShouldChangePasswordOnNextLogin", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Boolean", + "name": "shouldChangePasswordOnNextLogin", + "isOptional": false + } + ] + }, + { + "returnType": "Void", + "name": "SetLastPasswordChangeTime", + "summary": null, + "isAsync": false, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "lastPasswordChangeTime", + "isOptional": false + } + ] + }, { "returnType": "String", "name": "ToString", @@ -1407,6 +1456,21 @@ "name": "AccessFailedCount", "summary": "Gets or sets the number of failed login attempts for the current user." }, + { + "type": "System.Boolean", + "name": "ShouldChangePasswordOnNextLogin", + "summary": "Should change password on next login." + }, + { + "type": "System.Int32", + "name": "EntityVersion", + "summary": "A version value that is increased whenever the entity is changed." + }, + { + "type": "System.Nullable`1[System.DateTimeOffset]", + "name": "LastPasswordChangeTime", + "summary": "Gets or sets the last password change time for the user." + }, { "type": "System.Collections.Generic.ICollection`1[Volo.Abp.Identity.IdentityUserRole]", "name": "Roles", @@ -1437,6 +1501,87 @@ "name": "IdentityUser", "summary": null }, + { + "baseClass": { + "name": "BasicAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.BasicAggregateRoot" + }, + "implementingInterfaces": [ + { + "name": "IEntity", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" + }, + { + "name": "IEntity", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IEntity" + }, + { + "name": "IAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" + }, + { + "name": "IAggregateRoot", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IAggregateRoot" + }, + { + "name": "IGeneratesDomainEvents", + "namespace": "Volo.Abp.Domain.Entities", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.IGeneratesDomainEvents" + }, + { + "name": "IMultiTenant", + "namespace": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", + "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" + } + ], + "methods": [], + "collectionProperties": {}, + "navigationProperties": {}, + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [ + { + "type": "System.Nullable`1[System.Guid]", + "name": "TenantId", + "summary": null + }, + { + "type": "System.Guid", + "name": "SourceUserId", + "summary": null + }, + { + "type": "System.Guid", + "name": "TargetUserId", + "summary": null + }, + { + "type": "System.DateTime", + "name": "StartTime", + "summary": null + }, + { + "type": "System.DateTime", + "name": "EndTime", + "summary": null + } + ], + "contentType": "aggregateRoot", + "name": "IdentityUserDelegation", + "summary": null + }, { "baseClass": { "name": "FullAuditedAggregateRoot", @@ -1550,8 +1695,14 @@ { "name": "IMultiTenant", "namespace": "Volo.Abp.MultiTenancy", - "declaringAssemblyName": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", "fullName": "Volo.Abp.MultiTenancy.IMultiTenant" + }, + { + "name": "IHasEntityVersion", + "namespace": "Volo.Abp.Auditing", + "declaringAssemblyName": "Volo.Abp.Auditing.Contracts", + "fullName": "Volo.Abp.Auditing.IHasEntityVersion" } ], "methods": [ @@ -1742,6 +1893,11 @@ "name": "DisplayName", "summary": "Display name of this OrganizationUnit." }, + { + "type": "System.Int32", + "name": "EntityVersion", + "summary": "A version value that is increased whenever the entity is changed." + }, { "type": "System.Collections.Generic.ICollection`1[Volo.Abp.Identity.OrganizationUnitRole]", "name": "Roles", @@ -2093,6 +2249,164 @@ "name": "IdentityRoleManager", "summary": null }, + { + "namespace": "Volo.Abp.Identity", + "baseClass": { + "name": "DomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.DomainService" + }, + "methods": [ + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "sourceUserId", + "isOptional": true + }, + { + "type": "Nullable", + "name": "targetUserId", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetActiveDelegationsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "targetUseId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "IdentityUserDelegation", + "name": "FindActiveDelegationByIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "DelegateNewUserAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "sourceUserId", + "isOptional": false + }, + { + "type": "Guid", + "name": "targetUserId", + "isOptional": false + }, + { + "type": "DateTime", + "name": "startTime", + "isOptional": false + }, + { + "type": "DateTime", + "name": "endTime", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "Void", + "name": "DeleteDelegationAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "Guid", + "name": "sourceUserId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "implementingInterfaces": [ + { + "name": "IDomainService", + "namespace": "Volo.Abp.Domain.Services", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Services.IDomainService" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "domainService", + "name": "IdentityUserDelegationManager", + "summary": null + }, { "namespace": "Volo.Abp.Identity", "baseClass": { @@ -2390,6 +2704,38 @@ "isOptional": false } ] + }, + { + "returnType": "Boolean", + "name": "ShouldPeriodicallyChangePasswordAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IdentityUser", + "name": "user", + "isOptional": false + } + ] + }, + { + "returnType": "Void", + "name": "ResetRecoveryCodesAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IdentityUser", + "name": "user", + "isOptional": false + } + ] } ], "implementingInterfaces": [ @@ -3338,6 +3684,122 @@ "name": "IIdentitySecurityLogRepository", "summary": null }, + { + "namespace": "Volo.Abp.Identity", + "entityAnalyzeModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "properties": [], + "contentType": "entity", + "name": "IdentityUserDelegation", + "summary": null + }, + "implementingInterfaces": [ + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IBasicRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + }, + { + "name": "IRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IRepository" + }, + { + "name": "IReadOnlyBasicRepository", + "namespace": "Volo.Abp.Domain.Repositories", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Repositories.IReadOnlyBasicRepository" + } + ], + "methods": [ + { + "returnType": "List", + "name": "GetListAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Nullable", + "name": "sourceUserId", + "isOptional": false + }, + { + "type": "Nullable", + "name": "targetUserId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "List", + "name": "GetActiveDelegationsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "targetUserId", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + }, + { + "returnType": "IdentityUserDelegation", + "name": "FindActiveDelegationByIdAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "Guid", + "name": "id", + "isOptional": false + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] + } + ], + "contentType": "repositoryInterface", + "name": "IIdentityUserDelegationRepository", + "summary": null + }, { "namespace": "Volo.Abp.Identity", "entityAnalyzeModel": { @@ -3617,6 +4079,16 @@ "name": "emailAddress", "isOptional": true }, + { + "type": "String", + "name": "name", + "isOptional": true + }, + { + "type": "String", + "name": "surname", + "isOptional": true + }, { "type": "Nullable", "name": "isLockedOut", @@ -3627,6 +4099,36 @@ "name": "notActive", "isOptional": true }, + { + "type": "Nullable", + "name": "emailConfirmed", + "isOptional": true + }, + { + "type": "Nullable", + "name": "isExternal", + "isOptional": true + }, + { + "type": "Nullable", + "name": "maxCreationTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "minCreationTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "maxModifitionTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "minModifitionTime", + "isOptional": true + }, { "type": "CancellationToken", "name": "cancellationToken", @@ -3788,6 +4290,16 @@ "name": "emailAddress", "isOptional": true }, + { + "type": "String", + "name": "name", + "isOptional": true + }, + { + "type": "String", + "name": "surname", + "isOptional": true + }, { "type": "Nullable", "name": "isLockedOut", @@ -3798,6 +4310,36 @@ "name": "notActive", "isOptional": true }, + { + "type": "Nullable", + "name": "emailConfirmed", + "isOptional": true + }, + { + "type": "Nullable", + "name": "isExternal", + "isOptional": true + }, + { + "type": "Nullable", + "name": "maxCreationTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "minCreationTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "maxModifitionTime", + "isOptional": true + }, + { + "type": "Nullable", + "name": "minModifitionTime", + "isOptional": true + }, { "type": "CancellationToken", "name": "cancellationToken", @@ -3835,6 +4377,32 @@ "isOptional": true } ] + }, + { + "returnType": "List", + "name": "GetListByIdsAsync", + "summary": null, + "isAsync": true, + "isPublic": true, + "isPrivate": false, + "isStatic": false, + "parameters": [ + { + "type": "IEnumerable", + "name": "ids", + "isOptional": false + }, + { + "type": "Boolean", + "name": "includeDetails", + "isOptional": true + }, + { + "type": "CancellationToken", + "name": "cancellationToken", + "isOptional": true + } + ] } ], "contentType": "repositoryInterface", @@ -4420,6 +4988,28 @@ "name": "Abp.Identity.Password.RequireDigit", "summary": null }, + { + "defaultValue": "False", + "displayName": "Force users to periodically change password", + "description": "Whether users are forced to periodically change their password.", + "isVisibleToClient": true, + "isInherited": true, + "isEncrypted": false, + "contentType": "setting", + "name": "Abp.Identity.Password.ForceUsersToPeriodicallyChangePassword", + "summary": null + }, + { + "defaultValue": "0", + "displayName": "Password change period(days)", + "description": "The number of days a user's password is valid for.", + "isVisibleToClient": true, + "isInherited": true, + "isEncrypted": false, + "contentType": "setting", + "name": "Abp.Identity.Password.PasswordChangePeriodDays", + "summary": null + }, { "defaultValue": "True", "displayName": "Enabled for new users", diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json index 2feed4284c..7889d66fe1 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.EntityFrameworkCore", - "hash": "ed3635e7fd238a79369834f410ffbb2d", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Identity.EntityFrameworkCore", @@ -67,86 +67,7 @@ { "namespace": "Volo.Abp.Identity.EntityFrameworkCore", "connectionStringName": "AbpIdentity", - "databaseTables": [ - { - "entityFullName": "Volo.Abp.Identity.IdentityClaimType", - "contentType": "databaseTable", - "name": "AbpClaimTypes", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.IdentityLinkUser", - "contentType": "databaseTable", - "name": "AbpLinkUsers", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.IdentityRole", - "contentType": "databaseTable", - "name": "AbpRoles", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.IdentityRoleClaim", - "contentType": "databaseTable", - "name": "AbpRoleClaims", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.IdentitySecurityLog", - "contentType": "databaseTable", - "name": "AbpSecurityLogs", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.IdentityUser", - "contentType": "databaseTable", - "name": "AbpUsers", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.IdentityUserClaim", - "contentType": "databaseTable", - "name": "AbpUserClaims", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.IdentityUserLogin", - "contentType": "databaseTable", - "name": "AbpUserLogins", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.IdentityUserOrganizationUnit", - "contentType": "databaseTable", - "name": "AbpUserOrganizationUnits", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.IdentityUserRole", - "contentType": "databaseTable", - "name": "AbpUserRoles", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.IdentityUserToken", - "contentType": "databaseTable", - "name": "AbpUserTokens", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.OrganizationUnit", - "contentType": "databaseTable", - "name": "AbpOrganizationUnits", - "summary": null - }, - { - "entityFullName": "Volo.Abp.Identity.OrganizationUnitRole", - "contentType": "databaseTable", - "name": "AbpOrganizationUnitRoles", - "summary": null - } - ], + "databaseTables": [], "replacedDbContexts": [], "implementingInterfaces": [ { diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json index 205f6ca407..bf62104b6d 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.HttpApi.Client", - "hash": "18ff01998f875fb1e90eac63e2ce95db", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Identity", diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json index 8075d27eaa..d3029541cf 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.HttpApi", - "hash": "c699923fe0e6c7a289534c4ba7d16e40", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Identity", @@ -63,6 +63,311 @@ "contentType": "abpModule", "name": "AbpIdentityHttpApiModule", "summary": null + }, + { + "apis": [ + { + "path": "api/identity/roles/all", + "method": "GET", + "groupName": "IdentityRole", + "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Abp.Identity.IdentityRoleDto]", + "responseTypeAsJson": "", + "parameterDescriptions": [] + }, + { + "path": "api/identity/roles", + "method": "GET", + "groupName": "IdentityRole", + "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Abp.Identity.IdentityRoleDto]", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "Filter", + "type": "String" + }, + { + "name": "Sorting", + "type": "String" + }, + { + "name": "SkipCount", + "type": "Int32" + }, + { + "name": "MaxResultCount", + "type": "Int32" + } + ] + }, + { + "path": "api/identity/roles/{id}", + "method": "GET", + "groupName": "IdentityRole", + "responseType": "Volo.Abp.Identity.IdentityRoleDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/identity/roles", + "method": "POST", + "groupName": "IdentityRole", + "responseType": "Volo.Abp.Identity.IdentityRoleDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "IdentityRoleCreateDto" + } + ] + }, + { + "path": "api/identity/roles/{id}", + "method": "PUT", + "groupName": "IdentityRole", + "responseType": "Volo.Abp.Identity.IdentityRoleDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + }, + { + "name": "input", + "type": "IdentityRoleUpdateDto" + } + ] + }, + { + "path": "api/identity/roles/{id}", + "method": "DELETE", + "groupName": "IdentityRole", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/identity/users/{id}", + "method": "GET", + "groupName": "IdentityUser", + "responseType": "Volo.Abp.Identity.IdentityUserDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/identity/users", + "method": "GET", + "groupName": "IdentityUser", + "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Abp.Identity.IdentityUserDto]", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "Filter", + "type": "String" + }, + { + "name": "Sorting", + "type": "String" + }, + { + "name": "SkipCount", + "type": "Int32" + }, + { + "name": "MaxResultCount", + "type": "Int32" + } + ] + }, + { + "path": "api/identity/users", + "method": "POST", + "groupName": "IdentityUser", + "responseType": "Volo.Abp.Identity.IdentityUserDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "input", + "type": "IdentityUserCreateDto" + } + ] + }, + { + "path": "api/identity/users/{id}", + "method": "PUT", + "groupName": "IdentityUser", + "responseType": "Volo.Abp.Identity.IdentityUserDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + }, + { + "name": "input", + "type": "IdentityUserUpdateDto" + } + ] + }, + { + "path": "api/identity/users/{id}", + "method": "DELETE", + "groupName": "IdentityUser", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/identity/users/{id}/roles", + "method": "GET", + "groupName": "IdentityUser", + "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Abp.Identity.IdentityRoleDto]", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/identity/users/assignable-roles", + "method": "GET", + "groupName": "IdentityUser", + "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Abp.Identity.IdentityRoleDto]", + "responseTypeAsJson": "", + "parameterDescriptions": [] + }, + { + "path": "api/identity/users/{id}/roles", + "method": "PUT", + "groupName": "IdentityUser", + "responseType": "System.Void", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + }, + { + "name": "input", + "type": "IdentityUserUpdateRolesDto" + } + ] + }, + { + "path": "api/identity/users/by-username/{userName}", + "method": "GET", + "groupName": "IdentityUser", + "responseType": "Volo.Abp.Identity.IdentityUserDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "userName", + "type": "String" + } + ] + }, + { + "path": "api/identity/users/by-email/{email}", + "method": "GET", + "groupName": "IdentityUser", + "responseType": "Volo.Abp.Identity.IdentityUserDto", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "email", + "type": "String" + } + ] + }, + { + "path": "api/identity/users/lookup/{id}", + "method": "GET", + "groupName": "IdentityUserLookup", + "responseType": "Volo.Abp.Users.UserData", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "id", + "type": "Guid" + } + ] + }, + { + "path": "api/identity/users/lookup/by-username/{userName}", + "method": "GET", + "groupName": "IdentityUserLookup", + "responseType": "Volo.Abp.Users.UserData", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "userName", + "type": "String" + } + ] + }, + { + "path": "api/identity/users/lookup/search", + "method": "GET", + "groupName": "IdentityUserLookup", + "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Abp.Users.UserData]", + "responseTypeAsJson": "", + "parameterDescriptions": [ + { + "name": "Filter", + "type": "String" + }, + { + "name": "Sorting", + "type": "String" + }, + { + "name": "SkipCount", + "type": "Int32" + }, + { + "name": "MaxResultCount", + "type": "Int32" + } + ] + }, + { + "path": "api/identity/users/lookup/count", + "method": "GET", + "groupName": "IdentityUserLookup", + "responseType": "System.Int64", + "responseTypeAsJson": "42", + "parameterDescriptions": [ + { + "name": "Filter", + "type": "String" + } + ] + } + ], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null } ] } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json index db5a968453..16c91703aa 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.MongoDB", - "hash": "a42f1167e4a0f3aa2f9ca919442cadd2", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Identity.MongoDB", @@ -69,15 +69,21 @@ "connectionStringName": "AbpIdentity", "databaseCollections": [ { - "entityFullName": "Volo.Abp.Identity.IdentitySecurityLog", + "entityFullName": "Volo.Abp.Identity.IdentityLinkUser", "contentType": "databaseCollection", - "name": "AbpSecurityLogs", + "name": "AbpLinkUsers", "summary": null }, { - "entityFullName": "Volo.Abp.Identity.IdentityRole", + "entityFullName": "Volo.Abp.Identity.IdentityUserDelegation", "contentType": "databaseCollection", - "name": "AbpRoles", + "name": "AbpUserDelegations", + "summary": null + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityClaimType", + "contentType": "databaseCollection", + "name": "AbpClaimTypes", "summary": null }, { @@ -87,21 +93,21 @@ "summary": null }, { - "entityFullName": "Volo.Abp.Identity.IdentityClaimType", + "entityFullName": "Volo.Abp.Identity.IdentitySecurityLog", "contentType": "databaseCollection", - "name": "AbpClaimTypes", + "name": "AbpSecurityLogs", "summary": null }, { - "entityFullName": "Volo.Abp.Identity.IdentityUser", + "entityFullName": "Volo.Abp.Identity.IdentityRole", "contentType": "databaseCollection", - "name": "AbpUsers", + "name": "AbpRoles", "summary": null }, { - "entityFullName": "Volo.Abp.Identity.IdentityLinkUser", + "entityFullName": "Volo.Abp.Identity.IdentityUser", "contentType": "databaseCollection", - "name": "AbpLinkUsers", + "name": "AbpUsers", "summary": null } ], diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json index 4cca4419a1..3ab45eaadb 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.Abp.Identity.Web", - "hash": "b84ebef06353989f91edbffe534bc291", + "hash": "", "contents": [ { "namespace": "Volo.Abp.Identity.Web", @@ -73,6 +73,48 @@ "contentType": "abpModule", "name": "AbpIdentityWebModule", "summary": null + }, + { + "apis": [], + "contentType": "httpApi", + "name": "Defined Http Apis", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity.Web.Pages.Identity.Users", + "contentType": "webPage", + "name": "CreateModalModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity.Web.Pages.Identity.Users", + "contentType": "webPage", + "name": "EditModalModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity.Web.Pages.Identity.Users", + "contentType": "webPage", + "name": "IndexModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity.Web.Pages.Identity.Roles", + "contentType": "webPage", + "name": "CreateModalModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity.Web.Pages.Identity.Roles", + "contentType": "webPage", + "name": "EditModalModel", + "summary": null + }, + { + "namespace": "Volo.Abp.Identity.Web.Pages.Identity.Roles", + "contentType": "webPage", + "name": "IndexModel", + "summary": null } ] } \ No newline at end of file From 926e41c5667a7210a7ada5a7a7e91b67109e520b Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 26 Jun 2023 17:22:15 +0300 Subject: [PATCH 08/10] Update en.json --- .../AbpIoLocalization/Base/Localization/Resources/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index 0e306590ca..b721d2a032 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -216,6 +216,7 @@ "HowItWorks": "How it works?", "ReleaseNotes": "Release Notes", "DetailedChangeNotes" : "Detailed Change Notes", - "SeeTrainings": "See Trainings" + "SeeTrainings": "See Trainings", + "NoContent": "No Content" } } From 46e7af174d2b0027c9717c600d93d1e0b01ef297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alper=20Ebi=C3=A7o=C4=9Flu?= <9526587+ebicoglu@users.noreply.github.com> Date: Mon, 26 Jun 2023 20:13:02 +0300 Subject: [PATCH 09/10] Update en.json --- .../AbpIoLocalization/Base/Localization/Resources/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index b721d2a032..6788a4d224 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -217,6 +217,6 @@ "ReleaseNotes": "Release Notes", "DetailedChangeNotes" : "Detailed Change Notes", "SeeTrainings": "See Trainings", - "NoContent": "No Content" + "NoContent": "No content" } } From e354afcad71d60a3759138ec1a50e8b5162b84c9 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 27 Jun 2023 09:30:10 +0800 Subject: [PATCH 10/10] Check timezone settings page permission --- .../Settings/TimeZonePageContributor.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/TimeZonePageContributor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/TimeZonePageContributor.cs index 1973e51289..696d1204da 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/TimeZonePageContributor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/TimeZonePageContributor.cs @@ -10,6 +10,11 @@ namespace Volo.Abp.SettingManagement.Web.Settings; public class TimeZonePageContributor : SettingPageContributorBase { + public TimeZonePageContributor() + { + RequiredPermissions(SettingManagementPermissions.TimeZone); + } + public override Task ConfigureAsync(SettingPageCreationContext context) { var l = context.ServiceProvider.GetRequiredService>();