From 667554fd8ed35b86efe1b0aa001638d729545ee5 Mon Sep 17 00:00:00 2001 From: Fahri Gedik Date: Sat, 20 Dec 2025 21:17:42 +0300 Subject: [PATCH 01/15] Add resource permission management component Introduces ResourcePermissionManagementComponent with UI and logic for managing resource-based permissions. Updates models and service to support resource permission APIs, and exports the new component in the index. --- .../proxy/src/lib/proxy/models.ts | 63 ++++ .../src/lib/proxy/permissions.service.ts | 88 ++++- .../src/lib/components/index.ts | 1 + ...ource-permission-management.component.html | 174 ++++++++++ ...esource-permission-management.component.ts | 325 ++++++++++++++++++ 5 files changed, 644 insertions(+), 7 deletions(-) create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.html create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.ts diff --git a/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/models.ts b/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/models.ts index cbba2214ec..49e67f7614 100644 --- a/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/models.ts +++ b/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/models.ts @@ -4,6 +4,27 @@ export interface GetPermissionListResultDto { groups: PermissionGroupDto[]; } +export interface GetResourcePermissionDefinitionListResultDto { + permissions?: ResourcePermissionDefinitionDto[]; +} + +export interface GetResourcePermissionListResultDto { + permissions?: ResourcePermissionGrantInfoDto[]; +} + +export interface GetResourcePermissionWithProviderListResultDto { + permissions?: ResourcePermissionWithProdiverGrantInfoDto[]; +} + +export interface GetResourceProviderListResultDto { + providers?: ResourceProviderDto[]; +} + +export interface GrantedResourcePermissionDto { + name?: string; + displayName?: string; +} + export interface PermissionGrantInfoDto { name?: string; displayName?: string; @@ -17,6 +38,8 @@ export interface PermissionGroupDto { name?: string; displayName?: string; permissions: PermissionGrantInfoDto[]; + displayNameKey?: string; + displayNameResource?: string; } export interface ProviderInfoDto { @@ -24,6 +47,40 @@ export interface ProviderInfoDto { providerKey?: string; } +export interface ResourcePermissionDefinitionDto { + name?: string; + displayName?: string; +} + +export interface ResourcePermissionGrantInfoDto { + providerName?: string; + providerKey?: string; + providerDisplayName?: string; + providerNameDisplayName?: string; + permissions?: GrantedResourcePermissionDto[]; +} + +export interface ResourcePermissionWithProdiverGrantInfoDto { + name?: string; + displayName?: string; + providers?: string[]; + isGranted?: boolean; +} + +export interface ResourceProviderDto { + name?: string; + displayName?: string; +} + +export interface SearchProviderKeyInfo { + providerKey?: string; + providerDisplayName?: string; +} + +export interface SearchProviderKeyListResultDto { + keys?: SearchProviderKeyInfo[]; +} + export interface UpdatePermissionDto { name?: string; isGranted: boolean; @@ -32,3 +89,9 @@ export interface UpdatePermissionDto { export interface UpdatePermissionsDto { permissions: UpdatePermissionDto[]; } + +export interface UpdateResourcePermissionsDto { + providerName?: string; + providerKey?: string; + permissions?: string[]; +} diff --git a/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/permissions.service.ts b/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/permissions.service.ts index dbd13ca778..8f28edf3fb 100644 --- a/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/permissions.service.ts +++ b/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/permissions.service.ts @@ -1,5 +1,5 @@ -import type { GetPermissionListResultDto, UpdatePermissionsDto } from './models'; -import { RestService } from '@abp/ng.core'; +import type { GetPermissionListResultDto, GetResourcePermissionDefinitionListResultDto, GetResourcePermissionListResultDto, GetResourcePermissionWithProviderListResultDto, GetResourceProviderListResultDto, SearchProviderKeyListResultDto, UpdatePermissionsDto, UpdateResourcePermissionsDto } from './models'; +import { RestService, Rest } from '@abp/ng.core'; import { Injectable, inject } from '@angular/core'; @Injectable({ @@ -7,23 +7,97 @@ import { Injectable, inject } from '@angular/core'; }) export class PermissionsService { private restService = inject(RestService); - apiName = 'AbpPermissionManagement'; - get = (providerName: string, providerKey: string) => + + deleteResource = (resourceName: string, resourceKey: string, providerName: string, providerKey: string, config?: Partial) => + this.restService.request({ + method: 'DELETE', + url: '/api/permission-management/permissions/resource', + params: { resourceName, resourceKey, providerName, providerKey }, + }, + { apiName: this.apiName, ...config }); + + + get = (providerName: string, providerKey: string, config?: Partial) => this.restService.request({ method: 'GET', url: '/api/permission-management/permissions', params: { providerName, providerKey }, }, - { apiName: this.apiName }); + { apiName: this.apiName, ...config }); + + + getByGroup = (groupName: string, providerName: string, providerKey: string, config?: Partial) => + this.restService.request({ + method: 'GET', + url: '/api/permission-management/permissions/by-group', + params: { groupName, providerName, providerKey }, + }, + { apiName: this.apiName, ...config }); + + + getResource = (resourceName: string, resourceKey: string, config?: Partial) => + this.restService.request({ + method: 'GET', + url: '/api/permission-management/permissions/resource', + params: { resourceName, resourceKey }, + }, + { apiName: this.apiName, ...config }); + + + getResourceByProvider = (resourceName: string, resourceKey: string, providerName: string, providerKey: string, config?: Partial) => + this.restService.request({ + method: 'GET', + url: '/api/permission-management/permissions/resource/by-provider', + params: { resourceName, resourceKey, providerName, providerKey }, + }, + { apiName: this.apiName, ...config }); - update = (providerName: string, providerKey: string, input: UpdatePermissionsDto) => + + getResourceDefinitions = (resourceName: string, config?: Partial) => + this.restService.request({ + method: 'GET', + url: '/api/permission-management/permissions/resource-definitions', + params: { resourceName }, + }, + { apiName: this.apiName, ...config }); + + + getResourceProviderKeyLookupServices = (resourceName: string, config?: Partial) => + this.restService.request({ + method: 'GET', + url: '/api/permission-management/permissions/resource-provider-key-lookup-services', + params: { resourceName }, + }, + { apiName: this.apiName, ...config }); + + + searchResourceProviderKey = (resourceName: string, serviceName: string, filter: string, page: number, config?: Partial) => + this.restService.request({ + method: 'GET', + url: '/api/permission-management/permissions/search-resource-provider-keys', + params: { resourceName, serviceName, filter, page }, + }, + { apiName: this.apiName, ...config }); + + + update = (providerName: string, providerKey: string, input: UpdatePermissionsDto, config?: Partial) => this.restService.request({ method: 'PUT', url: '/api/permission-management/permissions', params: { providerName, providerKey }, body: input, }, - { apiName: this.apiName }); + { apiName: this.apiName, ...config }); + + + updateResource = (resourceName: string, resourceKey: string, input: UpdateResourcePermissionsDto, config?: Partial) => + this.restService.request({ + method: 'PUT', + url: '/api/permission-management/permissions/resource', + params: { resourceName, resourceKey }, + body: input, + }, + { apiName: this.apiName, ...config }); } diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/index.ts b/npm/ng-packs/packages/permission-management/src/lib/components/index.ts index efa91b45a2..83dc62ea41 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/index.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/index.ts @@ -1 +1,2 @@ export * from './permission-management.component'; +export * from './resource-permission-management.component'; diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.html new file mode 100644 index 0000000000..7d6f9d6016 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.html @@ -0,0 +1,174 @@ + + +

+ {{ 'AbpPermissionManagement::ResourcePermissions' | abpLocalization }} + @if (resourceDisplayName) { + - {{ resourceDisplayName }} + } +

+
+ + + @if (!hasResourcePermission() || !hasProviderKeyLookupService()) { + + } @else { + + @if (viewMode() === 'list') { +
+ +
+ + @if (resourcePermissions().length === 0) { +
+ {{ 'AbpPermissionManagement::NoPermissionsAssigned' | abpLocalization }} +
+ } @else { + + + + + + + + + + + @for (grant of resourcePermissions(); track grant.providerKey) { + + + + + + + } + +
{{ 'AbpPermissionManagement::Provider' | abpLocalization }}{{ 'AbpPermissionManagement::ProviderKey' | abpLocalization }}{{ 'AbpPermissionManagement::Permissions' | abpLocalization }}{{ 'AbpPermissionManagement::Actions' | abpLocalization }}
{{ grant.providerNameDisplayName }}{{ grant.providerDisplayName || grant.providerKey }} + @for (perm of grant.permissions; track perm.name) { + {{ perm.displayName }} + } + + + +
+ } + } + + + @if (viewMode() === 'add') { +
+
+ @for (provider of providers(); track provider.name; let i = $index) { +
+ + +
+ } +
+ +
+ + @if (searchResults().length > 0) { +
+ @for (result of searchResults(); track result.providerKey) { + + } +
+ } +
+
+ +
+
{{ 'AbpPermissionManagement::ResourcePermissionPermissions' | abpLocalization }}
+
+ + +
+ @for (perm of permissionDefinitions(); track perm.name) { +
+ + +
+ } +
+ } + + + @if (viewMode() === 'edit') { +
+
{{ 'AbpPermissionManagement::ResourcePermissionPermissions' | abpLocalization }}
+

+ {{ editProviderName() }}: {{ editProviderKey() }} +

+
+ + +
+ @for (perm of permissionsWithProvider(); track perm.name) { +
+ + +
+ } +
+ } + } +
+ + + @if (viewMode() === 'list') { + + } @else { + + @if (viewMode() === 'add') { + + {{ 'AbpUi::Save' | abpLocalization }} + + } @else { + + {{ 'AbpUi::Save' | abpLocalization }} + + } + } + +
\ No newline at end of file diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.ts new file mode 100644 index 0000000000..59c79cd77f --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.ts @@ -0,0 +1,325 @@ +import { LocalizationPipe } from '@abp/ng.core'; +import { + ButtonComponent, + ModalCloseDirective, + ModalComponent, + ToasterService, +} from '@abp/ng.theme.shared'; +import { + GetResourcePermissionListResultDto, + GetResourceProviderListResultDto, + GetResourcePermissionDefinitionListResultDto, + GetResourcePermissionWithProviderListResultDto, + PermissionsService, + ResourcePermissionGrantInfoDto, + ResourceProviderDto, + SearchProviderKeyInfo, + ResourcePermissionDefinitionDto, + ResourcePermissionWithProdiverGrantInfoDto, +} from '@abp/ng.permission-management/proxy'; +import { + ChangeDetectionStrategy, + Component, + EventEmitter, + inject, + Input, + Output, + signal, + computed, +} from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { finalize, switchMap, of, debounceTime, Subject, distinctUntilChanged } from 'rxjs'; + +type ViewMode = 'list' | 'add' | 'edit'; + +@Component({ + selector: 'abp-resource-permission-management', + templateUrl: './resource-permission-management.component.html', + exportAs: 'abpResourcePermissionManagement', + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [ + FormsModule, + ModalComponent, + LocalizationPipe, + ButtonComponent, + ModalCloseDirective, + ], +}) +export class ResourcePermissionManagementComponent { + protected readonly service = inject(PermissionsService); + protected readonly toasterService = inject(ToasterService); + + @Input() resourceName!: string; + @Input() resourceKey!: string; + @Input() resourceDisplayName?: string; + + protected _visible = false; + + @Input() + get visible(): boolean { + return this._visible; + } + + set visible(value: boolean) { + if (value === this._visible) return; + + if (value) { + this.openModal(); + } else { + this.resetState(); + } + this._visible = value; + this.visibleChange.emit(value); + } + + @Output() readonly visibleChange = new EventEmitter(); + + // State signals + viewMode = signal('list'); + modalBusy = signal(false); + hasResourcePermission = signal(false); + hasProviderKeyLookupService = signal(false); + + // Data + resourcePermissions = signal([]); + providers = signal([]); + permissionDefinitions = signal([]); + searchResults = signal([]); + permissionsWithProvider = signal([]); + + // Form state for add/edit + selectedProviderName = signal(''); + selectedProviderKey = signal(''); + searchFilter = signal(''); + selectedPermissions = signal([]); + + // Edit mode state + editProviderName = signal(''); + editProviderKey = signal(''); + + // Search subject for debounce + private searchSubject = new Subject(); + + constructor() { + this.searchSubject.pipe( + debounceTime(300), + distinctUntilChanged() + ).subscribe(filter => { + this.performSearch(filter); + }); + } + + openModal() { + this.modalBusy.set(true); + + // Load resource permissions and providers + this.service.getResource(this.resourceName, this.resourceKey).pipe( + switchMap(permRes => { + this.resourcePermissions.set(permRes.permissions || []); + return this.service.getResourceProviderKeyLookupServices(this.resourceName); + }), + switchMap(providerRes => { + this.providers.set(providerRes.providers || []); + this.hasProviderKeyLookupService.set((providerRes.providers?.length || 0) > 0); + if (providerRes.providers?.length) { + this.selectedProviderName.set(providerRes.providers[0].name || ''); + } + return this.service.getResourceDefinitions(this.resourceName); + }), + finalize(() => this.modalBusy.set(false)) + ).subscribe({ + next: defRes => { + this.permissionDefinitions.set(defRes.permissions || []); + this.hasResourcePermission.set((defRes.permissions?.length || 0) > 0); + }, + error: () => { + this.toasterService.error('AbpPermissionManagement::ErrorLoadingPermissions'); + } + }); + } + + resetState() { + this.viewMode.set('list'); + this.resourcePermissions.set([]); + this.selectedProviderName.set(''); + this.selectedProviderKey.set(''); + this.searchFilter.set(''); + this.selectedPermissions.set([]); + this.searchResults.set([]); + } + + // View mode navigation + goToAddMode() { + this.viewMode.set('add'); + this.selectedPermissions.set([]); + this.selectedProviderKey.set(''); + this.searchResults.set([]); + } + + goToEditMode(grant: ResourcePermissionGrantInfoDto) { + this.editProviderName.set(grant.providerName || ''); + this.editProviderKey.set(grant.providerKey || ''); + this.modalBusy.set(true); + + this.service.getResourceByProvider( + this.resourceName, + this.resourceKey, + grant.providerName || '', + grant.providerKey || '' + ).pipe( + finalize(() => this.modalBusy.set(false)) + ).subscribe({ + next: res => { + this.permissionsWithProvider.set(res.permissions || []); + this.selectedPermissions.set( + (res.permissions || []).filter(p => p.isGranted).map(p => p.name || '') + ); + this.viewMode.set('edit'); + } + }); + } + + goToListMode() { + this.viewMode.set('list'); + this.selectedPermissions.set([]); + } + + // Provider selection + onProviderChange(providerName: string) { + this.selectedProviderName.set(providerName); + this.selectedProviderKey.set(''); + this.searchResults.set([]); + this.searchFilter.set(''); + } + + // Search + onSearchInput(filter: string) { + this.searchFilter.set(filter); + this.searchSubject.next(filter); + } + + private performSearch(filter: string) { + if (!filter || !this.selectedProviderName()) return; + + this.service.searchResourceProviderKey( + this.resourceName, + this.selectedProviderName(), + filter, + 1 + ).subscribe(res => { + this.searchResults.set(res.keys || []); + }); + } + + selectProviderKey(key: SearchProviderKeyInfo) { + this.selectedProviderKey.set(key.providerKey || ''); + this.searchFilter.set(key.providerDisplayName || key.providerKey || ''); + this.searchResults.set([]); + } + + // Permission toggle + togglePermission(permissionName: string) { + const current = this.selectedPermissions(); + if (current.includes(permissionName)) { + this.selectedPermissions.set(current.filter(p => p !== permissionName)); + } else { + this.selectedPermissions.set([...current, permissionName]); + } + } + + toggleAllPermissions(selectAll: boolean) { + if (this.viewMode() === 'add') { + this.selectedPermissions.set( + selectAll + ? this.permissionDefinitions().map(p => p.name || '') + : [] + ); + } else { + this.selectedPermissions.set( + selectAll + ? this.permissionsWithProvider().map(p => p.name || '') + : [] + ); + } + } + + isPermissionSelected(permissionName: string): boolean { + return this.selectedPermissions().includes(permissionName); + } + + allPermissionsSelected = computed(() => { + const definitions = this.viewMode() === 'add' + ? this.permissionDefinitions() + : this.permissionsWithProvider(); + return definitions.length > 0 && + definitions.every(p => this.selectedPermissions().includes(p.name || '')); + }); + + // Save operations + saveAddPermission() { + if (!this.selectedProviderKey() || this.selectedPermissions().length === 0) { + this.toasterService.warn('AbpPermissionManagement::PleaseSelectProviderAndPermissions'); + return; + } + + this.modalBusy.set(true); + this.service.updateResource( + this.resourceName, + this.resourceKey, + { + providerName: this.selectedProviderName(), + providerKey: this.selectedProviderKey(), + permissions: this.selectedPermissions() + } + ).pipe( + switchMap(() => this.service.getResource(this.resourceName, this.resourceKey)), + finalize(() => this.modalBusy.set(false)) + ).subscribe({ + next: res => { + this.resourcePermissions.set(res.permissions || []); + this.toasterService.success('AbpUi::SavedSuccessfully'); + this.goToListMode(); + } + }); + } + + saveEditPermission() { + this.modalBusy.set(true); + this.service.updateResource( + this.resourceName, + this.resourceKey, + { + providerName: this.editProviderName(), + providerKey: this.editProviderKey(), + permissions: this.selectedPermissions() + } + ).pipe( + switchMap(() => this.service.getResource(this.resourceName, this.resourceKey)), + finalize(() => this.modalBusy.set(false)) + ).subscribe({ + next: res => { + this.resourcePermissions.set(res.permissions || []); + this.toasterService.success('AbpUi::SavedSuccessfully'); + this.goToListMode(); + } + }); + } + + deletePermission(grant: ResourcePermissionGrantInfoDto) { + this.modalBusy.set(true); + this.service.deleteResource( + this.resourceName, + this.resourceKey, + grant.providerName || '', + grant.providerKey || '' + ).pipe( + switchMap(() => this.service.getResource(this.resourceName, this.resourceKey)), + finalize(() => this.modalBusy.set(false)) + ).subscribe({ + next: res => { + this.resourcePermissions.set(res.permissions || []); + this.toasterService.success('AbpUi::SuccessfullyDeleted'); + } + }); + } +} From 04973110a13cc9a6507835f36096cad97be72b32 Mon Sep 17 00:00:00 2001 From: Fahri Gedik Date: Mon, 22 Dec 2025 20:05:27 +0300 Subject: [PATCH 02/15] Refactor resource permission management to use extensible table Moved resource-permission-management component files into a dedicated folder and updated imports. Replaced the manual table implementation with the ExtensibleTableComponent for resource permissions, added client-side pagination, and introduced extension points for entity property configuration. Added new defaults, services, and tokens to support extensibility and improved maintainability. --- .../src/lib/components/index.ts | 2 +- ...ource-permission-management.component.html | 94 +++++++++---------- ...esource-permission-management.component.ts | 74 ++++++++++++--- ...efault-resource-permission-entity-props.ts | 34 +++++++ .../src/lib/defaults/index.ts | 1 + .../src/lib/enums/components.ts | 1 + .../src/lib/services/extensions.service.ts | 23 +++++ .../src/lib/services/index.ts | 1 + .../src/lib/tokens/extensions.token.ts | 17 ++++ .../src/lib/tokens/index.ts | 1 + 10 files changed, 181 insertions(+), 67 deletions(-) rename npm/ng-packs/packages/permission-management/src/lib/components/{ => resource-permission-management}/resource-permission-management.component.html (68%) rename npm/ng-packs/packages/permission-management/src/lib/components/{ => resource-permission-management}/resource-permission-management.component.ts (80%) create mode 100644 npm/ng-packs/packages/permission-management/src/lib/defaults/default-resource-permission-entity-props.ts create mode 100644 npm/ng-packs/packages/permission-management/src/lib/defaults/index.ts create mode 100644 npm/ng-packs/packages/permission-management/src/lib/services/extensions.service.ts create mode 100644 npm/ng-packs/packages/permission-management/src/lib/services/index.ts create mode 100644 npm/ng-packs/packages/permission-management/src/lib/tokens/extensions.token.ts create mode 100644 npm/ng-packs/packages/permission-management/src/lib/tokens/index.ts diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/index.ts b/npm/ng-packs/packages/permission-management/src/lib/components/index.ts index 83dc62ea41..2c1ce75527 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/index.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/index.ts @@ -1,2 +1,2 @@ export * from './permission-management.component'; -export * from './resource-permission-management.component'; +export * from './resource-permission-management/resource-permission-management.component'; diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html similarity index 68% rename from npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.html rename to npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html index 7d6f9d6016..fa5a2d681e 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.html +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html @@ -1,11 +1,17 @@ -

+

+ } +
@@ -20,54 +26,40 @@ } @else { @if (viewMode() === 'list') { -
+
- @if (resourcePermissions().length === 0) { + +
+ + +
+
+ + @if (resourcePermissions().length > 0) { + + } @else {
{{ 'AbpPermissionManagement::NoPermissionsAssigned' | abpLocalization }}
- } @else { - - - - - - - - - - - @for (grant of resourcePermissions(); track grant.providerKey) { - - - - - - - } - -
{{ 'AbpPermissionManagement::Provider' | abpLocalization }}{{ 'AbpPermissionManagement::ProviderKey' | abpLocalization }}{{ 'AbpPermissionManagement::Permissions' | abpLocalization }}{{ 'AbpPermissionManagement::Actions' | abpLocalization }}
{{ grant.providerNameDisplayName }}{{ grant.providerDisplayName || grant.providerKey }} - @for (perm of grant.permissions; track perm.name) { - {{ perm.displayName }} - } - - - -
} } @if (viewMode() === 'add') {
+
@for (provider of providers(); track provider.name; let i = $index) {
@@ -82,6 +74,7 @@
+ @@ -108,25 +101,25 @@ {{ 'AbpPermissionManagement::GrantAllResourcePermissions' | abpLocalization }}
- @for (perm of permissionDefinitions(); track perm.name) { -
- - +
+ @for (perm of permissionDefinitions(); track perm.name) { +
+ + +
+ }
- }
} @if (viewMode() === 'edit') { -
-
{{ 'AbpPermissionManagement::ResourcePermissionPermissions' | abpLocalization }}
-

- {{ editProviderName() }}: {{ editProviderKey() }} -

+
+

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }}

@@ -140,9 +133,6 @@ [checked]="isPermissionSelected(perm.name || '')" (change)="togglePermission(perm.name || '')" />
} diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts similarity index 80% rename from npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.ts rename to npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts index 59c79cd77f..f8e951a1f1 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts @@ -1,4 +1,4 @@ -import { LocalizationPipe } from '@abp/ng.core'; +import { ListService, LocalizationPipe } from '@abp/ng.core'; import { ButtonComponent, ModalCloseDirective, @@ -6,10 +6,6 @@ import { ToasterService, } from '@abp/ng.theme.shared'; import { - GetResourcePermissionListResultDto, - GetResourceProviderListResultDto, - GetResourcePermissionDefinitionListResultDto, - GetResourcePermissionWithProviderListResultDto, PermissionsService, ResourcePermissionGrantInfoDto, ResourceProviderDto, @@ -18,7 +14,10 @@ import { ResourcePermissionWithProdiverGrantInfoDto, } from '@abp/ng.permission-management/proxy'; import { - ChangeDetectionStrategy, + ExtensibleTableComponent, + EXTENSIONS_IDENTIFIER, +} from '@abp/ng.components/extensible'; +import { Component, EventEmitter, inject, @@ -26,9 +25,12 @@ import { Output, signal, computed, + OnInit, } from '@angular/core'; import { FormsModule } from '@angular/forms'; -import { finalize, switchMap, of, debounceTime, Subject, distinctUntilChanged } from 'rxjs'; +import { finalize, switchMap, debounceTime, Subject, distinctUntilChanged, of } from 'rxjs'; +import { ePermissionManagementComponents } from '../../enums/components'; +import { configureResourcePermissionExtensions } from '../../services/extensions.service'; type ViewMode = 'list' | 'add' | 'edit'; @@ -36,18 +38,26 @@ type ViewMode = 'list' | 'add' | 'edit'; selector: 'abp-resource-permission-management', templateUrl: './resource-permission-management.component.html', exportAs: 'abpResourcePermissionManagement', - changeDetection: ChangeDetectionStrategy.OnPush, + providers: [ + ListService, + { + provide: EXTENSIONS_IDENTIFIER, + useValue: ePermissionManagementComponents.ResourcePermissions, + }, + ], imports: [ FormsModule, ModalComponent, LocalizationPipe, ButtonComponent, ModalCloseDirective, + ExtensibleTableComponent, ], }) -export class ResourcePermissionManagementComponent { +export class ResourcePermissionManagementComponent implements OnInit { protected readonly service = inject(PermissionsService); protected readonly toasterService = inject(ToasterService); + readonly list = inject(ListService); @Input() resourceName!: string; @Input() resourceKey!: string; @@ -81,7 +91,9 @@ export class ResourcePermissionManagementComponent { hasProviderKeyLookupService = signal(false); // Data - resourcePermissions = signal([]); + allResourcePermissions = signal([]); // All data for client-side pagination + resourcePermissions = signal([]); // Paginated data for table + totalCount = signal(0); providers = signal([]); permissionDefinitions = signal([]); searchResults = signal([]); @@ -101,6 +113,9 @@ export class ResourcePermissionManagementComponent { private searchSubject = new Subject(); constructor() { + // Configure extensions for entity props + configureResourcePermissionExtensions(); + this.searchSubject.pipe( debounceTime(300), distinctUntilChanged() @@ -109,13 +124,39 @@ export class ResourcePermissionManagementComponent { }); } + ngOnInit() { + // Configure list service for pagination + this.list.maxResultCount = 10; + + // Hook to query for client-side pagination + this.list.hookToQuery(query => { + const allData = this.allResourcePermissions(); + const skipCount = query.skipCount || 0; + const maxResultCount = query.maxResultCount || 10; + + // Client-side pagination + const paginatedData = allData.slice(skipCount, skipCount + maxResultCount); + + return of({ + items: paginatedData, + totalCount: allData.length + }); + }).subscribe(result => { + this.resourcePermissions.set(result.items); + this.totalCount.set(result.totalCount); + }); + } + openModal() { this.modalBusy.set(true); // Load resource permissions and providers this.service.getResource(this.resourceName, this.resourceKey).pipe( switchMap(permRes => { - this.resourcePermissions.set(permRes.permissions || []); + this.allResourcePermissions.set(permRes.permissions || []); + this.totalCount.set(permRes.permissions?.length || 0); + // Trigger list refresh + this.list.get(); return this.service.getResourceProviderKeyLookupServices(this.resourceName); }), switchMap(providerRes => { @@ -140,7 +181,9 @@ export class ResourcePermissionManagementComponent { resetState() { this.viewMode.set('list'); + this.allResourcePermissions.set([]); this.resourcePermissions.set([]); + this.totalCount.set(0); this.selectedProviderName.set(''); this.selectedProviderKey.set(''); this.searchFilter.set(''); @@ -276,7 +319,8 @@ export class ResourcePermissionManagementComponent { finalize(() => this.modalBusy.set(false)) ).subscribe({ next: res => { - this.resourcePermissions.set(res.permissions || []); + this.allResourcePermissions.set(res.permissions || []); + this.list.get(); this.toasterService.success('AbpUi::SavedSuccessfully'); this.goToListMode(); } @@ -298,7 +342,8 @@ export class ResourcePermissionManagementComponent { finalize(() => this.modalBusy.set(false)) ).subscribe({ next: res => { - this.resourcePermissions.set(res.permissions || []); + this.allResourcePermissions.set(res.permissions || []); + this.list.get(); this.toasterService.success('AbpUi::SavedSuccessfully'); this.goToListMode(); } @@ -317,7 +362,8 @@ export class ResourcePermissionManagementComponent { finalize(() => this.modalBusy.set(false)) ).subscribe({ next: res => { - this.resourcePermissions.set(res.permissions || []); + this.allResourcePermissions.set(res.permissions || []); + this.list.get(); this.toasterService.success('AbpUi::SuccessfullyDeleted'); } }); diff --git a/npm/ng-packs/packages/permission-management/src/lib/defaults/default-resource-permission-entity-props.ts b/npm/ng-packs/packages/permission-management/src/lib/defaults/default-resource-permission-entity-props.ts new file mode 100644 index 0000000000..107410f73c --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/defaults/default-resource-permission-entity-props.ts @@ -0,0 +1,34 @@ +import { EntityProp, ePropType } from '@abp/ng.components/extensible'; +import { ResourcePermissionGrantInfoDto } from '@abp/ng.permission-management/proxy'; +import { of } from 'rxjs'; + +export const DEFAULT_RESOURCE_PERMISSION_ENTITY_PROPS = EntityProp.createMany([ + { + type: ePropType.String, + name: 'providerWithKey', + displayName: 'AbpPermissionManagement::Provider', + sortable: false, + valueResolver: data => { + const providerName = data.record.providerName || ''; + const providerDisplayName = data.record.providerDisplayName || data.record.providerKey || ''; + // Get first letter of provider name for abbreviation + const abbr = providerName.charAt(0).toUpperCase(); + return of( + `${abbr}${providerDisplayName}` + ); + }, + }, + { + type: ePropType.String, + name: 'permissions', + displayName: 'AbpPermissionManagement::Permissions', + sortable: false, + valueResolver: data => { + const permissions = data.record.permissions || []; + const pills = permissions + .map(p => `${p.displayName}`) + .join(''); + return of(pills); + }, + }, +]); diff --git a/npm/ng-packs/packages/permission-management/src/lib/defaults/index.ts b/npm/ng-packs/packages/permission-management/src/lib/defaults/index.ts new file mode 100644 index 0000000000..930121e6f1 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/defaults/index.ts @@ -0,0 +1 @@ +export * from './default-resource-permission-entity-props'; diff --git a/npm/ng-packs/packages/permission-management/src/lib/enums/components.ts b/npm/ng-packs/packages/permission-management/src/lib/enums/components.ts index 175d39c999..5db553c4e9 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/enums/components.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/enums/components.ts @@ -1,3 +1,4 @@ export const enum ePermissionManagementComponents { PermissionManagement = 'PermissionManagement.PermissionManagementComponent', + ResourcePermissions = 'PermissionManagement.ResourcePermissionsComponent', } diff --git a/npm/ng-packs/packages/permission-management/src/lib/services/extensions.service.ts b/npm/ng-packs/packages/permission-management/src/lib/services/extensions.service.ts new file mode 100644 index 0000000000..ef9de4bc37 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/services/extensions.service.ts @@ -0,0 +1,23 @@ +import { + ExtensionsService, + mergeWithDefaultProps, +} from '@abp/ng.components/extensible'; +import { inject } from '@angular/core'; +import { + RESOURCE_PERMISSION_ENTITY_PROP_CONTRIBUTORS, + DEFAULT_RESOURCE_PERMISSION_ENTITY_PROPS_MAP, +} from '../tokens'; + +export function configureResourcePermissionExtensions() { + const extensions = inject(ExtensionsService); + + const config = { optional: true }; + + const propContributors = inject(RESOURCE_PERMISSION_ENTITY_PROP_CONTRIBUTORS, config) || {}; + + mergeWithDefaultProps( + extensions.entityProps, + DEFAULT_RESOURCE_PERMISSION_ENTITY_PROPS_MAP, + propContributors, + ); +} diff --git a/npm/ng-packs/packages/permission-management/src/lib/services/index.ts b/npm/ng-packs/packages/permission-management/src/lib/services/index.ts new file mode 100644 index 0000000000..29bda44023 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/services/index.ts @@ -0,0 +1 @@ +export * from './extensions.service'; diff --git a/npm/ng-packs/packages/permission-management/src/lib/tokens/extensions.token.ts b/npm/ng-packs/packages/permission-management/src/lib/tokens/extensions.token.ts new file mode 100644 index 0000000000..b87f253eb1 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/tokens/extensions.token.ts @@ -0,0 +1,17 @@ +import { ResourcePermissionGrantInfoDto } from '@abp/ng.permission-management/proxy'; +import { EntityPropContributorCallback } from '@abp/ng.components/extensible'; +import { InjectionToken } from '@angular/core'; +import { DEFAULT_RESOURCE_PERMISSION_ENTITY_PROPS } from '../defaults/default-resource-permission-entity-props'; +import { ePermissionManagementComponents } from '../enums/components'; + +export const DEFAULT_RESOURCE_PERMISSION_ENTITY_PROPS_MAP = { + [ePermissionManagementComponents.ResourcePermissions]: DEFAULT_RESOURCE_PERMISSION_ENTITY_PROPS, +}; + +export const RESOURCE_PERMISSION_ENTITY_PROP_CONTRIBUTORS = new InjectionToken( + 'RESOURCE_PERMISSION_ENTITY_PROP_CONTRIBUTORS', +); + +type EntityPropContributors = Partial<{ + [ePermissionManagementComponents.ResourcePermissions]: EntityPropContributorCallback[]; +}>; diff --git a/npm/ng-packs/packages/permission-management/src/lib/tokens/index.ts b/npm/ng-packs/packages/permission-management/src/lib/tokens/index.ts new file mode 100644 index 0000000000..33233400a2 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/tokens/index.ts @@ -0,0 +1 @@ +export * from './extensions.token'; From f8f03c3cdf4b4a63beb223e9daf68d908d0facaf Mon Sep 17 00:00:00 2001 From: Fahri Gedik Date: Mon, 22 Dec 2025 20:20:45 +0300 Subject: [PATCH 03/15] Add new localization keys for permission management Added new translation keys for 'UpdatePermission', 'NoPermissionsAssigned', 'SelectProvider', 'SearchProviderKey', and 'Provider' across all supported languages in the permission management module. This enhances localization support for new UI features related to provider selection and permission assignment. --- .../Abp/PermissionManagement/Localization/Domain/ar.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/cs.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/de.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/el.json | 7 ++++++- .../PermissionManagement/Localization/Domain/en-GB.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/en.json | 9 +++++++-- .../Abp/PermissionManagement/Localization/Domain/es.json | 9 +++++++-- .../Abp/PermissionManagement/Localization/Domain/fa.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/fi.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/fr.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/hi.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/hr.json | 9 +++++++-- .../Abp/PermissionManagement/Localization/Domain/hu.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/is.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/it.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/nl.json | 7 ++++++- .../PermissionManagement/Localization/Domain/pl-PL.json | 7 ++++++- .../PermissionManagement/Localization/Domain/pt-BR.json | 7 ++++++- .../PermissionManagement/Localization/Domain/ro-RO.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/ru.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/sk.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/sl.json | 7 ++++++- .../Abp/PermissionManagement/Localization/Domain/sv.json | 8 +++++++- .../Abp/PermissionManagement/Localization/Domain/tr.json | 9 +++++++-- .../Abp/PermissionManagement/Localization/Domain/vi.json | 7 ++++++- .../Localization/Domain/zh-Hans.json | 7 ++++++- .../Localization/Domain/zh-Hant.json | 7 ++++++- 27 files changed, 167 insertions(+), 31 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json index f234ef9068..3b841ba623 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "تحديث الإذن", "GrantAllResourcePermissions": "منح الكل", "NoResourceProviderKeyLookupServiceFound": "لم يتم العثور على خدمة البحث عن مفتاح المزود", - "NoResourcePermissionFound": "لا توجد أي أذونات محددة." + "NoResourcePermissionFound": "لا توجد أي أذونات محددة.", + "UpdatePermission": "تحديث الإذن", + "NoPermissionsAssigned": "لم يتم تعيين أذونات", + "SelectProvider": "اختر المزود", + "SearchProviderKey": "بحث عن مفتاح المزود", + "Provider": "المزود" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json index 2083a51da2..b3e33327b5 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Aktualizovat oprávnění", "GrantAllResourcePermissions": "Udělit vše", "NoResourceProviderKeyLookupServiceFound": "Nebyla nalezena služba pro vyhledávání klíče poskytovatele zdrojů", - "NoResourcePermissionFound": "Pro aktuální prostředek není definováno žádné oprávnění." + "NoResourcePermissionFound": "Pro aktuální prostředek není definováno žádné oprávnění.", + "UpdatePermission": "Aktualizovat oprávnění", + "NoPermissionsAssigned": "Nejsou přiřazena žádná oprávnění", + "SelectProvider": "Vybrat poskytovatele", + "SearchProviderKey": "Hledat klíč poskytovatele", + "Provider": "Poskytovatel" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json index 65fb5b83d6..00b0344bef 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Berechtigung aktualisieren", "GrantAllResourcePermissions": "Alle gewähren", "NoResourceProviderKeyLookupServiceFound": "Es wurde kein Dienst zum Nachschlagen des Anbieterschlüssels gefunden", - "NoResourcePermissionFound": "Es ist keine Berechtigung definiert." + "NoResourcePermissionFound": "Es ist keine Berechtigung definiert.", + "UpdatePermission": "Berechtigung aktualisieren", + "NoPermissionsAssigned": "Keine Berechtigungen zugewiesen", + "SelectProvider": "Anbieter auswählen", + "SearchProviderKey": "Anbieterschlüssel suchen", + "Provider": "Anbieter" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json index 125d64e5dc..1cf2f78977 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Ενημέρωση δικαιώματος", "GrantAllResourcePermissions": "Παραχώρηση όλων", "NoResourceProviderKeyLookupServiceFound": "Δεν βρέθηκε υπηρεσία αναζήτησης κλειδιού παρόχου", - "NoResourcePermissionFound": "Δεν έχει οριστεί καμία άδεια." + "NoResourcePermissionFound": "Δεν έχει οριστεί καμία άδεια.", + "UpdatePermission": "Ενημέρωση δικαιώματος", + "NoPermissionsAssigned": "Δεν έχουν εκχωρηθεί δικαιώματα", + "SelectProvider": "Επιλέξτε πάροχο", + "SearchProviderKey": "Αναζήτηση κλειδιού παρόχου", + "Provider": "Πάροχος" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en-GB.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en-GB.json index 75d6509523..dbe06b31fd 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en-GB.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en-GB.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Update permission", "GrantAllResourcePermissions": "Grant all", "NoResourceProviderKeyLookupServiceFound": "There is no provider key lookup service was found", - "NoResourcePermissionFound": "There is no permission defined." + "NoResourcePermissionFound": "There is no permission defined.", + "UpdatePermission": "Update permission", + "NoPermissionsAssigned": "No permissions assigned", + "SelectProvider": "Select provider", + "SearchProviderKey": "Search provider key", + "Provider": "Provider" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en.json index f3dde4d6a6..ec24f36188 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Update permission", "GrantAllResourcePermissions": "Grant all", "NoResourceProviderKeyLookupServiceFound": "There is no provider key lookup service was found", - "NoResourcePermissionFound": "There is no permission defined." + "NoResourcePermissionFound": "There is no permission defined.", + "UpdatePermission": "Update permission", + "NoPermissionsAssigned": "No permissions assigned", + "SelectProvider": "Select provider", + "SearchProviderKey": "Search provider key", + "Provider": "Provider" } -} +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json index 1007ca87ef..fa4b898e67 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Actualizar permiso", "GrantAllResourcePermissions": "Conceder todos", "NoResourceProviderKeyLookupServiceFound": "No se encontró ningún servicio de búsqueda de clave de proveedor", - "NoResourcePermissionFound": "No hay ningún permiso definido." + "NoResourcePermissionFound": "No hay ningún permiso definido.", + "UpdatePermission": "Actualizar permiso", + "NoPermissionsAssigned": "No hay permisos asignados", + "SelectProvider": "Seleccionar proveedor", + "SearchProviderKey": "Buscar clave de proveedor", + "Provider": "Proveedor" } -} +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fa.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fa.json index 4d711f6542..aabc82fdbf 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fa.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fa.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "به‌روزرسانی مجوز", "GrantAllResourcePermissions": "اعطای همه", "NoResourceProviderKeyLookupServiceFound": "هیچ سرویس جستجوی کلید ارائه‌دهنده یافت نشد", - "NoResourcePermissionFound": "هیچ مجوزی تعریف نشده است." + "NoResourcePermissionFound": "هیچ مجوزی تعریف نشده است.", + "UpdatePermission": "به‌روزرسانی مجوز", + "NoPermissionsAssigned": "هیچ مجوزی اختصاص داده نشده است", + "SelectProvider": "انتخاب کننده‌", + "SearchProviderKey": "جستجوی کلید تامین‌کننده", + "Provider": "تامین‌کننده" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fi.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fi.json index 02bd697c43..562396b6fb 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fi.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fi.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Päivitä käyttöoikeus", "GrantAllResourcePermissions": "Myönnä kaikki", "NoResourceProviderKeyLookupServiceFound": "Palveluntarjoajan avaimen hakupalvelua ei löytynyt", - "NoResourcePermissionFound": "Ei käyttöoikeuksia määritetty." + "NoResourcePermissionFound": "Ei käyttöoikeuksia määritetty.", + "UpdatePermission": "Päivitä lupa", + "NoPermissionsAssigned": "Ei osoitettuja oikeuksia", + "SelectProvider": "Valitse palveluntarjoaja", + "SearchProviderKey": "Hae palveluntarjoajan avainta", + "Provider": "Palveluntarjoaja" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json index d019936494..da3249d4bb 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Mettre à jour l'autorisation", "GrantAllResourcePermissions": "Accorder tout", "NoResourceProviderKeyLookupServiceFound": "Aucun service de recherche de clé de fournisseur n'a été trouvé", - "NoResourcePermissionFound": "Aucune autorisation n'est définie." + "NoResourcePermissionFound": "Aucune autorisation n'est définie.", + "UpdatePermission": "Mettre à jour l'autorisation", + "NoPermissionsAssigned": "Aucune autorisation assignée", + "SelectProvider": "Sélectionner le fournisseur", + "SearchProviderKey": "Rechercher la clé du fournisseur", + "Provider": "Fournisseur" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json index 141be77ce5..5efd3512cf 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "अनुमति अपडेट करें", "GrantAllResourcePermissions": "सभी प्रदान करें", "NoResourceProviderKeyLookupServiceFound": "कोई प्रदाता कुंजी खोज सेवा नहीं मिली", - "NoResourcePermissionFound": "कोई अनुमति परिभाषित नहीं है।" + "NoResourcePermissionFound": "कोई अनुमति परिभाषित नहीं है।", + "UpdatePermission": "अनुमति अपडेट करें", + "NoPermissionsAssigned": "कोई अनुमति असाइन नहीं की गई", + "SelectProvider": "प्रदाता चुनें", + "SearchProviderKey": "प्रदाता कुंजी खोजें", + "Provider": "प्रदाता" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hr.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hr.json index fb7129a678..b3b5faecbd 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hr.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hr.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Ažuriraj dozvolu", "GrantAllResourcePermissions": "Dodijeli sve", "NoResourceProviderKeyLookupServiceFound": "Nije pronađena usluga za pronalaženje ključa pružatelja", - "NoResourcePermissionFound": "Nijedna dozvola nije definirana." + "NoResourcePermissionFound": "Nijedna dozvola nije definirana.", + "UpdatePermission": "Ažuriraj dopuštenje", + "NoPermissionsAssigned": "Nema dodijeljenih dopuštenja", + "SelectProvider": "Odaberi pružatelja", + "SearchProviderKey": "Traži ključ pružatelja", + "Provider": "Pružatelj" } -} +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hu.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hu.json index 9ef8822f63..5e98571b82 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hu.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hu.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Engedély frissítése", "GrantAllResourcePermissions": "Összes engedély megadása", "NoResourceProviderKeyLookupServiceFound": "Nem található szolgáltató kulcs kereső szolgáltatás", - "NoResourcePermissionFound": "Nincs meghatározva engedély." + "NoResourcePermissionFound": "Nincs meghatározva engedély.", + "UpdatePermission": "Jogosultság frissítése", + "NoPermissionsAssigned": "Nincsenek jogosultságok hozzárendelve", + "SelectProvider": "Szolgáltató kiválasztása", + "SearchProviderKey": "Szolgáltatói kulcs keresése", + "Provider": "Szolgáltató" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json index 0510d8a1b8..3361277667 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Uppfæra heimild", "GrantAllResourcePermissions": "Veita allt", "NoResourceProviderKeyLookupServiceFound": "Engin þjónusta fannst til að leita að lykli veitanda", - "NoResourcePermissionFound": "Engin heimild er skilgreind." + "NoResourcePermissionFound": "Engin heimild er skilgreind.", + "UpdatePermission": "Uppfæra leyfi", + "NoPermissionsAssigned": "Engar heimildir skráðar", + "SelectProvider": "Velja þjónustuaðila", + "SearchProviderKey": "Leita að lykli þjónustuaðila", + "Provider": "Þjónustuaðili" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json index 644eae25ee..24a7563f1c 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Aggiorna autorizzazione", "GrantAllResourcePermissions": "Concedi tutto", "NoResourceProviderKeyLookupServiceFound": "Non è stato trovato alcun servizio di ricerca chiave del provider", - "NoResourcePermissionFound": "Non è definita alcuna autorizzazione." + "NoResourcePermissionFound": "Non è definita alcuna autorizzazione.", + "UpdatePermission": "Aggiorna permesso", + "NoPermissionsAssigned": "Nessun permesso assegnato", + "SelectProvider": "Seleziona fornitore", + "SearchProviderKey": "Cerca chiave fornitore", + "Provider": "Fornitore" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json index b9af1b227b..f0747c3ed2 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Recht bijwerken", "GrantAllResourcePermissions": "Alles toekennen", "NoResourceProviderKeyLookupServiceFound": "Er is geen service gevonden voor het opzoeken van de sleutel van de provider", - "NoResourcePermissionFound": "Er is geen machtiging gedefinieerd." + "NoResourcePermissionFound": "Er is geen machtiging gedefinieerd.", + "UpdatePermission": "Machtiging bijwerken", + "NoPermissionsAssigned": "Geen machtigingen toegewezen", + "SelectProvider": "Selecteer provider", + "SearchProviderKey": "Zoek provider sleutel", + "Provider": "Provider" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json index 9ba0bd5690..78c499e284 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Zaktualizuj uprawnienie", "GrantAllResourcePermissions": "Przyznaj wszystko", "NoResourceProviderKeyLookupServiceFound": "Nie znaleziono usługi wyszukiwania klucza dostawcy", - "NoResourcePermissionFound": "Nie zdefiniowano żadnych uprawnień." + "NoResourcePermissionFound": "Nie zdefiniowano żadnych uprawnień.", + "UpdatePermission": "Aktualizuj uprawnienie", + "NoPermissionsAssigned": "Brak przypisanych uprawnień", + "SelectProvider": "Wybierz dostawcę", + "SearchProviderKey": "Szukaj klucza dostawcy", + "Provider": "Dostawca" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json index d9ceca3317..757709eb41 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Atualizar permissão", "GrantAllResourcePermissions": "Conceder tudo", "NoResourceProviderKeyLookupServiceFound": "Nenhum serviço de pesquisa de chave do provedor foi encontrado", - "NoResourcePermissionFound": "Nenhuma permissão foi definida." + "NoResourcePermissionFound": "Nenhuma permissão foi definida.", + "UpdatePermission": "Atualizar permissão", + "NoPermissionsAssigned": "Nenhuma permissão atribuída", + "SelectProvider": "Selecionar provedor", + "SearchProviderKey": "Pesquisar chave do provedor", + "Provider": "Provedor" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json index 25553f693b..907175b80c 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Actualizați permisiunea", "GrantAllResourcePermissions": "Acordați toate", "NoResourceProviderKeyLookupServiceFound": "Nu a fost găsit niciun serviciu de căutare a cheii furnizorului", - "NoResourcePermissionFound": "Nu există nicio permisiune definită." + "NoResourcePermissionFound": "Nu există nicio permisiune definită.", + "UpdatePermission": "Actualizează permisiunea", + "NoPermissionsAssigned": "Nicio permisiune atribuită", + "SelectProvider": "Selectează furnizor", + "SearchProviderKey": "Caută cheie furnizor", + "Provider": "Furnizor" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json index 409460e2dd..7e6ec8b902 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Обновить разрешение", "GrantAllResourcePermissions": "Предоставить все", "NoResourceProviderKeyLookupServiceFound": "Служба поиска ключа поставщика не найдена", - "NoResourcePermissionFound": "Не определено ни одного разрешения." + "NoResourcePermissionFound": "Не определено ни одного разрешения.", + "UpdatePermission": "Обновить разрешение", + "NoPermissionsAssigned": "Нет назначенных разрешений", + "SelectProvider": "Выбрать провайдера", + "SearchProviderKey": "Поиск ключа провайдера", + "Provider": "Провайдер" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json index 09394f87a9..0b2e5c0612 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Aktualizovať oprávnenie", "GrantAllResourcePermissions": "Udeľ všetko", "NoResourceProviderKeyLookupServiceFound": "Nebola nájdená služba na vyhľadávanie kľúča poskytovateľa", - "NoResourcePermissionFound": "Nie je definované žiadne povolenie." + "NoResourcePermissionFound": "Nie je definované žiadne povolenie.", + "UpdatePermission": "Aktualizovať oprávnenie", + "NoPermissionsAssigned": "Nie sú priradené žiadne oprávnenia", + "SelectProvider": "Vybrat poskytovateľa", + "SearchProviderKey": "Hľadať kľúč poskytovateľa", + "Provider": "Poskytovateľ" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json index 60ee9af67a..802c20e224 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Posodobi dovoljenje", "GrantAllResourcePermissions": "Dodeli vse", "NoResourceProviderKeyLookupServiceFound": "Ni bilo mogoče najti storitve za iskanje ključa ponudnika", - "NoResourcePermissionFound": "Nobeno dovoljenje ni določeno." + "NoResourcePermissionFound": "Nobeno dovoljenje ni določeno.", + "UpdatePermission": "Posodobi dovoljenje", + "NoPermissionsAssigned": "Ni dodeljenih dovoljenj", + "SelectProvider": "Izberi ponudnika", + "SearchProviderKey": "Išči ključ ponudnika", + "Provider": "Ponudnik" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json index a5c1260438..5c59dfc244 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json @@ -17,6 +17,12 @@ "UpdateResourcePermission": "Uppdatera behörighet", "GrantAllResourcePermissions": "Bevilja alla", "NoResourceProviderKeyLookupServiceFound": "Ingen tjänst för att söka efter leverantörsnyckel hittades", - "NoResourcePermissionFound": "Ingen behörighet är definierad." + "NoResourcePermissionFound": "Ingen behörighet är definierad.", + "UpdatePermission": "Uppdatera behörighet", + "NoPermissionsAssigned": "Inga behörigheter tilldelade", + "Välj leverantör": "Välj leverantör", + "SelectProvider": "Välj leverantör", + "SearchProviderKey": "Sök leverantörsnyckel", + "Provider": "Leverantör" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/tr.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/tr.json index b96baa2383..43b31afe6c 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/tr.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/tr.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "İzni güncelle", "GrantAllResourcePermissions": "Tümünü ver", "NoResourceProviderKeyLookupServiceFound": "Herhangi bir sağlayıcı anahtar arama hizmeti bulunamadı", - "NoResourcePermissionFound": "Herhangi bir izin tanımlı değil." + "NoResourcePermissionFound": "Herhangi bir izin tanımlı değil.", + "UpdatePermission": "İzni güncelle", + "NoPermissionsAssigned": "Atanmış izin bulunamadı", + "SelectProvider": "Sağlayıcı seç", + "SearchProviderKey": "Sağlayıcı anahtarını ara", + "Provider": "Sağlayıcı" } -} +} \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json index 2a5aca86e1..09d8f8b3f8 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "Cập nhật quyền", "GrantAllResourcePermissions": "Cấp tất cả", "NoResourceProviderKeyLookupServiceFound": "Không tìm thấy dịch vụ tra cứu khóa nhà cung cấp", - "NoResourcePermissionFound": "Không có quyền nào được định nghĩa." + "NoResourcePermissionFound": "Không có quyền nào được định nghĩa.", + "UpdatePermission": "Cập nhật quyền", + "NoPermissionsAssigned": "Chưa được cấp quyền", + "SelectProvider": "Chọn nhà cung cấp", + "SearchProviderKey": "Tìm kiếm khóa nhà cung cấp", + "Provider": "Nhà cung cấp" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hans.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hans.json index bbd53f9606..07ef8c7735 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hans.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hans.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "更新权限", "GrantAllResourcePermissions": "授予所有", "NoResourceProviderKeyLookupServiceFound": "未找到提供者键查找服务", - "NoResourcePermissionFound": "未定义任何权限。" + "NoResourcePermissionFound": "未定义任何权限。", + "UpdatePermission": "更新权限", + "NoPermissionsAssigned": "未分配权限", + "SelectProvider": "选择提供程序", + "SearchProviderKey": "搜索提供程序密钥", + "Provider": "提供程序" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json index c081c54f20..9cee2a1c77 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json @@ -17,6 +17,11 @@ "UpdateResourcePermission": "更新權限", "GrantAllResourcePermissions": "授予所有", "NoResourceProviderKeyLookupServiceFound": "未找到提供者鍵查找服務", - "NoResourcePermissionFound": "未定義任何權限。" + "NoResourcePermissionFound": "未定義任何權限。", + "UpdatePermission": "更新權限", + "NoPermissionsAssigned": "未分配權限", + "SelectProvider": "選擇提供者", + "SearchProviderKey": "搜尋提供者金鑰", + "Provider": "提供者" } } \ No newline at end of file From a5f4202380dfb14e41b630c0907c469a5851217f Mon Sep 17 00:00:00 2001 From: Fahri Gedik Date: Mon, 22 Dec 2025 20:46:41 +0300 Subject: [PATCH 04/15] Add new localization keys for permission errors Added 'ErrorLoadingPermissions' and 'PleaseSelectProviderAndPermissions' keys to all language JSON files in the permission management module to support new error and prompt messages in the UI. --- .../Volo/Abp/PermissionManagement/Localization/Domain/ar.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/cs.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/de.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/el.json | 4 +++- .../Abp/PermissionManagement/Localization/Domain/en-GB.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/en.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/es.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/fa.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/fi.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/fr.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/hi.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/hr.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/hu.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/is.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/it.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/nl.json | 4 +++- .../Abp/PermissionManagement/Localization/Domain/pl-PL.json | 4 +++- .../Abp/PermissionManagement/Localization/Domain/pt-BR.json | 4 +++- .../Abp/PermissionManagement/Localization/Domain/ro-RO.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/ru.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/sk.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/sl.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/sv.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/tr.json | 4 +++- .../Volo/Abp/PermissionManagement/Localization/Domain/vi.json | 4 +++- .../Abp/PermissionManagement/Localization/Domain/zh-Hans.json | 4 +++- .../Abp/PermissionManagement/Localization/Domain/zh-Hant.json | 4 +++- 27 files changed, 81 insertions(+), 27 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json index 3b841ba623..c1a8e40b7b 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ar.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "لم يتم تعيين أذونات", "SelectProvider": "اختر المزود", "SearchProviderKey": "بحث عن مفتاح المزود", - "Provider": "المزود" + "Provider": "المزود", + "ErrorLoadingPermissions": "خطأ في تحميل الأذونات", + "PleaseSelectProviderAndPermissions": "يرجى اختيار المزود والأذونات" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json index b3e33327b5..f8f9e642c3 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/cs.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Nejsou přiřazena žádná oprávnění", "SelectProvider": "Vybrat poskytovatele", "SearchProviderKey": "Hledat klíč poskytovatele", - "Provider": "Poskytovatel" + "Provider": "Poskytovatel", + "ErrorLoadingPermissions": "Chyba při načítání oprávnění", + "PleaseSelectProviderAndPermissions": "Vyberte prosím poskytovatele a oprávnění" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json index 00b0344bef..dcf9cf08e9 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/de.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Keine Berechtigungen zugewiesen", "SelectProvider": "Anbieter auswählen", "SearchProviderKey": "Anbieterschlüssel suchen", - "Provider": "Anbieter" + "Provider": "Anbieter", + "ErrorLoadingPermissions": "Fehler beim Laden der Berechtigungen", + "PleaseSelectProviderAndPermissions": "Bitte wählen Sie einen Anbieter und Berechtigungen aus" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json index 1cf2f78977..926943701c 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/el.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Δεν έχουν εκχωρηθεί δικαιώματα", "SelectProvider": "Επιλέξτε πάροχο", "SearchProviderKey": "Αναζήτηση κλειδιού παρόχου", - "Provider": "Πάροχος" + "Provider": "Πάροχος", + "ErrorLoadingPermissions": "Σφάλμα κατά τη φόρτωση δικαιωμάτων", + "PleaseSelectProviderAndPermissions": "Επιλέξτε πάροχο και δικαιώματα" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en-GB.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en-GB.json index dbe06b31fd..11370fd6ff 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en-GB.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en-GB.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "No permissions assigned", "SelectProvider": "Select provider", "SearchProviderKey": "Search provider key", - "Provider": "Provider" + "Provider": "Provider", + "ErrorLoadingPermissions": "Error loading permissions", + "PleaseSelectProviderAndPermissions": "Please select provider and permissions" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en.json index ec24f36188..6a4c8d41ab 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/en.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "No permissions assigned", "SelectProvider": "Select provider", "SearchProviderKey": "Search provider key", - "Provider": "Provider" + "Provider": "Provider", + "ErrorLoadingPermissions": "Error loading permissions", + "PleaseSelectProviderAndPermissions": "Please select provider and permissions" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json index fa4b898e67..c39091d8a6 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/es.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "No hay permisos asignados", "SelectProvider": "Seleccionar proveedor", "SearchProviderKey": "Buscar clave de proveedor", - "Provider": "Proveedor" + "Provider": "Proveedor", + "ErrorLoadingPermissions": "Error al cargar permisos", + "PleaseSelectProviderAndPermissions": "Por favor, selecciona proveedor y permisos" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fa.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fa.json index aabc82fdbf..21c00d539f 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fa.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fa.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "هیچ مجوزی اختصاص داده نشده است", "SelectProvider": "انتخاب کننده‌", "SearchProviderKey": "جستجوی کلید تامین‌کننده", - "Provider": "تامین‌کننده" + "Provider": "تامین‌کننده", + "ErrorLoadingPermissions": "خطا در بارگذاری مجوزها", + "PleaseSelectProviderAndPermissions": "لطفاً تامین‌کننده و مجوزها را انتخاب کنید" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fi.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fi.json index 562396b6fb..43d3ded466 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fi.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fi.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Ei osoitettuja oikeuksia", "SelectProvider": "Valitse palveluntarjoaja", "SearchProviderKey": "Hae palveluntarjoajan avainta", - "Provider": "Palveluntarjoaja" + "Provider": "Palveluntarjoaja", + "ErrorLoadingPermissions": "Virhe ladataessa oikeuksia", + "PleaseSelectProviderAndPermissions": "Valitse palveluntarjoaja ja oikeudet" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json index da3249d4bb..2d184a2714 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/fr.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Aucune autorisation assignée", "SelectProvider": "Sélectionner le fournisseur", "SearchProviderKey": "Rechercher la clé du fournisseur", - "Provider": "Fournisseur" + "Provider": "Fournisseur", + "ErrorLoadingPermissions": "Erreur lors du chargement des autorisations", + "PleaseSelectProviderAndPermissions": "Veuillez sélectionner le fournisseur et les autorisations" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json index 5efd3512cf..f00d5718b9 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hi.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "कोई अनुमति असाइन नहीं की गई", "SelectProvider": "प्रदाता चुनें", "SearchProviderKey": "प्रदाता कुंजी खोजें", - "Provider": "प्रदाता" + "Provider": "प्रदाता", + "ErrorLoadingPermissions": "अनुमतियाँ लोड करने में त्रुटि", + "PleaseSelectProviderAndPermissions": "कृपया प्रदाता और अनुमतियाँ चुनें" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hr.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hr.json index b3b5faecbd..af74766105 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hr.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hr.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Nema dodijeljenih dopuštenja", "SelectProvider": "Odaberi pružatelja", "SearchProviderKey": "Traži ključ pružatelja", - "Provider": "Pružatelj" + "Provider": "Pružatelj", + "ErrorLoadingPermissions": "Pogreška pri učitavanju dopuštenja", + "PleaseSelectProviderAndPermissions": "Molimo odaberite pružatelja i dopuštenja" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hu.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hu.json index 5e98571b82..e55d15188c 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hu.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/hu.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Nincsenek jogosultságok hozzárendelve", "SelectProvider": "Szolgáltató kiválasztása", "SearchProviderKey": "Szolgáltatói kulcs keresése", - "Provider": "Szolgáltató" + "Provider": "Szolgáltató", + "ErrorLoadingPermissions": "Hiba a jogosultságok betöltésekor", + "PleaseSelectProviderAndPermissions": "Kérjük, válassza ki a szolgáltatót és a jogosultságokat" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json index 3361277667..be40ed7020 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/is.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Engar heimildir skráðar", "SelectProvider": "Velja þjónustuaðila", "SearchProviderKey": "Leita að lykli þjónustuaðila", - "Provider": "Þjónustuaðili" + "Provider": "Þjónustuaðili", + "ErrorLoadingPermissions": "Villa við að hlaða leyfum", + "PleaseSelectProviderAndPermissions": "Vinsamlegast veldu þjónustuaðila og leyfi" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json index 24a7563f1c..af689bad29 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/it.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Nessun permesso assegnato", "SelectProvider": "Seleziona fornitore", "SearchProviderKey": "Cerca chiave fornitore", - "Provider": "Fornitore" + "Provider": "Fornitore", + "ErrorLoadingPermissions": "Errore durante il caricamento dei permessi", + "PleaseSelectProviderAndPermissions": "Selezionare fornitore e permessi" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json index f0747c3ed2..5c86bd91da 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/nl.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Geen machtigingen toegewezen", "SelectProvider": "Selecteer provider", "SearchProviderKey": "Zoek provider sleutel", - "Provider": "Provider" + "Provider": "Provider", + "ErrorLoadingPermissions": "Fout bij laden van machtigingen", + "PleaseSelectProviderAndPermissions": "Selecteer provider en machtigingen" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json index 78c499e284..ce24bc88a0 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pl-PL.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Brak przypisanych uprawnień", "SelectProvider": "Wybierz dostawcę", "SearchProviderKey": "Szukaj klucza dostawcy", - "Provider": "Dostawca" + "Provider": "Dostawca", + "ErrorLoadingPermissions": "Błąd podczas ładowania uprawnień", + "PleaseSelectProviderAndPermissions": "Wybierz dostawcę i uprawnienia" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json index 757709eb41..50c65d248a 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/pt-BR.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Nenhuma permissão atribuída", "SelectProvider": "Selecionar provedor", "SearchProviderKey": "Pesquisar chave do provedor", - "Provider": "Provedor" + "Provider": "Provedor", + "ErrorLoadingPermissions": "Erro ao carregar permissões", + "PleaseSelectProviderAndPermissions": "Por favor, selecione o provedor e as permissões" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json index 907175b80c..8cab09b9d5 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ro-RO.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Nicio permisiune atribuită", "SelectProvider": "Selectează furnizor", "SearchProviderKey": "Caută cheie furnizor", - "Provider": "Furnizor" + "Provider": "Furnizor", + "ErrorLoadingPermissions": "Eroare la încărcarea permisiunilor", + "PleaseSelectProviderAndPermissions": "Vă rugăm să selectați furnizorul și permisiunile" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json index 7e6ec8b902..81e0160345 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/ru.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Нет назначенных разрешений", "SelectProvider": "Выбрать провайдера", "SearchProviderKey": "Поиск ключа провайдера", - "Provider": "Провайдер" + "Provider": "Провайдер", + "ErrorLoadingPermissions": "Ошибка при загрузке разрешений", + "PleaseSelectProviderAndPermissions": "Пожалуйста, выберите провайдера и разрешения" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json index 0b2e5c0612..80e5719fc7 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sk.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Nie sú priradené žiadne oprávnenia", "SelectProvider": "Vybrat poskytovateľa", "SearchProviderKey": "Hľadať kľúč poskytovateľa", - "Provider": "Poskytovateľ" + "Provider": "Poskytovateľ", + "ErrorLoadingPermissions": "Chyba pri načítaní oprávnení", + "PleaseSelectProviderAndPermissions": "Vyberte poskytovateľa a oprávnenia" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json index 802c20e224..c5e5c61382 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sl.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Ni dodeljenih dovoljenj", "SelectProvider": "Izberi ponudnika", "SearchProviderKey": "Išči ključ ponudnika", - "Provider": "Ponudnik" + "Provider": "Ponudnik", + "ErrorLoadingPermissions": "Napaka pri nalaganju dovoljenj", + "PleaseSelectProviderAndPermissions": "Izberite ponudnika in dovoljenja" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json index 5c59dfc244..404d9b93f6 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json @@ -23,6 +23,8 @@ "Välj leverantör": "Välj leverantör", "SelectProvider": "Välj leverantör", "SearchProviderKey": "Sök leverantörsnyckel", - "Provider": "Leverantör" + "Provider": "Leverantör", + "ErrorLoadingPermissions": "Fel vid laddning av behörigheter", + "PleaseSelectProviderAndPermissions": "Välj leverantör och behörigheter" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/tr.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/tr.json index 43b31afe6c..b6eb5f1c7b 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/tr.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/tr.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Atanmış izin bulunamadı", "SelectProvider": "Sağlayıcı seç", "SearchProviderKey": "Sağlayıcı anahtarını ara", - "Provider": "Sağlayıcı" + "Provider": "Sağlayıcı", + "ErrorLoadingPermissions": "İzinler yüklenirken hata oluştu", + "PleaseSelectProviderAndPermissions": "Lütfen sağlayıcı ve izinleri seçin" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json index 09d8f8b3f8..0a26e43253 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/vi.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "Chưa được cấp quyền", "SelectProvider": "Chọn nhà cung cấp", "SearchProviderKey": "Tìm kiếm khóa nhà cung cấp", - "Provider": "Nhà cung cấp" + "Provider": "Nhà cung cấp", + "ErrorLoadingPermissions": "Lỗi khi tải quyền", + "PleaseSelectProviderAndPermissions": "Vui lòng chọn nhà cung cấp và quyền" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hans.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hans.json index 07ef8c7735..2c84e3462d 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hans.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hans.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "未分配权限", "SelectProvider": "选择提供程序", "SearchProviderKey": "搜索提供程序密钥", - "Provider": "提供程序" + "Provider": "提供程序", + "ErrorLoadingPermissions": "加载权限时出错", + "PleaseSelectProviderAndPermissions": "请选择提供程序和权限" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json index 9cee2a1c77..afd9d65459 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/zh-Hant.json @@ -22,6 +22,8 @@ "NoPermissionsAssigned": "未分配權限", "SelectProvider": "選擇提供者", "SearchProviderKey": "搜尋提供者金鑰", - "Provider": "提供者" + "Provider": "提供者", + "ErrorLoadingPermissions": "載入權限時出錯", + "PleaseSelectProviderAndPermissions": "請選擇提供者和權限" } } \ No newline at end of file From 6a6ae98c4e86d8b78b575373dfd47445a1d0298c Mon Sep 17 00:00:00 2001 From: Fahri Gedik Date: Tue, 23 Dec 2025 02:14:14 +0300 Subject: [PATCH 05/15] Improve provider key search UX and add delete confirmation Enhances the provider key search input with focus/blur handling and a dropdown for results, improving user experience. Adds a confirmation dialog before deleting a permission, preventing accidental deletions. Refactors related logic for clarity and better state management. --- ...ource-permission-management.component.html | 9 +- ...esource-permission-management.component.ts | 86 +++++++++++-------- 2 files changed, 57 insertions(+), 38 deletions(-) diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html index fa5a2d681e..b8cc1afd1e 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html @@ -48,7 +48,7 @@ @if (resourcePermissions().length > 0) { + [actionsTemplate]="actionsTemplate" actionsText="AbpUi::Actions"> } @else {
{{ 'AbpPermissionManagement::NoPermissionsAssigned' | abpLocalization }} @@ -77,13 +77,14 @@ - @if (searchResults().length > 0) { + [ngModel]="searchFilter()" (ngModelChange)="onSearchInput($event)" (focus)="onSearchFocus()" + (blur)="onSearchBlur()" /> + @if (searchResults().length > 0 && showDropdown()) {
@for (result of searchResults(); track result.providerKey) { } diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts index f8e951a1f1..3f0334ce5e 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts @@ -1,6 +1,8 @@ import { ListService, LocalizationPipe } from '@abp/ng.core'; import { ButtonComponent, + Confirmation, + ConfirmationService, ModalCloseDirective, ModalComponent, ToasterService, @@ -57,6 +59,7 @@ type ViewMode = 'list' | 'add' | 'edit'; export class ResourcePermissionManagementComponent implements OnInit { protected readonly service = inject(PermissionsService); protected readonly toasterService = inject(ToasterService); + protected readonly confirmationService = inject(ConfirmationService); readonly list = inject(ListService); @Input() resourceName!: string; @@ -84,13 +87,11 @@ export class ResourcePermissionManagementComponent implements OnInit { @Output() readonly visibleChange = new EventEmitter(); - // State signals viewMode = signal('list'); modalBusy = signal(false); hasResourcePermission = signal(false); hasProviderKeyLookupService = signal(false); - // Data allResourcePermissions = signal([]); // All data for client-side pagination resourcePermissions = signal([]); // Paginated data for table totalCount = signal(0); @@ -99,21 +100,19 @@ export class ResourcePermissionManagementComponent implements OnInit { searchResults = signal([]); permissionsWithProvider = signal([]); - // Form state for add/edit selectedProviderName = signal(''); selectedProviderKey = signal(''); searchFilter = signal(''); selectedPermissions = signal([]); - // Edit mode state editProviderName = signal(''); editProviderKey = signal(''); - // Search subject for debounce + showDropdown = signal(false); + private searchSubject = new Subject(); constructor() { - // Configure extensions for entity props configureResourcePermissionExtensions(); this.searchSubject.pipe( @@ -125,16 +124,13 @@ export class ResourcePermissionManagementComponent implements OnInit { } ngOnInit() { - // Configure list service for pagination this.list.maxResultCount = 10; - // Hook to query for client-side pagination this.list.hookToQuery(query => { const allData = this.allResourcePermissions(); const skipCount = query.skipCount || 0; const maxResultCount = query.maxResultCount || 10; - // Client-side pagination const paginatedData = allData.slice(skipCount, skipCount + maxResultCount); return of({ @@ -150,12 +146,10 @@ export class ResourcePermissionManagementComponent implements OnInit { openModal() { this.modalBusy.set(true); - // Load resource permissions and providers this.service.getResource(this.resourceName, this.resourceKey).pipe( switchMap(permRes => { this.allResourcePermissions.set(permRes.permissions || []); this.totalCount.set(permRes.permissions?.length || 0); - // Trigger list refresh this.list.get(); return this.service.getResourceProviderKeyLookupServices(this.resourceName); }), @@ -191,7 +185,6 @@ export class ResourcePermissionManagementComponent implements OnInit { this.searchResults.set([]); } - // View mode navigation goToAddMode() { this.viewMode.set('add'); this.selectedPermissions.set([]); @@ -227,7 +220,6 @@ export class ResourcePermissionManagementComponent implements OnInit { this.selectedPermissions.set([]); } - // Provider selection onProviderChange(providerName: string) { this.selectedProviderName.set(providerName); this.selectedProviderKey.set(''); @@ -235,14 +227,25 @@ export class ResourcePermissionManagementComponent implements OnInit { this.searchFilter.set(''); } - // Search onSearchInput(filter: string) { this.searchFilter.set(filter); + this.showDropdown.set(true); this.searchSubject.next(filter); } - private performSearch(filter: string) { - if (!filter || !this.selectedProviderName()) return; + onSearchFocus() { + this.showDropdown.set(true); + this.loadProviderKeys(this.searchFilter() || ''); + } + + onSearchBlur() { + setTimeout(() => { + this.showDropdown.set(false); + }, 200); + } + + private loadProviderKeys(filter: string) { + if (!this.selectedProviderName()) return; this.service.searchResourceProviderKey( this.resourceName, @@ -254,13 +257,17 @@ export class ResourcePermissionManagementComponent implements OnInit { }); } + private performSearch(filter: string) { + this.loadProviderKeys(filter); + } + selectProviderKey(key: SearchProviderKeyInfo) { this.selectedProviderKey.set(key.providerKey || ''); this.searchFilter.set(key.providerDisplayName || key.providerKey || ''); this.searchResults.set([]); + this.showDropdown.set(false); } - // Permission toggle togglePermission(permissionName: string) { const current = this.selectedPermissions(); if (current.includes(permissionName)) { @@ -298,7 +305,6 @@ export class ResourcePermissionManagementComponent implements OnInit { definitions.every(p => this.selectedPermissions().includes(p.name || '')); }); - // Save operations saveAddPermission() { if (!this.selectedProviderKey() || this.selectedPermissions().length === 0) { this.toasterService.warn('AbpPermissionManagement::PleaseSelectProviderAndPermissions'); @@ -351,21 +357,33 @@ export class ResourcePermissionManagementComponent implements OnInit { } deletePermission(grant: ResourcePermissionGrantInfoDto) { - this.modalBusy.set(true); - this.service.deleteResource( - this.resourceName, - this.resourceKey, - grant.providerName || '', - grant.providerKey || '' - ).pipe( - switchMap(() => this.service.getResource(this.resourceName, this.resourceKey)), - finalize(() => this.modalBusy.set(false)) - ).subscribe({ - next: res => { - this.allResourcePermissions.set(res.permissions || []); - this.list.get(); - this.toasterService.success('AbpUi::SuccessfullyDeleted'); - } - }); + this.confirmationService + .warn( + 'AbpPermissionManagement::PermissionDeletionConfirmationMessage', + 'AbpPermissionManagement::AreYouSure', + { + messageLocalizationParams: [grant.providerKey || ''], + } + ) + .subscribe((status: Confirmation.Status) => { + if (status === Confirmation.Status.confirm) { + this.modalBusy.set(true); + this.service.deleteResource( + this.resourceName, + this.resourceKey, + grant.providerName || '', + grant.providerKey || '' + ).pipe( + switchMap(() => this.service.getResource(this.resourceName, this.resourceKey)), + finalize(() => this.modalBusy.set(false)) + ).subscribe({ + next: res => { + this.allResourcePermissions.set(res.permissions || []); + this.list.get(); + this.toasterService.success('AbpUi::SuccessfullyDeleted'); + } + }); + } + }); } } From ae01f38c24f0d9bd330cf6d26418135afdf6d883 Mon Sep 17 00:00:00 2001 From: sumeyye Date: Wed, 24 Dec 2025 09:38:50 +0300 Subject: [PATCH 06/15] update: sv.json file for an extra key --- .../Volo/Abp/PermissionManagement/Localization/Domain/sv.json | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json index 404d9b93f6..c666cbd8c0 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/Localization/Domain/sv.json @@ -20,7 +20,6 @@ "NoResourcePermissionFound": "Ingen behörighet är definierad.", "UpdatePermission": "Uppdatera behörighet", "NoPermissionsAssigned": "Inga behörigheter tilldelade", - "Välj leverantör": "Välj leverantör", "SelectProvider": "Välj leverantör", "SearchProviderKey": "Sök leverantörsnyckel", "Provider": "Leverantör", From 935270061a76e4694978302f4796ebd239da1f60 Mon Sep 17 00:00:00 2001 From: sumeyye Date: Wed, 24 Dec 2025 09:39:20 +0300 Subject: [PATCH 07/15] update: proxy generation file for the permission management --- .../proxy/src/lib/proxy/generate-proxy.json | 9741 +++++++++++++---- 1 file changed, 7549 insertions(+), 2192 deletions(-) diff --git a/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/generate-proxy.json b/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/generate-proxy.json index dbdc934ed9..05e7c1c92d 100644 --- a/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/generate-proxy.json +++ b/npm/ng-packs/packages/permission-management/proxy/src/lib/proxy/generate-proxy.json @@ -3,37 +3,69 @@ "permissionManagement" ], "modules": { - "featureManagement": { - "rootPath": "featureManagement", - "remoteServiceName": "AbpFeatureManagement", + "abp": { + "rootPath": "abp", + "remoteServiceName": "abp", "controllers": { - "Volo.Abp.FeatureManagement.FeaturesController": { - "controllerName": "Features", - "controllerGroupName": "Features", - "type": "Volo.Abp.FeatureManagement.FeaturesController", + "Pages.Abp.MultiTenancy.AbpTenantController": { + "controllerName": "AbpTenant", + "controllerGroupName": "AbpTenant", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Pages.Abp.MultiTenancy.AbpTenantController", "interfaces": [ { - "type": "Volo.Abp.FeatureManagement.IFeatureAppService" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService", + "name": "IAbpTenantAppService", + "methods": [ + { + "name": "FindTenantByNameAsync", + "parametersOnMethod": [ + { + "name": "name", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + } + }, + { + "name": "FindTenantByIdAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + } + } + ] } ], "actions": { - "GetAsyncByProviderNameAndProviderKey": { - "uniqueName": "GetAsyncByProviderNameAndProviderKey", - "name": "GetAsync", + "FindTenantByNameAsyncByName": { + "uniqueName": "FindTenantByNameAsyncByName", + "name": "FindTenantByNameAsync", "httpMethod": "GET", - "url": "api/feature-management/features", + "url": "api/abp/multi-tenancy/tenants/by-name/{name}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", + "name": "name", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -43,181 +75,229 @@ ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "providerKey", - "name": "providerKey", + "nameOnMethod": "name", + "name": "name", "jsonName": null, "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", - "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" + "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" }, - "UpdateAsyncByProviderNameAndProviderKeyAndInput": { - "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/feature-management/features", + "FindTenantByIdAsyncById": { + "uniqueName": "FindTenantByIdAsyncById", + "name": "FindTenantByIdAsync", + "httpMethod": "GET", + "url": "api/abp/multi-tenancy/tenants/by-id/{id}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", - "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "isOptional": false, - "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" - }, + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { + "controllerName": "AbpApiDefinition", + "controllerGroupName": "AbpApiDefinition", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController", + "interfaces": [], + "actions": { + "GetByModel": { + "uniqueName": "GetByModel", + "name": "Get", + "httpMethod": "GET", + "url": "api/abp/api-definition", + "supportedVersions": [], + "parametersOnMethod": [ { - "nameOnMethod": "providerKey", - "name": "providerKey", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "name": "model", + "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http", + "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", + "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, + "defaultValue": null + } + ], + "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "model", + "name": "IncludeTypes", "jsonName": null, - "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "bindingSourceId": "ModelBinding", + "descriptorName": "model" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" } } - } - } - }, - "multi-tenancy": { - "rootPath": "multi-tenancy", - "remoteServiceName": "AbpTenantManagement", - "controllers": { - "Volo.Abp.TenantManagement.TenantController": { - "controllerName": "Tenant", - "controllerGroupName": "Tenant", - "type": "Volo.Abp.TenantManagement.TenantController", + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { + "controllerName": "AbpApplicationConfiguration", + "controllerGroupName": "AbpApplicationConfiguration", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController", "interfaces": [ { - "type": "Volo.Abp.TenantManagement.ITenantAppService" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService", + "name": "IAbpApplicationConfigurationAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "options", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" + } + } + ] } ], "actions": { - "GetAsyncById": { - "uniqueName": "GetAsyncById", + "GetAsyncByOptions": { + "uniqueName": "GetAsyncByOptions", "name": "GetAsync", "httpMethod": "GET", - "url": "api/multi-tenancy/tenants/{id}", + "url": "api/abp/application-configuration", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "options", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "options", + "name": "IncludeLocalizationResources", "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "options" } ], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController": { + "controllerName": "AbpApplicationLocalization", + "controllerGroupName": "AbpApplicationLocalization", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationLocalizationController", + "interfaces": [ + { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService", + "name": "IAbpApplicationLocalizationAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" + } + } + ] + } + ], + "actions": { + "GetAsyncByInput": { + "uniqueName": "GetAsyncByInput", + "name": "GetAsync", "httpMethod": "GET", - "url": "api/multi-tenancy/tenants", + "url": "api/abp/application-localization", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.GetTenantsInput", - "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeAsString": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto, Volo.Abp.AspNetCore.Mvc.Contracts", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto", "isOptional": false, "defaultValue": null } @@ -225,7 +305,7 @@ "parameters": [ { "nameOnMethod": "input", - "name": "Filter", + "name": "CultureName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -237,60 +317,165 @@ }, { "nameOnMethod": "input", - "name": "Sorting", + "name": "OnlyDynamics", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", "descriptorName": "input" + } + ], + "returnValue": { + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationLocalizationAppService" + } + } + } + } + }, + "account": { + "rootPath": "account", + "remoteServiceName": "AbpAccount", + "controllers": { + "Volo.Abp.Account.AccountController": { + "controllerName": "Account", + "controllerGroupName": "Account", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.Account.AccountController", + "interfaces": [ + { + "type": "Volo.Abp.Account.IAccountAppService", + "name": "IAccountAppService", + "methods": [ + { + "name": "RegisterAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.RegisterDto", + "typeSimple": "Volo.Abp.Account.RegisterDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } }, { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "name": "SendPasswordResetCodeAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.SendPasswordResetCodeDto", + "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } }, + { + "name": "VerifyPasswordResetTokenAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.VerifyPasswordResetTokenInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Boolean", + "typeSimple": "boolean" + } + }, + { + "name": "ResetPasswordAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ResetPasswordDto", + "typeSimple": "Volo.Abp.Account.ResetPasswordDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "RegisterAsyncByInput": { + "uniqueName": "RegisterAsyncByInput", + "name": "RegisterAsync", + "httpMethod": "POST", + "url": "api/account/register", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.RegisterDto", + "typeSimple": "Volo.Abp.Account.RegisterDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ { "nameOnMethod": "input", - "name": "MaxResultCount", + "name": "input", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "Volo.Abp.Account.RegisterDto", + "typeSimple": "Volo.Abp.Account.RegisterDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + "implementFrom": "Volo.Abp.Account.IAccountAppService" }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", + "SendPasswordResetCodeAsyncByInput": { + "uniqueName": "SendPasswordResetCodeAsyncByInput", + "name": "SendPasswordResetCodeAsync", "httpMethod": "POST", - "url": "api/multi-tenancy/tenants", + "url": "api/account/send-password-reset-code", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.TenantCreateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.SendPasswordResetCodeDto", + "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", "isOptional": false, "defaultValue": null } @@ -300,8 +485,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.TenantManagement.TenantCreateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", + "type": "Volo.Abp.Account.SendPasswordResetCodeDto", + "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -310,55 +495,35 @@ } ], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" + "implementFrom": "Volo.Abp.Account.IAccountAppService" }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/multi-tenancy/tenants/{id}", + "VerifyPasswordResetTokenAsyncByInput": { + "uniqueName": "VerifyPasswordResetTokenAsyncByInput", + "name": "VerifyPasswordResetTokenAsync", + "httpMethod": "POST", + "url": "api/account/verify-password-reset-token", "supportedVersions": [], "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, { "name": "input", - "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", - "type": "Volo.Abp.TenantManagement.TenantUpdateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeAsString": "Volo.Abp.Account.VerifyPasswordResetTokenInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", "isOptional": false, "defaultValue": null } ], "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, { "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.TenantManagement.TenantUpdateDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", + "type": "Volo.Abp.Account.VerifyPasswordResetTokenInput", + "typeSimple": "Volo.Abp.Account.VerifyPasswordResetTokenInput", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -367,39 +532,39 @@ } ], "returnValue": { - "type": "Volo.Abp.TenantManagement.TenantDto", - "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + "type": "System.Boolean", + "typeSimple": "boolean" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" + "implementFrom": "Volo.Abp.Account.IAccountAppService" }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/multi-tenancy/tenants/{id}", + "ResetPasswordAsyncByInput": { + "uniqueName": "ResetPasswordAsyncByInput", + "name": "ResetPasswordAsync", + "httpMethod": "POST", + "url": "api/account/reset-password", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ResetPasswordDto", + "typeSimple": "Volo.Abp.Account.ResetPasswordDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", + "type": "Volo.Abp.Account.ResetPasswordDto", + "typeSimple": "Volo.Abp.Account.ResetPasswordDto", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "Body", "descriptorName": "" } ], @@ -408,92 +573,188 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" - }, - "GetDefaultConnectionStringAsyncById": { - "uniqueName": "GetDefaultConnectionStringAsyncById", - "name": "GetDefaultConnectionStringAsync", + "implementFrom": "Volo.Abp.Account.IAccountAppService" + } + } + }, + "Volo.Abp.Account.DynamicClaimsController": { + "controllerName": "DynamicClaims", + "controllerGroupName": "DynamicClaims", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.Account.DynamicClaimsController", + "interfaces": [ + { + "type": "Volo.Abp.Account.IDynamicClaimsAppService", + "name": "IDynamicClaimsAppService", + "methods": [ + { + "name": "RefreshAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "RefreshAsync": { + "uniqueName": "RefreshAsync", + "name": "RefreshAsync", + "httpMethod": "POST", + "url": "api/account/dynamic-claims/refresh", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IDynamicClaimsAppService" + } + } + }, + "Volo.Abp.Account.ProfileController": { + "controllerName": "Profile", + "controllerGroupName": "Profile", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.Account.ProfileController", + "interfaces": [ + { + "type": "Volo.Abp.Account.IProfileAppService", + "name": "IProfileAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + } + }, + { + "name": "ChangePasswordAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsync": { + "uniqueName": "GetAsync", + "name": "GetAsync", "httpMethod": "GET", - "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "url": "api/account/my-profile", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" + }, + "UpdateAsyncByInput": { + "uniqueName": "UpdateAsyncByInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/account/my-profile", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "Body", "descriptorName": "" } ], "returnValue": { - "type": "System.String", - "typeSimple": "string" + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + "implementFrom": "Volo.Abp.Account.IProfileAppService" }, - "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString": { - "uniqueName": "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString", - "name": "UpdateDefaultConnectionStringAsync", - "httpMethod": "PUT", - "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "ChangePasswordAsyncByInput": { + "uniqueName": "ChangePasswordAsyncByInput", + "name": "ChangePasswordAsync", + "httpMethod": "POST", + "url": "api/account/my-profile/change-password", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "defaultConnectionString", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "defaultConnectionString", - "name": "defaultConnectionString", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "bindingSourceId": "Body", "descriptorName": "" } ], @@ -502,179 +763,16 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" - }, - "DeleteDefaultConnectionStringAsyncById": { - "uniqueName": "DeleteDefaultConnectionStringAsyncById", - "name": "DeleteDefaultConnectionStringAsync", - "httpMethod": "DELETE", - "url": "api/multi-tenancy/tenants/{id}/default-connection-string", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" - } - } - } - } - }, - "account": { - "rootPath": "account", - "remoteServiceName": "AbpAccount", - "controllers": { - "Volo.Abp.Account.AccountController": { - "controllerName": "Account", - "controllerGroupName": "Account", - "type": "Volo.Abp.Account.AccountController", - "interfaces": [ - { - "type": "Volo.Abp.Account.IAccountAppService" - } - ], - "actions": { - "RegisterAsyncByInput": { - "uniqueName": "RegisterAsyncByInput", - "name": "RegisterAsync", - "httpMethod": "POST", - "url": "api/account/register", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.RegisterDto", - "typeSimple": "Volo.Abp.Account.RegisterDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Account.RegisterDto", - "typeSimple": "Volo.Abp.Account.RegisterDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IAccountAppService" - }, - "SendPasswordResetCodeAsyncByInput": { - "uniqueName": "SendPasswordResetCodeAsyncByInput", - "name": "SendPasswordResetCodeAsync", - "httpMethod": "POST", - "url": "api/account/send-password-reset-code", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.SendPasswordResetCodeDto", - "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Account.SendPasswordResetCodeDto", - "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IAccountAppService" - }, - "ResetPasswordAsyncByInput": { - "uniqueName": "ResetPasswordAsyncByInput", - "name": "ResetPasswordAsync", - "httpMethod": "POST", - "url": "api/account/reset-password", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", - "type": "Volo.Abp.Account.ResetPasswordDto", - "typeSimple": "Volo.Abp.Account.ResetPasswordDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Account.ResetPasswordDto", - "typeSimple": "Volo.Abp.Account.ResetPasswordDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Account.IAccountAppService" + "implementFrom": "Volo.Abp.Account.IProfileAppService" } } }, "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController": { "controllerName": "Account", "controllerGroupName": "Login", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController", "interfaces": [], "actions": { @@ -771,87 +869,106 @@ } } }, - "settingManagement": { - "rootPath": "settingManagement", - "remoteServiceName": "SettingManagement", + "featureManagement": { + "rootPath": "featureManagement", + "remoteServiceName": "AbpFeatureManagement", "controllers": { - "Volo.Abp.SettingManagement.EmailSettingsController": { - "controllerName": "EmailSettings", - "controllerGroupName": "EmailSettings", - "type": "Volo.Abp.SettingManagement.EmailSettingsController", + "Volo.Abp.FeatureManagement.FeaturesController": { + "controllerName": "Features", + "controllerGroupName": "Features", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.FeatureManagement.FeaturesController", "interfaces": [ { - "type": "Volo.Abp.SettingManagement.IEmailSettingsAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/setting-management/emailing", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.SettingManagement.EmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" - }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "POST", - "url": "api/setting-management/emailing", - "supportedVersions": [], - "parametersOnMethod": [ + "type": "Volo.Abp.FeatureManagement.IFeatureAppService", + "name": "IFeatureAppService", + "methods": [ { - "name": "input", - "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", - "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", + "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" + } + }, { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" - } - } - } - } - }, - "permissionManagement": { - "rootPath": "permissionManagement", - "remoteServiceName": "AbpPermissionManagement", - "controllers": { - "Volo.Abp.PermissionManagement.PermissionsController": { - "controllerName": "Permissions", - "controllerGroupName": "Permissions", - "type": "Volo.Abp.PermissionManagement.PermissionsController", - "interfaces": [ - { - "type": "Volo.Abp.PermissionManagement.IPermissionAppService" + ] } ], "actions": { @@ -859,7 +976,7 @@ "uniqueName": "GetAsyncByProviderNameAndProviderKey", "name": "GetAsync", "httpMethod": "GET", - "url": "api/permission-management/permissions", + "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ { @@ -906,17 +1023,17 @@ } ], "returnValue": { - "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", - "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", + "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" }, "UpdateAsyncByProviderNameAndProviderKeyAndInput": { "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", "name": "UpdateAsync", "httpMethod": "PUT", - "url": "api/permission-management/permissions", + "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ { @@ -937,9 +1054,9 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", "isOptional": false, "defaultValue": null } @@ -973,8 +1090,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -987,171 +1104,64 @@ "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" - } - } - } - } - }, - "abp": { - "rootPath": "abp", - "remoteServiceName": "abp", - "controllers": { - "Pages.Abp.MultiTenancy.AbpTenantController": { - "controllerName": "AbpTenant", - "controllerGroupName": "AbpTenant", - "type": "Pages.Abp.MultiTenancy.AbpTenantController", - "interfaces": [ - { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" - } - ], - "actions": { - "FindTenantByNameAsyncByName": { - "uniqueName": "FindTenantByNameAsyncByName", - "name": "FindTenantByNameAsync", - "httpMethod": "GET", - "url": "api/abp/multi-tenancy/tenants/by-name/{name}", + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" + }, + "DeleteAsyncByProviderNameAndProviderKey": { + "uniqueName": "DeleteAsyncByProviderNameAndProviderKey", + "name": "DeleteAsync", + "httpMethod": "DELETE", + "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ { - "name": "name", + "name": "providerName", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null - } - ], - "parameters": [ + }, { - "nameOnMethod": "name", - "name": "name", - "jsonName": null, + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" - }, - "FindTenantByIdAsyncById": { - "uniqueName": "FindTenantByIdAsyncById", - "name": "FindTenantByIdAsync", - "httpMethod": "GET", - "url": "api/abp/multi-tenancy/tenants/by-id/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "ModelBinding", "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { - "controllerName": "AbpApplicationConfiguration", - "controllerGroupName": "AbpApplicationConfiguration", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController", - "interfaces": [ - { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/abp/application-configuration", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { - "controllerName": "AbpApiDefinition", - "controllerGroupName": "AbpApiDefinition", - "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController", - "interfaces": [], - "actions": { - "GetByModel": { - "uniqueName": "GetByModel", - "name": "Get", - "httpMethod": "GET", - "url": "api/abp/api-definition", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "model", - "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http", - "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", - "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ + }, { - "nameOnMethod": "model", - "name": "IncludeTypes", + "nameOnMethod": "providerKey", + "name": "providerKey", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "model" + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel", - "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" } } } @@ -1164,10 +1174,117 @@ "Volo.Abp.Identity.IdentityRoleController": { "controllerName": "IdentityRole", "controllerGroupName": "Role", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, "type": "Volo.Abp.Identity.IdentityRoleController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityRoleAppService" + "type": "Volo.Abp.Identity.IIdentityRoleAppService", + "name": "IIdentityRoleAppService", + "methods": [ + { + "name": "GetAllListAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + } + }, + { + "name": "GetListAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityRolesInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + } + }, + { + "name": "CreateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { @@ -1250,6 +1367,18 @@ "constraintTypes": null, "bindingSourceId": "ModelBinding", "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "ExtraProperties", + "jsonName": null, + "type": "Volo.Abp.Data.ExtraPropertyDictionary", + "typeSimple": "{string:object}", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { @@ -1432,10 +1561,193 @@ "Volo.Abp.Identity.IdentityUserController": { "controllerName": "IdentityUser", "controllerGroupName": "User", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, "type": "Volo.Abp.Identity.IdentityUserController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityUserAppService" + "type": "Volo.Abp.Identity.IIdentityUserAppService", + "name": "IIdentityUserAppService", + "methods": [ + { + "name": "GetRolesAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "GetAssignableRolesAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "UpdateRolesAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "FindByUsernameAsync", + "parametersOnMethod": [ + { + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "FindByEmailAsync", + "parametersOnMethod": [ + { + "name": "email", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "GetListAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + } + }, + { + "name": "CreateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] } ], "actions": { @@ -1540,6 +1852,18 @@ "constraintTypes": null, "bindingSourceId": "ModelBinding", "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "ExtraProperties", + "jsonName": null, + "type": "Volo.Abp.Data.ExtraPropertyDictionary", + "typeSimple": "{string:object}", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { @@ -1868,10 +2192,84 @@ "Volo.Abp.Identity.IdentityUserLookupController": { "controllerName": "IdentityUserLookup", "controllerGroupName": "UserLookup", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, "type": "Volo.Abp.Identity.IdentityUserLookupController", "interfaces": [ { - "type": "Volo.Abp.Identity.IIdentityUserLookupAppService" + "type": "Volo.Abp.Identity.IIdentityUserLookupAppService", + "name": "IIdentityUserLookupAppService", + "methods": [ + { + "name": "FindByIdAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" + } + }, + { + "name": "FindByUserNameAsync", + "parametersOnMethod": [ + { + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" + } + }, + { + "name": "SearchAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + }, + { + "name": "GetCountAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupCountInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Int64", + "typeSimple": "number" + } + } + ] } ], "actions": { @@ -2013,6 +2411,18 @@ "constraintTypes": null, "bindingSourceId": "ModelBinding", "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "ExtraProperties", + "jsonName": null, + "type": "Volo.Abp.Data.ExtraPropertyDictionary", + "typeSimple": "{string:object}", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { @@ -2060,44 +2470,303 @@ "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" } } - }, - "Volo.Abp.Identity.ProfileController": { - "controllerName": "Profile", - "controllerGroupName": "Profile", - "type": "Volo.Abp.Identity.ProfileController", + } + } + }, + "multi-tenancy": { + "rootPath": "multi-tenancy", + "remoteServiceName": "AbpTenantManagement", + "controllers": { + "Volo.Abp.TenantManagement.TenantController": { + "controllerName": "Tenant", + "controllerGroupName": "Tenant", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.TenantManagement.TenantController", "interfaces": [ { - "type": "Volo.Abp.Identity.IProfileAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/identity/my-profile", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Identity.ProfileDto", - "typeSimple": "Volo.Abp.Identity.ProfileDto" - }, + "type": "Volo.Abp.TenantManagement.ITenantAppService", + "name": "ITenantAppService", + "methods": [ + { + "name": "GetDefaultConnectionStringAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.String", + "typeSimple": "string" + } + }, + { + "name": "UpdateDefaultConnectionStringAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "defaultConnectionString", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "DeleteDefaultConnectionStringAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + } + }, + { + "name": "GetListAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + } + }, + { + "name": "CreateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + } + }, + { + "name": "DeleteAsync", + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/multi-tenancy/tenants/{id}", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IProfileAppService" + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/my-profile", + "GetListAsyncByInput": { + "uniqueName": "GetListAsyncByInput", + "name": "GetListAsync", + "httpMethod": "GET", + "url": "api/multi-tenancy/tenants", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "Filter", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "Sorting", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + }, + "CreateAsyncByInput": { + "uniqueName": "CreateAsyncByInput", + "name": "CreateAsync", + "httpMethod": "POST", + "url": "api/multi-tenancy/tenants", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Identity.UpdateProfileDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UpdateProfileDto", - "typeSimple": "Volo.Abp.Identity.UpdateProfileDto", + "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", "isOptional": false, "defaultValue": null } @@ -2107,8 +2776,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Identity.UpdateProfileDto", - "typeSimple": "Volo.Abp.Identity.UpdateProfileDto", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -2117,35 +2786,55 @@ } ], "returnValue": { - "type": "Volo.Abp.Identity.ProfileDto", - "typeSimple": "Volo.Abp.Identity.ProfileDto" + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IProfileAppService" + "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" }, - "ChangePasswordAsyncByInput": { - "uniqueName": "ChangePasswordAsyncByInput", - "name": "ChangePasswordAsync", - "httpMethod": "POST", - "url": "api/identity/my-profile/change-password", + "UpdateAsyncByIdAndInput": { + "uniqueName": "UpdateAsyncByIdAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/multi-tenancy/tenants/{id}", "supportedVersions": [], "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, { "name": "input", - "typeAsString": "Volo.Abp.Identity.ChangePasswordInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.ChangePasswordInput", - "typeSimple": "Volo.Abp.Identity.ChangePasswordInput", + "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", "isOptional": false, "defaultValue": null } ], "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + }, { "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Identity.ChangePasswordInput", - "typeSimple": "Volo.Abp.Identity.ChangePasswordInput", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -2153,259 +2842,2882 @@ "descriptorName": "" } ], + "returnValue": { + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" + }, + "DeleteAsyncById": { + "uniqueName": "DeleteAsyncById", + "name": "DeleteAsync", + "httpMethod": "DELETE", + "url": "api/multi-tenancy/tenants/{id}", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], "returnValue": { "type": "System.Void", "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IProfileAppService" - } - } + "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" + }, + "GetDefaultConnectionStringAsyncById": { + "uniqueName": "GetDefaultConnectionStringAsyncById", + "name": "GetDefaultConnectionStringAsync", + "httpMethod": "GET", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.String", + "typeSimple": "string" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + }, + "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString": { + "uniqueName": "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString", + "name": "UpdateDefaultConnectionStringAsync", + "httpMethod": "PUT", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "defaultConnectionString", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + }, + { + "nameOnMethod": "defaultConnectionString", + "name": "defaultConnectionString", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + }, + "DeleteDefaultConnectionStringAsyncById": { + "uniqueName": "DeleteDefaultConnectionStringAsyncById", + "name": "DeleteDefaultConnectionStringAsync", + "httpMethod": "DELETE", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + } + } + } + } + }, + "permissionManagement": { + "rootPath": "permissionManagement", + "remoteServiceName": "AbpPermissionManagement", + "controllers": { + "Volo.Abp.PermissionManagement.PermissionsController": { + "controllerName": "Permissions", + "controllerGroupName": "Permissions", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.PermissionManagement.PermissionsController", + "interfaces": [ + { + "type": "Volo.Abp.PermissionManagement.IPermissionAppService", + "name": "IPermissionAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + } + }, + { + "name": "GetByGroupAsync", + "parametersOnMethod": [ + { + "name": "groupName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "GetResourceProviderKeyLookupServicesAsync", + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetResourceProviderListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetResourceProviderListResultDto" + } + }, + { + "name": "SearchResourceProviderKeyAsync", + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "serviceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "filter", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "page", + "typeAsString": "System.Int32, System.Private.CoreLib", + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.SearchProviderKeyListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.SearchProviderKeyListResultDto" + } + }, + { + "name": "GetResourceDefinitionsAsync", + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetResourcePermissionDefinitionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetResourcePermissionDefinitionListResultDto" + } + }, + { + "name": "GetResourceAsync", + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "resourceKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetResourcePermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetResourcePermissionListResultDto" + } + }, + { + "name": "GetResourceByProviderAsync", + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "resourceKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetResourcePermissionWithProviderListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetResourcePermissionWithProviderListResultDto" + } + }, + { + "name": "UpdateResourceAsync", + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "resourceKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.UpdateResourcePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdateResourcePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdateResourcePermissionsDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "DeleteResourceAsync", + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "resourceKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsyncByProviderNameAndProviderKey": { + "uniqueName": "GetAsyncByProviderNameAndProviderKey", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/permission-management/permissions", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "GetByGroupAsyncByGroupNameAndProviderNameAndProviderKey": { + "uniqueName": "GetByGroupAsyncByGroupNameAndProviderNameAndProviderKey", + "name": "GetByGroupAsync", + "httpMethod": "GET", + "url": "api/permission-management/permissions/by-group", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "groupName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "groupName", + "name": "groupName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "UpdateAsyncByProviderNameAndProviderKeyAndInput": { + "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/permission-management/permissions", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "GetResourceProviderKeyLookupServicesAsyncByResourceName": { + "uniqueName": "GetResourceProviderKeyLookupServicesAsyncByResourceName", + "name": "GetResourceProviderKeyLookupServicesAsync", + "httpMethod": "GET", + "url": "api/permission-management/permissions/resource-provider-key-lookup-services", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "resourceName", + "name": "resourceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetResourceProviderListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetResourceProviderListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "SearchResourceProviderKeyAsyncByResourceNameAndServiceNameAndFilterAndPage": { + "uniqueName": "SearchResourceProviderKeyAsyncByResourceNameAndServiceNameAndFilterAndPage", + "name": "SearchResourceProviderKeyAsync", + "httpMethod": "GET", + "url": "api/permission-management/permissions/search-resource-provider-keys", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "serviceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "filter", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "page", + "typeAsString": "System.Int32, System.Private.CoreLib", + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "resourceName", + "name": "resourceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "serviceName", + "name": "serviceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "filter", + "name": "filter", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "page", + "name": "page", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.SearchProviderKeyListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.SearchProviderKeyListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "GetResourceDefinitionsAsyncByResourceName": { + "uniqueName": "GetResourceDefinitionsAsyncByResourceName", + "name": "GetResourceDefinitionsAsync", + "httpMethod": "GET", + "url": "api/permission-management/permissions/resource-definitions", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "resourceName", + "name": "resourceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetResourcePermissionDefinitionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetResourcePermissionDefinitionListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "GetResourceAsyncByResourceNameAndResourceKey": { + "uniqueName": "GetResourceAsyncByResourceNameAndResourceKey", + "name": "GetResourceAsync", + "httpMethod": "GET", + "url": "api/permission-management/permissions/resource", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "resourceKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "resourceName", + "name": "resourceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "resourceKey", + "name": "resourceKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetResourcePermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetResourcePermissionListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "GetResourceByProviderAsyncByResourceNameAndResourceKeyAndProviderNameAndProviderKey": { + "uniqueName": "GetResourceByProviderAsyncByResourceNameAndResourceKeyAndProviderNameAndProviderKey", + "name": "GetResourceByProviderAsync", + "httpMethod": "GET", + "url": "api/permission-management/permissions/resource/by-provider", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "resourceKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "resourceName", + "name": "resourceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "resourceKey", + "name": "resourceKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetResourcePermissionWithProviderListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetResourcePermissionWithProviderListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "UpdateResourceAsyncByResourceNameAndResourceKeyAndInput": { + "uniqueName": "UpdateResourceAsyncByResourceNameAndResourceKeyAndInput", + "name": "UpdateResourceAsync", + "httpMethod": "PUT", + "url": "api/permission-management/permissions/resource", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "resourceKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.UpdateResourcePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdateResourcePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdateResourcePermissionsDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "resourceName", + "name": "resourceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "resourceKey", + "name": "resourceKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.PermissionManagement.UpdateResourcePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdateResourcePermissionsDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "DeleteResourceAsyncByResourceNameAndResourceKeyAndProviderNameAndProviderKey": { + "uniqueName": "DeleteResourceAsyncByResourceNameAndResourceKeyAndProviderNameAndProviderKey", + "name": "DeleteResourceAsync", + "httpMethod": "DELETE", + "url": "api/permission-management/permissions/resource", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "resourceName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "resourceKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "resourceName", + "name": "resourceName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "resourceKey", + "name": "resourceKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + } + } + } + } + }, + "settingManagement": { + "rootPath": "settingManagement", + "remoteServiceName": "SettingManagement", + "controllers": { + "Volo.Abp.SettingManagement.EmailSettingsController": { + "controllerName": "EmailSettings", + "controllerGroupName": "EmailSettings", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.SettingManagement.EmailSettingsController", + "interfaces": [ + { + "type": "Volo.Abp.SettingManagement.IEmailSettingsAppService", + "name": "IEmailSettingsAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "Volo.Abp.SettingManagement.EmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + }, + { + "name": "SendTestEmailAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.SendTestEmailInput, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsync": { + "uniqueName": "GetAsync", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/setting-management/emailing", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.SettingManagement.EmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + }, + "UpdateAsyncByInput": { + "uniqueName": "UpdateAsyncByInput", + "name": "UpdateAsync", + "httpMethod": "POST", + "url": "api/setting-management/emailing", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + }, + "SendTestEmailAsyncByInput": { + "uniqueName": "SendTestEmailAsyncByInput", + "name": "SendTestEmailAsync", + "httpMethod": "POST", + "url": "api/setting-management/emailing/send-test-email", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.SendTestEmailInput, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + } + } + }, + "Volo.Abp.SettingManagement.TimeZoneSettingsController": { + "controllerName": "TimeZoneSettings", + "controllerGroupName": "TimeZoneSettings", + "isRemoteService": true, + "isIntegrationService": false, + "apiVersion": null, + "type": "Volo.Abp.SettingManagement.TimeZoneSettingsController", + "interfaces": [ + { + "type": "Volo.Abp.SettingManagement.ITimeZoneSettingsAppService", + "name": "ITimeZoneSettingsAppService", + "methods": [ + { + "name": "GetAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "System.String", + "typeSimple": "string" + } + }, + { + "name": "GetTimezonesAsync", + "parametersOnMethod": [], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.NameValue]" + } + }, + { + "name": "UpdateAsync", + "parametersOnMethod": [ + { + "name": "timezone", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + } + } + ] + } + ], + "actions": { + "GetAsync": { + "uniqueName": "GetAsync", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/setting-management/timezone", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.String", + "typeSimple": "string" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.ITimeZoneSettingsAppService" + }, + "GetTimezonesAsync": { + "uniqueName": "GetTimezonesAsync", + "name": "GetTimezonesAsync", + "httpMethod": "GET", + "url": "api/setting-management/timezone/timezones", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.NameValue]" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.ITimeZoneSettingsAppService" + }, + "UpdateAsyncByTimezone": { + "uniqueName": "UpdateAsyncByTimezone", + "name": "UpdateAsync", + "httpMethod": "POST", + "url": "api/setting-management/timezone", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "timezone", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "timezone", + "name": "timezone", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.ITimeZoneSettingsAppService" + } + } + } + } + } + }, + "types": { + "Volo.Abp.Account.ChangePasswordInput": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "CurrentPassword", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "NewPassword", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Account.ProfileDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Email", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Surname", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "PhoneNumber", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "IsExternal", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "HasPassword", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ConcurrencyStamp", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Account.RegisterDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "EmailAddress", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Password", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "AppName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Account.ResetPasswordDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserId", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ResetToken", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Password", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Account.SendPasswordResetCodeDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Email", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "AppName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ReturnUrl", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ReturnUrlHash", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Account.UpdateProfileDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Email", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Surname", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "PhoneNumber", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 16, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ConcurrencyStamp", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Account.VerifyPasswordResetTokenInput": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserId", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ResetToken", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Result", + "jsonName": null, + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType", + "typeSimple": "enum", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Description", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType": { + "baseType": "System.Enum", + "isEnum": true, + "enumNames": [ + "Success", + "InvalidUserNameOrPassword", + "NotAllowed", + "LockedOut", + "RequiresTwoFactor" + ], + "enumValues": [ + 1, + 2, + 3, + 4, + 5 + ], + "genericArguments": null, + "properties": null + }, + "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserNameOrEmailAddress", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 255, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Password", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 32, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "RememberMe", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ + { + "name": "LastModificationTime", + "jsonName": null, + "type": "System.DateTime?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "LastModifierId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ + { + "name": "CreationTime", + "jsonName": null, + "type": "System.DateTime", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "CreatorId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleEntityDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [] + }, + "Volo.Abp.Application.Dtos.ExtensibleEntityDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TKey" + ], + "properties": [ + { + "name": "Id", + "jsonName": null, + "type": "TKey", + "typeSimple": "TKey", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ + { + "name": "IsDeleted", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "DeleterId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "DeletionTime", + "jsonName": null, + "type": "System.DateTime?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleLimitedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "1", + "maximum": "2147483647", + "regex": null, + "isNullable": false } - } - } - }, - "types": { - "Volo.Abp.Account.RegisterDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + ] + }, + "Volo.Abp.Application.Dtos.ExtensiblePagedAndSortedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensiblePagedResultRequestDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "UserName", + "name": "Sorting", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true - }, + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensiblePagedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleLimitedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "EmailAddress", + "name": "SkipCount", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "0", + "maximum": "2147483647", + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Application.Dtos.LimitedResultRequestDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Password", + "name": "MaxResultCount", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "1", + "maximum": "2147483647", + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Application.Dtos.ListResultDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], + "properties": [ { - "name": "AppName", + "name": "Items", + "jsonName": null, + "type": "[T]", + "typeSimple": "[T]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Sorting", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.ObjectExtending.ExtensibleObject": { + "Volo.Abp.Application.Dtos.PagedResultDto": { + "baseType": "Volo.Abp.Application.Dtos.ListResultDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], + "properties": [ + { + "name": "TotalCount", + "jsonName": null, + "type": "System.Int64", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Application.Dtos.PagedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "0", + "maximum": "2147483647", + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "GrantedPolicies", + "jsonName": null, + "type": "{System.String:System.Boolean}", + "typeSimple": "{string:boolean}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto": { "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ + { + "name": "Localization", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Auth", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Setting", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "CurrentUser", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Features", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "GlobalFeatures", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "MultiTenancy", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "CurrentTenant", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Timing", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Clock", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ObjectExtensions", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, { "name": "ExtraProperties", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Identity.IdentityUserDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationRequestOptions": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "TenantId", + "name": "IncludeLocalizationResources", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "UserName", + "name": "Values", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Name", + "name": "EnabledFeatures", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Values", + "jsonName": null, + "type": "{System.String:System.Collections.Generic.Dictionary}", + "typeSimple": "{string:System.Collections.Generic.Dictionary}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Surname", + "name": "Resources", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Email", + "name": "Languages", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[Volo.Abp.Localization.LanguageInfo]", + "typeSimple": "[Volo.Abp.Localization.LanguageInfo]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "EmailConfirmed", + "name": "CurrentCulture", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "PhoneNumber", + "name": "DefaultResourceName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "PhoneNumberConfirmed", + "name": "LanguagesMap", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "{System.String:[Volo.Abp.NameValue]}", + "typeSimple": "{string:[Volo.Abp.NameValue]}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "LockoutEnabled", + "name": "LanguageFilesMap", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, + "type": "{System.String:[Volo.Abp.NameValue]}", + "typeSimple": "{string:[Volo.Abp.NameValue]}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "LockoutEnd", + "name": "Resources", "jsonName": null, - "type": "System.DateTimeOffset?", - "typeSimple": "string?", - "isRequired": false + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ConcurrencyStamp", + "name": "CurrentCulture", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], + "genericArguments": null, "properties": [ { - "name": "IsDeleted", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "DeleterId", + "name": "CultureName", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "DeletionTime", + "name": "OnlyDynamics", "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationResourceDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], + "genericArguments": null, "properties": [ { - "name": "LastModificationTime", + "name": "Texts", "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "LastModifierId", + "name": "BaseResources", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], + "genericArguments": null, "properties": [ { - "name": "CreationTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreatorId", + "name": "Values", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "{System.String:System.String}", + "typeSimple": "{string:string}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Application.Dtos.ExtensibleEntityDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": [ - "TKey" - ], + "genericArguments": null, "properties": [ { - "name": "Id", + "name": "Kind", "jsonName": null, - "type": "TKey", - "typeSimple": "TKey", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Account.SendPasswordResetCodeDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -2413,66 +5725,125 @@ "genericArguments": null, "properties": [ { - "name": "Email", + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "AppName", + "name": "EnglishName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ReturnUrl", + "name": "ThreeLetterIsoLanguageName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ReturnUrlHash", + "name": "TwoLetterIsoLanguageName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.ResetPasswordDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, { - "name": "UserId", + "name": "IsRightToLeft", "jsonName": null, - "type": "System.Guid", + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "CultureName", + "jsonName": null, + "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ResetToken", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Password", + "name": "NativeName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "DateTimeFormat", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -2480,219 +5851,338 @@ "genericArguments": null, "properties": [ { - "name": "UserNameOrEmailAddress", + "name": "IsAuthenticated", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Id", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "TenantId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "ImpersonatorUserId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "ImpersonatorTenantId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "ImpersonatorUserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "Password", + "name": "ImpersonatorTenantName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "RememberMe", + "name": "UserName", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, { - "name": "Result", + "name": "Name", "jsonName": null, - "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType", - "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "Description", + "name": "SurName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "Success", - "InvalidUserNameOrPassword", - "NotAllowed", - "LockedOut", - "RequiresTwoFactor" - ], - "enumValues": [ - 1, - 2, - 3, - 4, - 5 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, { - "name": "Success", + "name": "Email", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "TenantId", + "name": "EmailVerified", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Name", + "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "IsActive", + "name": "PhoneNumberVerified", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.ListResultDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "T" - ], - "properties": [ + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, { - "name": "Items", + "name": "Roles", "jsonName": null, - "type": "[T]", - "typeSimple": "[T]", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "SessionId", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.Identity.IdentityRoleDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Name", + "name": "CalendarAlgorithmType", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "IsDefault", + "name": "DateTimeFormatLong", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "IsStatic", + "name": "ShortDatePattern", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "IsPublic", + "name": "FullDateTimePattern", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ConcurrencyStamp", + "name": "DateSeparator", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.GetIdentityRolesInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, { - "name": "Filter", + "name": "ShortTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": { - "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, { - "name": "Sorting", + "name": "LongTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Application.Dtos.PagedResultRequestDto": { - "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "SkipCount", + "name": "TimeZoneName", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.Application.Dtos.LimitedResultRequestDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -2700,56 +6190,70 @@ "genericArguments": null, "properties": [ { - "name": "DefaultMaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "MaxMaxResultCount", + "name": "Properties", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "MaxResultCount", + "name": "Configuration", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Application.Dtos.PagedResultDto": { - "baseType": "Volo.Abp.Application.Dtos.ListResultDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": [ - "T" - ], + "genericArguments": null, "properties": [ { - "name": "TotalCount", + "name": "Fields", "jsonName": null, - "type": "System.Int64", - "typeSimple": "number", - "isRequired": false + "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", + "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "LocalizationResource", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.Identity.IdentityRoleCreateDto": { - "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, @@ -2760,154 +6264,144 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true - }, - { - "name": "IsDefault", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "IsPublic", + "name": "Value", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.Object", + "typeSimple": "object", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.Identity.IdentityRoleUpdateDto": { - "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "ConcurrencyStamp", + "name": "IsAvailable", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Identity.GetIdentityUsersInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Filter", + "name": "OnGet", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityUserCreateDto": { - "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, { - "name": "Password", + "name": "OnCreate", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "OnUpdate", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Surname", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "PhoneNumber", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LockoutEnabled", + "name": "IsAvailable", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RoleNames", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Identity.IdentityUserUpdateDto": { - "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Password", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ConcurrencyStamp", + "name": "IsAvailable", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Identity.IdentityUserUpdateRolesDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -2915,15 +6409,34 @@ "genericArguments": null, "properties": [ { - "name": "RoleNames", + "name": "TypeSimple", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Config", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": true + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Users.UserData": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -2931,87 +6444,160 @@ "genericArguments": null, "properties": [ { - "name": "Id", + "name": "Type", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "TenantId", + "name": "TypeSimple", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "UserName", + "name": "DisplayName", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "Name", + "name": "Api", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Surname", + "name": "Ui", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Email", + "name": "Policy", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyPolicyDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyPolicyDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "EmailConfirmed", + "name": "Attributes", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", + "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "PhoneNumber", + "name": "Configuration", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "PhoneNumberConfirmed", + "name": "DefaultValue", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.Object", + "typeSimple": "object", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.Identity.UserLookupSearchInputDto": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyFeaturePolicyDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Filter", + "name": "Features", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "RequiresAll", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Identity.UserLookupCountInputDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyGlobalFeaturePolicyDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3019,131 +6605,274 @@ "genericArguments": null, "properties": [ { - "name": "Filter", + "name": "Features", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "RequiresAll", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Identity.ProfileDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyPermissionPolicyDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "UserName", + "name": "PermissionNames", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Email", + "name": "RequiresAll", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyPolicyDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Name", + "name": "GlobalFeatures", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyGlobalFeaturePolicyDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyGlobalFeaturePolicyDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Surname", + "name": "Features", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyFeaturePolicyDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyFeaturePolicyDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "PhoneNumber", + "name": "Permissions", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyPermissionPolicyDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyPermissionPolicyDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "OnTable", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "IsExternal", + "name": "OnCreateForm", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "HasPassword", + "name": "OnEditForm", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ConcurrencyStamp", + "name": "Lookup", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Identity.UpdateProfileDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "UserName", + "name": "IsVisible", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Email", + "name": "Url", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Name", + "name": "ResultListPropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Surname", + "name": "DisplayPropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "PhoneNumber", + "name": "ValuePropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ConcurrencyStamp", + "name": "FilterParamName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Identity.ChangePasswordInput": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3151,22 +6880,21 @@ "genericArguments": null, "properties": [ { - "name": "CurrentPassword", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "NewPassword", + "name": "IsVisible", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.PermissionManagement.GetPermissionListResultDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3174,22 +6902,34 @@ "genericArguments": null, "properties": [ { - "name": "EntityDisplayName", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Groups", + "name": "Resource", "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.PermissionManagement.PermissionGroupDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3197,29 +6937,34 @@ "genericArguments": null, "properties": [ { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", + "name": "Entities", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Permissions", + "name": "Configuration", "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", - "isRequired": false + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.PermissionManagement.PermissionGrantInfoDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3227,50 +6972,34 @@ "genericArguments": null, "properties": [ { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ParentName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsGranted", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AllowedProviders", + "name": "Modules", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "GrantedProviders", + "name": "Enums", "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", - "isRequired": false + "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", + "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.PermissionManagement.ProviderInfoDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3278,22 +7007,34 @@ "genericArguments": null, "properties": [ { - "name": "ProviderName", + "name": "Iana", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ProviderKey", + "name": "Windows", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.PermissionManagement.UpdatePermissionsDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3301,38 +7042,91 @@ "genericArguments": null, "properties": [ { - "name": "Permissions", + "name": "TimeZone", "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", - "isRequired": false + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.PermissionManagement.UpdatePermissionDto": { + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone": { "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ + { + "name": "TimeZoneId", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Id", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "IsGranted", + "name": "IsAvailable", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.SettingManagement.EmailSettingsDto": { + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3340,71 +7134,95 @@ "genericArguments": null, "properties": [ { - "name": "SmtpHost", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SmtpPort", + "name": "Success", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "SmtpUserName", + "name": "TenantId", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "SmtpPassword", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "SmtpDomain", + "name": "NormalizedName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "SmtpEnableSsl", + "name": "IsActive", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false - }, + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "SmtpUseDefaultCredentials", + "name": "IsEnabled", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "DefaultFromAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DefaultFromDisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.SettingManagement.UpdateEmailSettingsDto": { + "Volo.Abp.FeatureManagement.FeatureDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3412,72 +7230,161 @@ "genericArguments": null, "properties": [ { - "name": "SmtpHost", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "SmtpPort", + "name": "DisplayName", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "SmtpUserName", + "name": "Value", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "SmtpPassword", + "name": "Provider", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "Volo.Abp.FeatureManagement.FeatureProviderDto", + "typeSimple": "Volo.Abp.FeatureManagement.FeatureProviderDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "SmtpDomain", + "name": "Description", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "SmtpEnableSsl", + "name": "ValueType", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "Volo.Abp.Validation.StringValues.IStringValueType", + "typeSimple": "Volo.Abp.Validation.StringValues.IStringValueType", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "SmtpUseDefaultCredentials", + "name": "Depth", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "DefaultFromAddress", + "name": "ParentName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.FeatureManagement.FeatureGroupDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "DefaultFromDisplayName", + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Features", + "jsonName": null, + "type": "[Volo.Abp.FeatureManagement.FeatureDto]", + "typeSimple": "[Volo.Abp.FeatureManagement.FeatureDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.TenantManagement.TenantDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "Volo.Abp.FeatureManagement.FeatureProviderDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, @@ -3488,89 +7395,248 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ConcurrencyStamp", + "name": "Key", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.TenantManagement.GetTenantsInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "Volo.Abp.FeatureManagement.GetFeatureListResultDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Filter", + "name": "Groups", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", + "typeSimple": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.TenantManagement.TenantCreateDto": { - "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase", + "Volo.Abp.FeatureManagement.UpdateFeatureDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "AdminEmailAddress", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "AdminPassword", + "name": "Value", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.FeatureManagement.UpdateFeaturesDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Name", + "name": "Features", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true + "type": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", + "typeSimple": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.TenantManagement.TenantUpdateDto": { - "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase", + "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "ConcurrencyStamp", + "name": "UniqueName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "HttpMethod", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "Url", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "SupportedVersions", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "ParametersOnMethod", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Parameters", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ReturnValue", + "jsonName": null, + "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "AllowAnonymous", + "jsonName": null, + "type": "System.Boolean?", + "typeSimple": "boolean?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "ImplementFrom", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.FeatureManagement.GetFeatureListResultDto": { + "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3578,15 +7644,34 @@ "genericArguments": null, "properties": [ { - "name": "Groups", + "name": "Modules", "jsonName": null, - "type": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", - "typeSimple": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", - "isRequired": false + "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Types", + "jsonName": null, + "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.FeatureManagement.FeatureGroupDto": { + "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3594,29 +7679,21 @@ "genericArguments": null, "properties": [ { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Features", + "name": "IncludeTypes", "jsonName": null, - "type": "[Volo.Abp.FeatureManagement.FeatureDto]", - "typeSimple": "[Volo.Abp.FeatureManagement.FeatureDto]", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.FeatureManagement.FeatureDto": { + "Volo.Abp.Http.Modeling.ControllerApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3624,64 +7701,112 @@ "genericArguments": null, "properties": [ { - "name": "Name", + "name": "ControllerName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "DisplayName", + "name": "ControllerGroupName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "Value", + "name": "IsRemoteService", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Provider", + "name": "IsIntegrationService", "jsonName": null, - "type": "Volo.Abp.FeatureManagement.FeatureProviderDto", - "typeSimple": "Volo.Abp.FeatureManagement.FeatureProviderDto", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Description", + "name": "ApiVersion", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "ValueType", + "name": "Type", "jsonName": null, - "type": "Volo.Abp.Validation.StringValues.IStringValueType", - "typeSimple": "Volo.Abp.Validation.StringValues.IStringValueType", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Depth", + "name": "Interfaces", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false + "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ParentName", + "name": "Actions", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.FeatureManagement.FeatureProviderDto": { + "Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3689,22 +7814,47 @@ "genericArguments": null, "properties": [ { - "name": "Name", + "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Key", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Methods", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Validation.StringValues.IStringValueType": { + "Volo.Abp.Http.Modeling.InterfaceMethodApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3716,32 +7866,43 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, - { - "name": "Item", - "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Properties", + "name": "ParametersOnMethod", "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false + "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Validator", + "name": "ReturnValue", "jsonName": null, - "type": "Volo.Abp.Validation.StringValues.IValueValidator", - "typeSimple": "Volo.Abp.Validation.StringValues.IValueValidator", - "isRequired": false + "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Validation.StringValues.IValueValidator": { + "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3753,64 +7914,82 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Item", + "name": "TypeAsString", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Properties", - "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false - } - ] - }, - "Volo.Abp.FeatureManagement.UpdateFeaturesDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Features", - "jsonName": null, - "type": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", - "typeSimple": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.FeatureManagement.UpdateFeatureDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", + "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Value", + "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "IsOptional", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "DefaultValue", + "jsonName": null, + "type": "System.Object", + "typeSimple": "object", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto": { + "Volo.Abp.Http.Modeling.ModuleApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3818,78 +7997,47 @@ "genericArguments": null, "properties": [ { - "name": "Localization", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", - "isRequired": false - }, - { - "name": "Auth", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", - "isRequired": false - }, - { - "name": "Setting", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", - "isRequired": false - }, - { - "name": "CurrentUser", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", - "isRequired": false - }, - { - "name": "Features", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", - "isRequired": false - }, - { - "name": "MultiTenancy", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", - "isRequired": false - }, - { - "name": "CurrentTenant", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", - "isRequired": false - }, - { - "name": "Timing", + "name": "RootPath", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Clock", + "name": "RemoteServiceName", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ObjectExtensions", + "name": "Controllers", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", - "isRequired": false + "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", + "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto": { + "Volo.Abp.Http.Modeling.ParameterApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3897,87 +8045,138 @@ "genericArguments": null, "properties": [ { - "name": "Values", + "name": "NameOnMethod", "jsonName": null, - "type": "{System.String:System.Collections.Generic.Dictionary}", - "typeSimple": "{string:System.Collections.Generic.Dictionary}", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Languages", + "name": "Name", "jsonName": null, - "type": "[Volo.Abp.Localization.LanguageInfo]", - "typeSimple": "[Volo.Abp.Localization.LanguageInfo]", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "CurrentCulture", + "name": "JsonName", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "DefaultResourceName", + "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "LanguagesMap", + "name": "TypeSimple", "jsonName": null, - "type": "{System.String:[Volo.Abp.NameValue]}", - "typeSimple": "{string:[Volo.Abp.NameValue]}", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "LanguageFilesMap", + "name": "IsOptional", "jsonName": null, - "type": "{System.String:[Volo.Abp.NameValue]}", - "typeSimple": "{string:[Volo.Abp.NameValue]}", - "isRequired": false - } - ] - }, - "Volo.Abp.Localization.LanguageInfo": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, { - "name": "CultureName", + "name": "DefaultValue", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Object", + "typeSimple": "object", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "UiCultureName", + "name": "ConstraintTypes", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "DisplayName", + "name": "BindingSourceId", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "FlagIcon", + "name": "DescriptorName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto": { + "Volo.Abp.Http.Modeling.PropertyApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -3985,71 +8184,151 @@ "genericArguments": null, "properties": [ { - "name": "DisplayName", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "EnglishName", + "name": "JsonName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "ThreeLetterIsoLanguageName", + "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "TwoLetterIsoLanguageName", + "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "IsRightToLeft", + "name": "IsRequired", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "CultureName", + "name": "MinLength", + "jsonName": null, + "type": "System.Int32?", + "typeSimple": "number?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "MaxLength", + "jsonName": null, + "type": "System.Int32?", + "typeSimple": "number?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "Minimum", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "Name", + "name": "Maximum", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "NativeName", + "name": "Regex", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "DateTimeFormat", + "name": "IsNullable", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto": { + "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4057,330 +8336,704 @@ "genericArguments": null, "properties": [ { - "name": "CalendarAlgorithmType", + "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "DateTimeFormatLong", + "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Http.Modeling.TypeApiDescriptionModel": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "ShortDatePattern", + "name": "BaseType", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "FullDateTimePattern", + "name": "IsEnum", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "DateSeparator", + "name": "EnumNames", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "ShortTimePattern", + "name": "EnumValues", + "jsonName": null, + "type": "[System.Object]", + "typeSimple": "[object]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "GenericArguments", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + }, + { + "name": "Properties", + "jsonName": null, + "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", + "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true + } + ] + }, + "Volo.Abp.Identity.GetIdentityRolesInput": { + "baseType": "Volo.Abp.Application.Dtos.ExtensiblePagedAndSortedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Filter", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Identity.GetIdentityUsersInput": { + "baseType": "Volo.Abp.Application.Dtos.ExtensiblePagedAndSortedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "LongTimePattern", + "name": "Filter", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.NameValue": { - "baseType": "Volo.Abp.NameValue", + "Volo.Abp.Identity.IdentityRoleCreateDto": { + "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [] }, - "Volo.Abp.NameValue": { - "baseType": null, + "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": [ - "T" - ], + "genericArguments": null, "properties": [ { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Value", + "name": "IsDefault", "jsonName": null, - "type": "T", - "typeSimple": "T", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "IsPublic", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityRoleDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Policies", + "name": "Name", "jsonName": null, - "type": "{System.String:System.Boolean}", - "typeSimple": "{string:boolean}", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "GrantedPolicies", + "name": "IsDefault", "jsonName": null, - "type": "{System.String:System.Boolean}", - "typeSimple": "{string:boolean}", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "IsStatic", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "IsPublic", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ConcurrencyStamp", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "CreationTime", + "jsonName": null, + "type": "System.DateTime", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityRoleUpdateDto": { + "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Values", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "{System.String:System.String}", - "typeSimple": "{string:string}", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityUserCreateDto": { + "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "IsAuthenticated", + "name": "Password", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Id", + "name": "Name", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "TenantId", + "name": "Surname", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ImpersonatorUserId", + "name": "Email", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "PhoneNumber", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 16, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "IsActive", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "LockoutEnabled", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ImpersonatorTenantId", + "name": "RoleNames", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.Identity.IdentityUserDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "TenantId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "SurName", + "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "EmailVerified", + "name": "EmailConfirmed", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "PhoneNumberVerified", + "name": "PhoneNumberConfirmed", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Roles", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Values", + "name": "IsActive", "jsonName": null, - "type": "{System.String:System.String}", - "typeSimple": "{string:string}", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, { - "name": "IsEnabled", + "name": "LockoutEnabled", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, { - "name": "Id", + "name": "AccessFailedCount", "jsonName": null, - "type": "System.Guid?", + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "LockoutEnd", + "jsonName": null, + "type": "System.DateTimeOffset?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "Name", + "name": "ConcurrencyStamp", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "IsAvailable", + "name": "EntityVersion", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, { - "name": "TimeZone", + "name": "LastPasswordChangeTime", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", - "isRequired": false + "type": "System.DateTimeOffset?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone": { - "baseType": null, + "Volo.Abp.Identity.IdentityUserUpdateDto": { + "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Iana", + "name": "Password", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Windows", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone": { + "Volo.Abp.Identity.IdentityUserUpdateRolesDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4388,15 +9041,21 @@ "genericArguments": null, "properties": [ { - "name": "TimeZoneName", + "name": "RoleNames", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone": { + "Volo.Abp.Identity.UserLookupCountInputDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4404,31 +9063,43 @@ "genericArguments": null, "properties": [ { - "name": "TimeZoneId", + "name": "Filter", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto": { - "baseType": null, + "Volo.Abp.Identity.UserLookupSearchInputDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensiblePagedAndSortedResultRequestDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Kind", + "name": "Filter", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto": { + "Volo.Abp.Localization.LanguageInfo": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4436,45 +9107,105 @@ "genericArguments": null, "properties": [ { - "name": "Modules", + "name": "CultureName", "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Enums", + "name": "UiCultureName", "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "DisplayName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "TwoLetterISOLanguageName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto": { - "baseType": null, + "Volo.Abp.NameValue": { + "baseType": "Volo.Abp.NameValue", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, + "properties": [] + }, + "Volo.Abp.NameValue": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], "properties": [ { - "name": "Entities", + "name": "Name", "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Configuration", + "name": "Value", "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false + "type": "T", + "typeSimple": "T", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto": { + "Volo.Abp.ObjectExtending.ExtensibleObject": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4482,22 +9213,21 @@ "genericArguments": null, "properties": [ { - "name": "Properties", - "jsonName": null, - "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", - "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", - "isRequired": false - }, - { - "name": "Configuration", + "name": "ExtraProperties", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto": { + "Volo.Abp.PermissionManagement.GetPermissionListResultDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4505,64 +9235,34 @@ "genericArguments": null, "properties": [ { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TypeSimple", + "name": "EntityDisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", - "isRequired": false - }, - { - "name": "Api", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", - "isRequired": false - }, - { - "name": "Ui", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", - "isRequired": false - }, - { - "name": "Attributes", - "jsonName": null, - "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", - "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", - "isRequired": false - }, - { - "name": "Configuration", - "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "DefaultValue", + "name": "Groups", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false + "type": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto": { + "Volo.Abp.PermissionManagement.GetResourcePermissionDefinitionListResultDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4570,22 +9270,21 @@ "genericArguments": null, "properties": [ { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Resource", + "name": "Permissions", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[Volo.Abp.PermissionManagement.ResourcePermissionDefinitionDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.ResourcePermissionDefinitionDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto": { + "Volo.Abp.PermissionManagement.GetResourcePermissionListResultDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4593,29 +9292,21 @@ "genericArguments": null, "properties": [ { - "name": "OnGet", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", - "isRequired": false - }, - { - "name": "OnCreate", - "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", - "isRequired": false - }, - { - "name": "OnUpdate", + "name": "Permissions", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", - "isRequired": false + "type": "[Volo.Abp.PermissionManagement.ResourcePermissionGrantInfoDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.ResourcePermissionGrantInfoDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto": { + "Volo.Abp.PermissionManagement.GetResourcePermissionWithProviderListResultDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4623,15 +9314,21 @@ "genericArguments": null, "properties": [ { - "name": "IsAvailable", + "name": "Permissions", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "[Volo.Abp.PermissionManagement.ResourcePermissionWithProdiverGrantInfoDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.ResourcePermissionWithProdiverGrantInfoDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto": { + "Volo.Abp.PermissionManagement.GetResourceProviderListResultDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4639,15 +9336,56 @@ "genericArguments": null, "properties": [ { - "name": "IsAvailable", + "name": "Providers", + "jsonName": null, + "type": "[Volo.Abp.PermissionManagement.ResourceProviderDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.ResourceProviderDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.PermissionManagement.GrantedResourcePermissionDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "Name", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "DisplayName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto": { + "Volo.Abp.PermissionManagement.PermissionGrantInfoDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4655,15 +9393,86 @@ "genericArguments": null, "properties": [ { - "name": "IsAvailable", + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "DisplayName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ParentName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "IsGranted", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "AllowedProviders", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "GrantedProviders", + "jsonName": null, + "type": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto": { + "Volo.Abp.PermissionManagement.PermissionGroupDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4671,36 +9480,73 @@ "genericArguments": null, "properties": [ { - "name": "OnTable", + "name": "Name", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "OnCreateForm", + "name": "DisplayName", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "OnEditForm", + "name": "DisplayNameKey", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Lookup", + "name": "DisplayNameResource", "jsonName": null, - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Permissions", + "jsonName": null, + "type": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto": { + "Volo.Abp.PermissionManagement.ProviderInfoDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4708,15 +9554,34 @@ "genericArguments": null, "properties": [ { - "name": "IsVisible", + "name": "ProviderName", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "ProviderKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto": { + "Volo.Abp.PermissionManagement.ResourcePermissionDefinitionDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4724,15 +9589,34 @@ "genericArguments": null, "properties": [ { - "name": "IsVisible", + "name": "Name", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "DisplayName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto": { + "Volo.Abp.PermissionManagement.ResourcePermissionGrantInfoDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4740,43 +9624,73 @@ "genericArguments": null, "properties": [ { - "name": "Url", + "name": "ProviderName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ResultListPropertyName", + "name": "ProviderKey", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "DisplayPropertyName", + "name": "ProviderDisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ValuePropertyName", + "name": "ProviderNameDisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "FilterParamName", + "name": "Permissions", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "[Volo.Abp.PermissionManagement.GrantedResourcePermissionDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.GrantedResourcePermissionDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto": { + "Volo.Abp.PermissionManagement.ResourcePermissionWithProdiverGrantInfoDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4784,22 +9698,60 @@ "genericArguments": null, "properties": [ { - "name": "TypeSimple", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Config", + "name": "DisplayName", "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Providers", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "IsGranted", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto": { + "Volo.Abp.PermissionManagement.ResourceProviderDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4807,22 +9759,34 @@ "genericArguments": null, "properties": [ { - "name": "Fields", + "name": "Name", "jsonName": null, - "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", - "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "LocalizationResource", + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto": { + "Volo.Abp.PermissionManagement.SearchProviderKeyInfo": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4830,22 +9794,34 @@ "genericArguments": null, "properties": [ { - "name": "Name", + "name": "ProviderKey", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Value", + "name": "ProviderDisplayName", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto": { + "Volo.Abp.PermissionManagement.SearchProviderKeyListResultDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4853,15 +9829,21 @@ "genericArguments": null, "properties": [ { - "name": "IncludeTypes", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "name": "Keys", + "jsonName": null, + "type": "[Volo.Abp.PermissionManagement.SearchProviderKeyInfo]", + "typeSimple": "[Volo.Abp.PermissionManagement.SearchProviderKeyInfo]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel": { + "Volo.Abp.PermissionManagement.UpdatePermissionDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4869,22 +9851,34 @@ "genericArguments": null, "properties": [ { - "name": "Modules", + "name": "Name", "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Types", + "name": "IsGranted", "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Http.Modeling.ModuleApiDescriptionModel": { + "Volo.Abp.PermissionManagement.UpdatePermissionsDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4892,29 +9886,69 @@ "genericArguments": null, "properties": [ { - "name": "RootPath", + "name": "Permissions", + "jsonName": null, + "type": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.PermissionManagement.UpdateResourcePermissionsDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "ProviderName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "RemoteServiceName", + "name": "ProviderKey", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Controllers", + "name": "Permissions", "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Http.Modeling.ControllerApiDescriptionModel": { + "Volo.Abp.SettingManagement.EmailSettingsDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4922,43 +9956,125 @@ "genericArguments": null, "properties": [ { - "name": "ControllerName", + "name": "SmtpHost", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ControllerGroupName", + "name": "SmtpPort", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "SmtpUserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Type", + "name": "SmtpPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Interfaces", + "name": "SmtpDomain", "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Actions", + "name": "SmtpEnableSsl", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "SmtpUseDefaultCredentials", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "DefaultFromAddress", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "DefaultFromDisplayName", "jsonName": null, - "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", - "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel": { + "Volo.Abp.SettingManagement.SendTestEmailInput": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4966,15 +10082,60 @@ "genericArguments": null, "properties": [ { - "name": "Type", + "name": "SenderEmailAddress", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "TargetEmailAddress", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Subject", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + }, + { + "name": "Body", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": { + "Volo.Abp.SettingManagement.UpdateEmailSettingsDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -4982,129 +10143,261 @@ "genericArguments": null, "properties": [ { - "name": "UniqueName", + "name": "SmtpHost", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Name", + "name": "SmtpPort", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "1", + "maximum": "65535", + "regex": null, + "isNullable": false }, { - "name": "HttpMethod", + "name": "SmtpUserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Url", + "name": "SmtpPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "SupportedVersions", + "name": "SmtpDomain", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ParametersOnMethod", + "name": "SmtpEnableSsl", "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Parameters", + "name": "SmtpUseDefaultCredentials", "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ReturnValue", + "name": "DefaultFromAddress", "jsonName": null, - "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", - "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "AllowAnonymous", + "name": "DefaultFromDisplayName", "jsonName": null, - "type": "System.Boolean?", - "typeSimple": "boolean?", - "isRequired": false - }, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.TenantManagement.GetTenantsInput": { + "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "ImplementFrom", + "name": "Filter", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": { - "baseType": null, + "Volo.Abp.TenantManagement.TenantCreateDto": { + "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Name", + "name": "AdminEmailAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": null, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "TypeAsString", + "name": "AdminPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, + "isRequired": true, + "minLength": null, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Type", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, + "isRequired": true, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.TenantManagement.TenantDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "TypeSimple", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "IsOptional", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false + } + ] + }, + "Volo.Abp.TenantManagement.TenantUpdateDto": { + "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "DefaultValue", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Http.Modeling.ParameterApiDescriptionModel": { + "Volo.Abp.Users.UserData": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5112,101 +10405,151 @@ "genericArguments": null, "properties": [ { - "name": "NameOnMethod", + "name": "Id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Name", + "name": "TenantId", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "JsonName", + "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Type", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "TypeSimple", + "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "IsOptional", + "name": "IsActive", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "DefaultValue", + "name": "Email", "jsonName": null, - "type": "System.Object", - "typeSimple": "object", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "ConstraintTypes", + "name": "EmailConfirmed", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "BindingSourceId", + "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "DescriptorName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Type", + "name": "PhoneNumberConfirmed", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "TypeSimple", + "name": "ExtraProperties", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Http.Modeling.TypeApiDescriptionModel": { + "Volo.Abp.Validation.StringValues.IStringValueType": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5214,50 +10557,60 @@ "genericArguments": null, "properties": [ { - "name": "BaseType", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsEnum", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "EnumNames", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "EnumValues", + "name": "Item", "jsonName": null, - "type": "[System.Object]", - "typeSimple": "[object]", - "isRequired": false + "type": "System.Object", + "typeSimple": "object", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "GenericArguments", + "name": "Properties", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "Properties", + "name": "Validator", "jsonName": null, - "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", - "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", - "isRequired": false + "type": "Volo.Abp.Validation.StringValues.IValueValidator", + "typeSimple": "Volo.Abp.Validation.StringValues.IValueValidator", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] }, - "Volo.Abp.Http.Modeling.PropertyApiDescriptionModel": { + "Volo.Abp.Validation.StringValues.IValueValidator": { "baseType": null, "isEnum": false, "enumNames": null, @@ -5269,35 +10622,39 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, - { - "name": "JsonName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false }, { - "name": "TypeSimple", + "name": "Item", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Object", + "typeSimple": "object", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": true }, { - "name": "IsRequired", + "name": "Properties", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null, + "isNullable": false } ] } From 3ad378f429da7e73ecbbab4ec30d837160cdece6 Mon Sep 17 00:00:00 2001 From: Fahri Gedik Date: Wed, 24 Dec 2025 10:25:26 +0300 Subject: [PATCH 08/15] Refactor resource permission management to use state service Introduces ResourcePermissionStateService to centralize and manage state for resource permission management. Refactors resource-permission-management.component and related templates to use the new state service, and extracts form, list, and search UI into dedicated components for improved modularity and maintainability. --- .../src/lib/components/index.ts | 4 + .../permission-checkbox-list.component.ts | 57 +++ .../provider-key-search.component.ts | 105 +++++ .../resource-permission-form.component.ts | 70 ++++ .../resource-permission-list.component.ts | 75 ++++ ...ource-permission-management.component.html | 151 ++----- ...esource-permission-management.component.ts | 367 +++++------------- .../src/lib/services/index.ts | 1 + .../resource-permission-state.service.ts | 165 ++++++++ 9 files changed, 591 insertions(+), 404 deletions(-) create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.ts create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.ts create mode 100644 npm/ng-packs/packages/permission-management/src/lib/services/resource-permission-state.service.ts diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/index.ts b/npm/ng-packs/packages/permission-management/src/lib/components/index.ts index 2c1ce75527..074ddb880d 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/index.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/index.ts @@ -1,2 +1,6 @@ export * from './permission-management.component'; export * from './resource-permission-management/resource-permission-management.component'; +export * from './resource-permission-management/provider-key-search/provider-key-search.component'; +export * from './resource-permission-management/permission-checkbox-list/permission-checkbox-list.component'; +export * from './resource-permission-management/resource-permission-list/resource-permission-list.component'; +export * from './resource-permission-management/resource-permission-form/resource-permission-form.component'; diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts new file mode 100644 index 0000000000..e59cc67e12 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts @@ -0,0 +1,57 @@ +import { Component, input, inject, ChangeDetectionStrategy } from '@angular/core'; +import { LocalizationPipe } from '@abp/ng.core'; +import { ResourcePermissionStateService } from '../../../services/resource-permission-state.service'; + +interface PermissionItem { + name?: string | null; + displayName?: string | null; +} + +@Component({ + selector: 'abp-permission-checkbox-list', + template: ` +
+ @if (showTitle()) { +
{{ title() | abpLocalization }}
+ } +
+ + +
+
+ @for (perm of permissions(); track perm.name) { +
+ + +
+ } +
+
+ `, + imports: [LocalizationPipe], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class PermissionCheckboxListComponent { + readonly state = inject(ResourcePermissionStateService); + + readonly permissions = input.required(); + readonly idPrefix = input('default'); + readonly title = input('AbpPermissionManagement::ResourcePermissionPermissions'); + readonly showTitle = input(true); +} diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts new file mode 100644 index 0000000000..17a37e7456 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts @@ -0,0 +1,105 @@ +import { Component, input, inject, output, OnInit, OnDestroy, ChangeDetectionStrategy } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { LocalizationPipe } from '@abp/ng.core'; +import { PermissionsService, SearchProviderKeyInfo } from '@abp/ng.permission-management/proxy'; +import { Subject, debounceTime, distinctUntilChanged, takeUntil } from 'rxjs'; +import { ResourcePermissionStateService } from '../../../services/resource-permission-state.service'; + +@Component({ + selector: 'abp-provider-key-search', + template: ` +
+ + + @if (state.searchResults().length > 0 && state.showDropdown()) { +
+ @for (result of state.searchResults(); track result.providerKey) { + + } +
+ } +
+ `, + imports: [FormsModule, LocalizationPipe], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ProviderKeySearchComponent implements OnInit, OnDestroy { + readonly state = inject(ResourcePermissionStateService); + private readonly service = inject(PermissionsService); + + readonly resourceName = input.required(); + + readonly keySelected = output(); + + private readonly searchSubject = new Subject(); + private readonly destroy$ = new Subject(); + + ngOnInit() { + this.searchSubject.pipe( + debounceTime(300), + distinctUntilChanged(), + takeUntil(this.destroy$) + ).subscribe(filter => { + this.loadProviderKeys(filter); + }); + } + + ngOnDestroy() { + this.destroy$.next(); + this.destroy$.complete(); + } + + onSearchInput(filter: string) { + this.state.searchFilter.set(filter); + this.state.showDropdown.set(true); + this.searchSubject.next(filter); + } + + onSearchFocus() { + this.state.showDropdown.set(true); + this.loadProviderKeys(this.state.searchFilter() || ''); + } + + onSearchBlur(event: FocusEvent) { + const relatedTarget = event.relatedTarget as HTMLElement; + if (!relatedTarget?.closest('.list-group')) { + this.state.showDropdown.set(false); + } + } + + selectProviderKey(key: SearchProviderKeyInfo) { + this.state.selectProviderKey(key); + this.keySelected.emit(key); + } + + private loadProviderKeys(filter: string) { + const providerName = this.state.selectedProviderName(); + if (!providerName) return; + + this.service.searchResourceProviderKey( + this.resourceName(), + providerName, + filter, + 1 + ).subscribe(res => { + this.state.searchResults.set(res.keys || []); + }); + } +} diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.ts new file mode 100644 index 0000000000..afb2ff14bb --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.ts @@ -0,0 +1,70 @@ +import { Component, input, inject, output, ChangeDetectionStrategy } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { LocalizationPipe } from '@abp/ng.core'; +import { ResourcePermissionStateService } from '../../../services/resource-permission-state.service'; +import { ProviderKeySearchComponent } from '../provider-key-search/provider-key-search.component'; +import { PermissionCheckboxListComponent } from '../permission-checkbox-list/permission-checkbox-list.component'; + +export type FormMode = 'add' | 'edit'; + +@Component({ + selector: 'abp-resource-permission-form', + template: ` + @if (mode() === 'add') { +
+ +
+ @for (provider of state.providers(); track provider.name; let i = $index) { +
+ + +
+ } +
+ + +
+ + + } @else { +
+

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }}

+ +
+ } + `, + imports: [ + FormsModule, + LocalizationPipe, + ProviderKeySearchComponent, + PermissionCheckboxListComponent, + ], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ResourcePermissionFormComponent { + readonly state = inject(ResourcePermissionStateService); + + readonly mode = input.required(); + readonly resourceName = input.required(); + + readonly save = output(); + readonly cancel = output(); +} diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.ts new file mode 100644 index 0000000000..b422d9e991 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.ts @@ -0,0 +1,75 @@ +import { Component, inject, output, ChangeDetectionStrategy } from '@angular/core'; +import { ListService, LocalizationPipe } from '@abp/ng.core'; +import { ExtensibleTableComponent, EXTENSIONS_IDENTIFIER } from '@abp/ng.components/extensible'; +import { ResourcePermissionGrantInfoDto } from '@abp/ng.permission-management/proxy'; +import { ResourcePermissionStateService } from '../../../services/resource-permission-state.service'; +import { ePermissionManagementComponents } from '../../../enums/components'; +import { configureResourcePermissionExtensions } from '../../../services/extensions.service'; + +@Component({ + selector: 'abp-resource-permission-list', + template: ` +
+ +
+ + +
+ + +
+
+ + @if (state.resourcePermissions().length > 0) { + + } @else { +
+ {{ 'AbpPermissionManagement::NoPermissionsAssigned' | abpLocalization }} +
+ } + `, + providers: [ + ListService, + { + provide: EXTENSIONS_IDENTIFIER, + useValue: ePermissionManagementComponents.ResourcePermissions, + }, + ], + imports: [LocalizationPipe, ExtensibleTableComponent], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ResourcePermissionListComponent { + readonly state = inject(ResourcePermissionStateService); + readonly list = inject(ListService); + + readonly addClicked = output(); + readonly editClicked = output(); + readonly deleteClicked = output(); + + constructor() { + configureResourcePermissionExtensions(); + } +} diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html index b8cc1afd1e..7ffbf3b6b1 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.html @@ -1,165 +1,60 @@ - + - @if (!hasResourcePermission() || !hasProviderKeyLookupService()) { + @if (!state.hasResourcePermission() || !state.hasProviderKeyLookupService()) { } @else { - - @if (viewMode() === 'list') { -
- -
- - -
- - -
-
- - @if (resourcePermissions().length > 0) { - - } @else { -
- {{ 'AbpPermissionManagement::NoPermissionsAssigned' | abpLocalization }} -
+ @switch (state.viewMode()) { + @case ('list') { + } + @case ('add') { + } - - - @if (viewMode() === 'add') { -
- -
- @for (provider of providers(); track provider.name; let i = $index) { -
- - -
- } -
- -
- - - @if (searchResults().length > 0 && showDropdown()) { -
- @for (result of searchResults(); track result.providerKey) { - - } -
- } -
-
- -
-
{{ 'AbpPermissionManagement::ResourcePermissionPermissions' | abpLocalization }}
-
- - -
-
- @for (perm of permissionDefinitions(); track perm.name) { -
- - -
- } -
-
+ @case ('edit') { + } - - - @if (viewMode() === 'edit') { -
-

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }}

-
- - -
- @for (perm of permissionsWithProvider(); track perm.name) { -
- - -
- } -
} }
- @if (viewMode() === 'list') { + @if (state.isListMode()) { } @else { - - @if (viewMode() === 'add') { - + {{ 'AbpUi::Save' | abpLocalization }} - } @else { - - {{ 'AbpUi::Save' | abpLocalization }} - - } }
\ No newline at end of file diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts index 3f0334ce5e..18b810fd51 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts @@ -10,116 +10,66 @@ import { import { PermissionsService, ResourcePermissionGrantInfoDto, - ResourceProviderDto, - SearchProviderKeyInfo, - ResourcePermissionDefinitionDto, - ResourcePermissionWithProdiverGrantInfoDto, } from '@abp/ng.permission-management/proxy'; -import { - ExtensibleTableComponent, - EXTENSIONS_IDENTIFIER, -} from '@abp/ng.components/extensible'; import { Component, - EventEmitter, inject, - Input, - Output, - signal, - computed, + input, + model, OnInit, + effect, } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { finalize, switchMap, debounceTime, Subject, distinctUntilChanged, of } from 'rxjs'; -import { ePermissionManagementComponents } from '../../enums/components'; -import { configureResourcePermissionExtensions } from '../../services/extensions.service'; - -type ViewMode = 'list' | 'add' | 'edit'; +import { finalize, switchMap, of } from 'rxjs'; +import { ResourcePermissionStateService } from '../../services/resource-permission-state.service'; +import { ResourcePermissionListComponent } from './resource-permission-list/resource-permission-list.component'; +import { ResourcePermissionFormComponent } from './resource-permission-form/resource-permission-form.component'; @Component({ selector: 'abp-resource-permission-management', templateUrl: './resource-permission-management.component.html', exportAs: 'abpResourcePermissionManagement', - providers: [ - ListService, - { - provide: EXTENSIONS_IDENTIFIER, - useValue: ePermissionManagementComponents.ResourcePermissions, - }, - ], + providers: [ResourcePermissionStateService, ListService], imports: [ - FormsModule, ModalComponent, LocalizationPipe, ButtonComponent, ModalCloseDirective, - ExtensibleTableComponent, + ResourcePermissionListComponent, + ResourcePermissionFormComponent, ], }) export class ResourcePermissionManagementComponent implements OnInit { protected readonly service = inject(PermissionsService); protected readonly toasterService = inject(ToasterService); protected readonly confirmationService = inject(ConfirmationService); - readonly list = inject(ListService); - - @Input() resourceName!: string; - @Input() resourceKey!: string; - @Input() resourceDisplayName?: string; - - protected _visible = false; - - @Input() - get visible(): boolean { - return this._visible; - } - - set visible(value: boolean) { - if (value === this._visible) return; - - if (value) { - this.openModal(); - } else { - this.resetState(); - } - this._visible = value; - this.visibleChange.emit(value); - } - - @Output() readonly visibleChange = new EventEmitter(); + protected readonly state = inject(ResourcePermissionStateService); + private readonly list = inject(ListService); - viewMode = signal('list'); - modalBusy = signal(false); - hasResourcePermission = signal(false); - hasProviderKeyLookupService = signal(false); + readonly resourceName = input.required(); + readonly resourceKey = input.required(); + readonly resourceDisplayName = input(); - allResourcePermissions = signal([]); // All data for client-side pagination - resourcePermissions = signal([]); // Paginated data for table - totalCount = signal(0); - providers = signal([]); - permissionDefinitions = signal([]); - searchResults = signal([]); - permissionsWithProvider = signal([]); + readonly visible = model(false); - selectedProviderName = signal(''); - selectedProviderKey = signal(''); - searchFilter = signal(''); - selectedPermissions = signal([]); - - editProviderName = signal(''); - editProviderKey = signal(''); - - showDropdown = signal(false); - - private searchSubject = new Subject(); + private previousVisible = false; constructor() { - configureResourcePermissionExtensions(); + // Sync input values to state + effect(() => { + this.state.resourceName.set(this.resourceName()); + this.state.resourceKey.set(this.resourceKey()); + this.state.resourceDisplayName.set(this.resourceDisplayName()); + }); - this.searchSubject.pipe( - debounceTime(300), - distinctUntilChanged() - ).subscribe(filter => { - this.performSearch(filter); + // Handle visibility changes + effect(() => { + const isVisible = this.visible(); + if (isVisible && !this.previousVisible) { + this.openModal(); + } else if (!isVisible && this.previousVisible) { + this.state.reset(); + } + this.previousVisible = isVisible; }); } @@ -127,7 +77,7 @@ export class ResourcePermissionManagementComponent implements OnInit { this.list.maxResultCount = 10; this.list.hookToQuery(query => { - const allData = this.allResourcePermissions(); + const allData = this.state.allResourcePermissions(); const skipCount = query.skipCount || 0; const maxResultCount = query.maxResultCount || 10; @@ -138,34 +88,28 @@ export class ResourcePermissionManagementComponent implements OnInit { totalCount: allData.length }); }).subscribe(result => { - this.resourcePermissions.set(result.items); - this.totalCount.set(result.totalCount); + this.state.resourcePermissions.set(result.items); + this.state.totalCount.set(result.totalCount); }); } openModal() { - this.modalBusy.set(true); + this.state.modalBusy.set(true); - this.service.getResource(this.resourceName, this.resourceKey).pipe( + this.service.getResource(this.resourceName(), this.resourceKey()).pipe( switchMap(permRes => { - this.allResourcePermissions.set(permRes.permissions || []); - this.totalCount.set(permRes.permissions?.length || 0); + this.state.setResourceData(permRes.permissions || []); this.list.get(); - return this.service.getResourceProviderKeyLookupServices(this.resourceName); + return this.service.getResourceProviderKeyLookupServices(this.resourceName()); }), switchMap(providerRes => { - this.providers.set(providerRes.providers || []); - this.hasProviderKeyLookupService.set((providerRes.providers?.length || 0) > 0); - if (providerRes.providers?.length) { - this.selectedProviderName.set(providerRes.providers[0].name || ''); - } - return this.service.getResourceDefinitions(this.resourceName); + this.state.setProviders(providerRes.providers || []); + return this.service.getResourceDefinitions(this.resourceName()); }), - finalize(() => this.modalBusy.set(false)) + finalize(() => this.state.modalBusy.set(false)) ).subscribe({ next: defRes => { - this.permissionDefinitions.set(defRes.permissions || []); - this.hasResourcePermission.set((defRes.permissions?.length || 0) > 0); + this.state.setDefinitions(defRes.permissions || []); }, error: () => { this.toasterService.error('AbpPermissionManagement::ErrorLoadingPermissions'); @@ -173,190 +117,29 @@ export class ResourcePermissionManagementComponent implements OnInit { }); } - resetState() { - this.viewMode.set('list'); - this.allResourcePermissions.set([]); - this.resourcePermissions.set([]); - this.totalCount.set(0); - this.selectedProviderName.set(''); - this.selectedProviderKey.set(''); - this.searchFilter.set(''); - this.selectedPermissions.set([]); - this.searchResults.set([]); + onAddClicked() { + this.state.goToAddMode(); } - goToAddMode() { - this.viewMode.set('add'); - this.selectedPermissions.set([]); - this.selectedProviderKey.set(''); - this.searchResults.set([]); - } - - goToEditMode(grant: ResourcePermissionGrantInfoDto) { - this.editProviderName.set(grant.providerName || ''); - this.editProviderKey.set(grant.providerKey || ''); - this.modalBusy.set(true); + onEditClicked(grant: ResourcePermissionGrantInfoDto) { + this.state.prepareEditMode(grant); + this.state.modalBusy.set(true); this.service.getResourceByProvider( - this.resourceName, - this.resourceKey, + this.resourceName(), + this.resourceKey(), grant.providerName || '', grant.providerKey || '' ).pipe( - finalize(() => this.modalBusy.set(false)) - ).subscribe({ - next: res => { - this.permissionsWithProvider.set(res.permissions || []); - this.selectedPermissions.set( - (res.permissions || []).filter(p => p.isGranted).map(p => p.name || '') - ); - this.viewMode.set('edit'); - } - }); - } - - goToListMode() { - this.viewMode.set('list'); - this.selectedPermissions.set([]); - } - - onProviderChange(providerName: string) { - this.selectedProviderName.set(providerName); - this.selectedProviderKey.set(''); - this.searchResults.set([]); - this.searchFilter.set(''); - } - - onSearchInput(filter: string) { - this.searchFilter.set(filter); - this.showDropdown.set(true); - this.searchSubject.next(filter); - } - - onSearchFocus() { - this.showDropdown.set(true); - this.loadProviderKeys(this.searchFilter() || ''); - } - - onSearchBlur() { - setTimeout(() => { - this.showDropdown.set(false); - }, 200); - } - - private loadProviderKeys(filter: string) { - if (!this.selectedProviderName()) return; - - this.service.searchResourceProviderKey( - this.resourceName, - this.selectedProviderName(), - filter, - 1 - ).subscribe(res => { - this.searchResults.set(res.keys || []); - }); - } - - private performSearch(filter: string) { - this.loadProviderKeys(filter); - } - - selectProviderKey(key: SearchProviderKeyInfo) { - this.selectedProviderKey.set(key.providerKey || ''); - this.searchFilter.set(key.providerDisplayName || key.providerKey || ''); - this.searchResults.set([]); - this.showDropdown.set(false); - } - - togglePermission(permissionName: string) { - const current = this.selectedPermissions(); - if (current.includes(permissionName)) { - this.selectedPermissions.set(current.filter(p => p !== permissionName)); - } else { - this.selectedPermissions.set([...current, permissionName]); - } - } - - toggleAllPermissions(selectAll: boolean) { - if (this.viewMode() === 'add') { - this.selectedPermissions.set( - selectAll - ? this.permissionDefinitions().map(p => p.name || '') - : [] - ); - } else { - this.selectedPermissions.set( - selectAll - ? this.permissionsWithProvider().map(p => p.name || '') - : [] - ); - } - } - - isPermissionSelected(permissionName: string): boolean { - return this.selectedPermissions().includes(permissionName); - } - - allPermissionsSelected = computed(() => { - const definitions = this.viewMode() === 'add' - ? this.permissionDefinitions() - : this.permissionsWithProvider(); - return definitions.length > 0 && - definitions.every(p => this.selectedPermissions().includes(p.name || '')); - }); - - saveAddPermission() { - if (!this.selectedProviderKey() || this.selectedPermissions().length === 0) { - this.toasterService.warn('AbpPermissionManagement::PleaseSelectProviderAndPermissions'); - return; - } - - this.modalBusy.set(true); - this.service.updateResource( - this.resourceName, - this.resourceKey, - { - providerName: this.selectedProviderName(), - providerKey: this.selectedProviderKey(), - permissions: this.selectedPermissions() - } - ).pipe( - switchMap(() => this.service.getResource(this.resourceName, this.resourceKey)), - finalize(() => this.modalBusy.set(false)) - ).subscribe({ - next: res => { - this.allResourcePermissions.set(res.permissions || []); - this.list.get(); - this.toasterService.success('AbpUi::SavedSuccessfully'); - this.goToListMode(); - } - }); - } - - saveEditPermission() { - this.modalBusy.set(true); - this.service.updateResource( - this.resourceName, - this.resourceKey, - { - providerName: this.editProviderName(), - providerKey: this.editProviderKey(), - permissions: this.selectedPermissions() - } - ).pipe( - switchMap(() => this.service.getResource(this.resourceName, this.resourceKey)), - finalize(() => this.modalBusy.set(false)) + finalize(() => this.state.modalBusy.set(false)) ).subscribe({ next: res => { - this.allResourcePermissions.set(res.permissions || []); - this.list.get(); - this.toasterService.success('AbpUi::SavedSuccessfully'); - this.goToListMode(); + this.state.setEditModePermissions(res.permissions || []); } }); } - deletePermission(grant: ResourcePermissionGrantInfoDto) { + onDeleteClicked(grant: ResourcePermissionGrantInfoDto) { this.confirmationService .warn( 'AbpPermissionManagement::PermissionDeletionConfirmationMessage', @@ -367,18 +150,18 @@ export class ResourcePermissionManagementComponent implements OnInit { ) .subscribe((status: Confirmation.Status) => { if (status === Confirmation.Status.confirm) { - this.modalBusy.set(true); + this.state.modalBusy.set(true); this.service.deleteResource( - this.resourceName, - this.resourceKey, + this.resourceName(), + this.resourceKey(), grant.providerName || '', grant.providerKey || '' ).pipe( - switchMap(() => this.service.getResource(this.resourceName, this.resourceKey)), - finalize(() => this.modalBusy.set(false)) + switchMap(() => this.service.getResource(this.resourceName(), this.resourceKey())), + finalize(() => this.state.modalBusy.set(false)) ).subscribe({ next: res => { - this.allResourcePermissions.set(res.permissions || []); + this.state.setResourceData(res.permissions || []); this.list.get(); this.toasterService.success('AbpUi::SuccessfullyDeleted'); } @@ -386,4 +169,36 @@ export class ResourcePermissionManagementComponent implements OnInit { } }); } + + savePermission() { + const isEdit = this.state.isEditMode(); + const providerName = isEdit ? this.state.editProviderName() : this.state.selectedProviderName(); + const providerKey = isEdit ? this.state.editProviderKey() : this.state.selectedProviderKey(); + + if (!isEdit && !this.state.canSave()) { + this.toasterService.warn('AbpPermissionManagement::PleaseSelectProviderAndPermissions'); + return; + } + + this.state.modalBusy.set(true); + this.service.updateResource( + this.resourceName(), + this.resourceKey(), + { + providerName, + providerKey, + permissions: this.state.selectedPermissions() + } + ).pipe( + switchMap(() => this.service.getResource(this.resourceName(), this.resourceKey())), + finalize(() => this.state.modalBusy.set(false)) + ).subscribe({ + next: res => { + this.state.setResourceData(res.permissions || []); + this.list.get(); + this.toasterService.success('AbpUi::SavedSuccessfully'); + this.state.goToListMode(); + } + }); + } } diff --git a/npm/ng-packs/packages/permission-management/src/lib/services/index.ts b/npm/ng-packs/packages/permission-management/src/lib/services/index.ts index 29bda44023..f4dae3a571 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/services/index.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/services/index.ts @@ -1 +1,2 @@ export * from './extensions.service'; +export * from './resource-permission-state.service'; diff --git a/npm/ng-packs/packages/permission-management/src/lib/services/resource-permission-state.service.ts b/npm/ng-packs/packages/permission-management/src/lib/services/resource-permission-state.service.ts new file mode 100644 index 0000000000..8fa2daeda5 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/services/resource-permission-state.service.ts @@ -0,0 +1,165 @@ +import { Injectable, signal, computed } from '@angular/core'; +import { + ResourcePermissionGrantInfoDto, + ResourceProviderDto, + ResourcePermissionDefinitionDto, + SearchProviderKeyInfo, + ResourcePermissionWithProdiverGrantInfoDto, +} from '@abp/ng.permission-management/proxy'; + +export type ViewMode = 'list' | 'add' | 'edit'; + +@Injectable() +export class ResourcePermissionStateService { + // View state + readonly viewMode = signal('list'); + readonly modalBusy = signal(false); + readonly hasResourcePermission = signal(false); + readonly hasProviderKeyLookupService = signal(false); + + // Resource data + readonly resourceName = signal(''); + readonly resourceKey = signal(''); + readonly resourceDisplayName = signal(undefined); + + // Permissions data + readonly allResourcePermissions = signal([]); + readonly resourcePermissions = signal([]); + readonly totalCount = signal(0); + readonly permissionDefinitions = signal([]); + readonly permissionsWithProvider = signal([]); + readonly selectedPermissions = signal([]); + + // Provider data + readonly providers = signal([]); + readonly selectedProviderName = signal(''); + readonly selectedProviderKey = signal(''); + + // Edit mode specific + readonly editProviderName = signal(''); + readonly editProviderKey = signal(''); + + // Search state + readonly searchFilter = signal(''); + readonly searchResults = signal([]); + readonly showDropdown = signal(false); + + // Computed properties + readonly isAddMode = computed(() => this.viewMode() === 'add'); + readonly isEditMode = computed(() => this.viewMode() === 'edit'); + readonly isListMode = computed(() => this.viewMode() === 'list'); + + readonly currentPermissionsList = computed(() => + this.isAddMode() ? this.permissionDefinitions() : this.permissionsWithProvider() + ); + + readonly allPermissionsSelected = computed(() => { + const definitions = this.currentPermissionsList(); + return definitions.length > 0 && + definitions.every(p => this.selectedPermissions().includes(p.name || '')); + }); + + readonly canSave = computed(() => { + if (this.isAddMode()) { + return !!this.selectedProviderKey() && this.selectedPermissions().length > 0; + } + return this.selectedPermissions().length >= 0; + }); + + // State transition methods + goToListMode() { + this.viewMode.set('list'); + this.selectedPermissions.set([]); + } + + goToAddMode() { + this.viewMode.set('add'); + this.selectedPermissions.set([]); + this.selectedProviderKey.set(''); + this.searchResults.set([]); + this.searchFilter.set(''); + } + + prepareEditMode(grant: ResourcePermissionGrantInfoDto) { + this.editProviderName.set(grant.providerName || ''); + this.editProviderKey.set(grant.providerKey || ''); + } + + setEditModePermissions(permissions: ResourcePermissionWithProdiverGrantInfoDto[]) { + this.permissionsWithProvider.set(permissions); + this.selectedPermissions.set( + permissions.filter(p => p.isGranted).map(p => p.name || '') + ); + this.viewMode.set('edit'); + } + + // Permission selection methods + togglePermission(permissionName: string) { + const current = this.selectedPermissions(); + if (current.includes(permissionName)) { + this.selectedPermissions.set(current.filter(p => p !== permissionName)); + } else { + this.selectedPermissions.set([...current, permissionName]); + } + } + + toggleAllPermissions(selectAll: boolean) { + const permissions = this.currentPermissionsList(); + this.selectedPermissions.set( + selectAll ? permissions.map(p => p.name || '') : [] + ); + } + + isPermissionSelected(permissionName: string): boolean { + return this.selectedPermissions().includes(permissionName); + } + + // Provider search methods + onProviderChange(providerName: string) { + this.selectedProviderName.set(providerName); + this.selectedProviderKey.set(''); + this.searchResults.set([]); + this.searchFilter.set(''); + } + + selectProviderKey(key: SearchProviderKeyInfo) { + this.selectedProviderKey.set(key.providerKey || ''); + this.searchFilter.set(key.providerDisplayName || key.providerKey || ''); + this.searchResults.set([]); + this.showDropdown.set(false); + } + + // Reset all state + reset() { + this.viewMode.set('list'); + this.allResourcePermissions.set([]); + this.resourcePermissions.set([]); + this.totalCount.set(0); + this.selectedProviderName.set(''); + this.selectedProviderKey.set(''); + this.searchFilter.set(''); + this.selectedPermissions.set([]); + this.searchResults.set([]); + this.editProviderName.set(''); + this.editProviderKey.set(''); + } + + // Data loading helpers + setResourceData(permissions: ResourcePermissionGrantInfoDto[]) { + this.allResourcePermissions.set(permissions); + this.totalCount.set(permissions.length); + } + + setProviders(providers: ResourceProviderDto[]) { + this.providers.set(providers); + this.hasProviderKeyLookupService.set(providers.length > 0); + if (providers.length) { + this.selectedProviderName.set(providers[0].name || ''); + } + } + + setDefinitions(permissions: ResourcePermissionDefinitionDto[]) { + this.permissionDefinitions.set(permissions); + this.hasResourcePermission.set(permissions.length > 0); + } +} From ed56c4f8dac037bd2e71538426d30fb89330c818 Mon Sep 17 00:00:00 2001 From: Fahri Gedik Date: Wed, 24 Dec 2025 10:53:54 +0300 Subject: [PATCH 09/15] Refactor components to use external HTML templates Moved inline templates to separate HTML files for permission-checkbox-list, provider-key-search, resource-permission-form, and resource-permission-list components. Updated component decorators to reference the new template files, improving maintainability and separation of concerns. --- .../permission-checkbox-list.component.html | 25 +++++++++++ .../permission-checkbox-list.component.ts | 36 +-------------- .../provider-key-search.component.html | 15 +++++++ .../provider-key-search.component.ts | 31 +------------ .../resource-permission-form.component.html | 28 ++++++++++++ .../resource-permission-form.component.ts | 43 +----------------- .../resource-permission-list.component.html | 28 ++++++++++++ .../resource-permission-list.component.ts | 44 +------------------ 8 files changed, 100 insertions(+), 150 deletions(-) create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.html create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.html create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.html create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.html diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.html new file mode 100644 index 0000000000..87c8f27d70 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.html @@ -0,0 +1,25 @@ +
+ @if (showTitle()) { +
{{ title() | abpLocalization }}
+ } +
+ + +
+
+ @for (perm of permissions(); track perm.name) { +
+ + +
+ } +
+
\ No newline at end of file diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts index e59cc67e12..fe36cbb800 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts @@ -9,41 +9,7 @@ interface PermissionItem { @Component({ selector: 'abp-permission-checkbox-list', - template: ` -
- @if (showTitle()) { -
{{ title() | abpLocalization }}
- } -
- - -
-
- @for (perm of permissions(); track perm.name) { -
- - -
- } -
-
- `, + templateUrl: './permission-checkbox-list.component.html', imports: [LocalizationPipe], changeDetection: ChangeDetectionStrategy.OnPush, }) diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.html new file mode 100644 index 0000000000..55e7000f27 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.html @@ -0,0 +1,15 @@ +
+ + + @if (state.searchResults().length > 0 && state.showDropdown()) { +
+ @for (result of state.searchResults(); track result.providerKey) { + + } +
+ } +
\ No newline at end of file diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts index 17a37e7456..57bbf8600a 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts @@ -7,36 +7,7 @@ import { ResourcePermissionStateService } from '../../../services/resource-permi @Component({ selector: 'abp-provider-key-search', - template: ` -
- - - @if (state.searchResults().length > 0 && state.showDropdown()) { -
- @for (result of state.searchResults(); track result.providerKey) { - - } -
- } -
- `, + templateUrl: './provider-key-search.component.html', imports: [FormsModule, LocalizationPipe], changeDetection: ChangeDetectionStrategy.OnPush, }) diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.html new file mode 100644 index 0000000000..b2018b6c7c --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.html @@ -0,0 +1,28 @@ +@if (mode() === 'add') { +
+ +
+ @for (provider of state.providers(); track provider.name; let i = $index) { +
+ + +
+ } +
+ + +
+ + +} @else { +
+

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }}

+ +
+} \ No newline at end of file diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.ts index afb2ff14bb..8c30754fca 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.ts @@ -9,48 +9,7 @@ export type FormMode = 'add' | 'edit'; @Component({ selector: 'abp-resource-permission-form', - template: ` - @if (mode() === 'add') { -
- -
- @for (provider of state.providers(); track provider.name; let i = $index) { -
- - -
- } -
- - -
- - - } @else { -
-

{{ 'AbpPermissionManagement::Permissions' | abpLocalization }}

- -
- } - `, + templateUrl: './resource-permission-form.component.html', imports: [ FormsModule, LocalizationPipe, diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.html new file mode 100644 index 0000000000..bdde5056b2 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.html @@ -0,0 +1,28 @@ +
+ +
+ + +
+ + +
+
+ +@if (state.resourcePermissions().length > 0) { + +} @else { +
+ {{ 'AbpPermissionManagement::NoPermissionsAssigned' | abpLocalization }} +
+} \ No newline at end of file diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.ts index b422d9e991..777246af9a 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.ts @@ -8,49 +8,7 @@ import { configureResourcePermissionExtensions } from '../../../services/extensi @Component({ selector: 'abp-resource-permission-list', - template: ` -
- -
- - -
- - -
-
- - @if (state.resourcePermissions().length > 0) { - - } @else { -
- {{ 'AbpPermissionManagement::NoPermissionsAssigned' | abpLocalization }} -
- } - `, + templateUrl: './resource-permission-list.component.html', providers: [ ListService, { From c240b9059430c95bae05865edc4f806bc7e9b612 Mon Sep 17 00:00:00 2001 From: Fahri Gedik Date: Wed, 24 Dec 2025 12:21:55 +0300 Subject: [PATCH 10/15] Add reusable lookup-search component and refactor provider key search Introduces a generic LookupSearchComponent for reusable lookup/search UI in Angular. Refactors the provider key search in permission management to use the new component, simplifying its logic and improving maintainability. Updates tsconfig paths to include the new lookup component package. --- .../components/lookup/ng-package.json | 6 + .../src/lib/lookup-search.component.html | 46 ++++++ .../lookup/src/lib/lookup-search.component.ts | 144 ++++++++++++++++++ .../components/lookup/src/public-api.ts | 1 + .../provider-key-search.component.html | 19 +-- .../provider-key-search.component.ts | 73 ++++----- npm/ng-packs/tsconfig.base.json | 135 ++++++++++++---- 7 files changed, 335 insertions(+), 89 deletions(-) create mode 100644 npm/ng-packs/packages/components/lookup/ng-package.json create mode 100644 npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html create mode 100644 npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts create mode 100644 npm/ng-packs/packages/components/lookup/src/public-api.ts diff --git a/npm/ng-packs/packages/components/lookup/ng-package.json b/npm/ng-packs/packages/components/lookup/ng-package.json new file mode 100644 index 0000000000..665ad2add2 --- /dev/null +++ b/npm/ng-packs/packages/components/lookup/ng-package.json @@ -0,0 +1,6 @@ +{ + "$schema": "../../../node_modules/ng-packagr/ng-entrypoint.schema.json", + "lib": { + "entryFile": "src/public-api.ts" + } +} \ No newline at end of file diff --git a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html new file mode 100644 index 0000000000..6dd240c996 --- /dev/null +++ b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html @@ -0,0 +1,46 @@ +
+ @if (label()) { + + } + +
+ + @if (displayValue() && !disabled()) { + + } +
+ + @if (showDropdown() && !disabled()) { +
+ @if (isLoading()) { +
+ + {{ 'AbpUi::Loading' | abpLocalization }} +
+ } @else if (searchResults().length > 0) { + @for (item of searchResults(); track item.key) { + + } + } @else if (displayValue()) { + @if (noResultsTemplate()) { + + } @else { +
+ {{ 'AbpUi::NoRecordsFound' | abpLocalization }} +
+ } + } +
+ } +
\ No newline at end of file diff --git a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts new file mode 100644 index 0000000000..17f30f83a8 --- /dev/null +++ b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts @@ -0,0 +1,144 @@ +import { + Component, + input, + output, + model, + signal, + OnInit, + OnDestroy, + ChangeDetectionStrategy, + TemplateRef, + contentChild, +} from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { LocalizationPipe } from '@abp/ng.core'; +import { Subject, Observable, debounceTime, distinctUntilChanged, takeUntil, of } from 'rxjs'; + +export interface LookupItem { + key: string; + displayName: string; + [key: string]: unknown; +} + +export type LookupSearchFn = (filter: string) => Observable; + +@Component({ + selector: 'abp-lookup-search', + templateUrl: './lookup-search.component.html', + imports: [CommonModule, FormsModule, LocalizationPipe], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class LookupSearchComponent implements OnInit, OnDestroy { + // Inputs + readonly label = input(); + readonly placeholder = input(''); + readonly debounceTime = input(300); + readonly minSearchLength = input(0); + readonly displayKey = input('displayName' as keyof T); + readonly valueKey = input('key' as keyof T); + readonly disabled = input(false); + + // Search function - should be provided by parent + readonly searchFn = input>(() => of([])); + + // Two-way binding for selected value + readonly selectedValue = model(''); + readonly displayValue = model(''); + + // Outputs + readonly itemSelected = output(); + readonly searchChanged = output(); + + // Custom templates + readonly itemTemplate = contentChild>('itemTemplate'); + readonly noResultsTemplate = contentChild>('noResultsTemplate'); + + // Internal state + readonly searchResults = signal([]); + readonly showDropdown = signal(false); + readonly isLoading = signal(false); + + private readonly searchSubject = new Subject(); + private readonly destroy$ = new Subject(); + + ngOnInit() { + this.searchSubject.pipe( + debounceTime(this.debounceTime()), + distinctUntilChanged(), + takeUntil(this.destroy$) + ).subscribe(filter => { + this.performSearch(filter); + }); + } + + ngOnDestroy() { + this.destroy$.next(); + this.destroy$.complete(); + } + + onSearchInput(filter: string) { + this.displayValue.set(filter); + this.showDropdown.set(true); + this.searchChanged.emit(filter); + + if (filter.length >= this.minSearchLength()) { + this.searchSubject.next(filter); + } else { + this.searchResults.set([]); + } + } + + onSearchFocus() { + this.showDropdown.set(true); + const currentFilter = this.displayValue() || ''; + if (currentFilter.length >= this.minSearchLength()) { + this.performSearch(currentFilter); + } + } + + onSearchBlur(event: FocusEvent) { + const relatedTarget = event.relatedTarget as HTMLElement; + if (!relatedTarget?.closest('.abp-lookup-dropdown')) { + this.showDropdown.set(false); + } + } + + selectItem(item: T) { + const displayKeyValue = String(item[this.displayKey()] ?? ''); + const valueKeyValue = String(item[this.valueKey()] ?? ''); + + this.displayValue.set(displayKeyValue); + this.selectedValue.set(valueKeyValue); + this.searchResults.set([]); + this.showDropdown.set(false); + this.itemSelected.emit(item); + } + + clearSelection() { + this.displayValue.set(''); + this.selectedValue.set(''); + this.searchResults.set([]); + } + + private performSearch(filter: string) { + this.isLoading.set(true); + + this.searchFn()(filter).pipe( + takeUntil(this.destroy$) + ).subscribe({ + next: results => { + this.searchResults.set(results); + this.isLoading.set(false); + }, + error: () => { + this.searchResults.set([]); + this.isLoading.set(false); + } + }); + } + + getDisplayValue(item: T): string { + return String(item[this.displayKey()] ?? item[this.valueKey()] ?? ''); + } +} diff --git a/npm/ng-packs/packages/components/lookup/src/public-api.ts b/npm/ng-packs/packages/components/lookup/src/public-api.ts new file mode 100644 index 0000000000..b1232ef08f --- /dev/null +++ b/npm/ng-packs/packages/components/lookup/src/public-api.ts @@ -0,0 +1 @@ +export * from './lib/lookup-search.component'; diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.html index 55e7000f27..41740a1f64 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.html +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.html @@ -1,15 +1,4 @@ -
- - - @if (state.searchResults().length > 0 && state.showDropdown()) { -
- @for (result of state.searchResults(); track result.providerKey) { - - } -
- } -
\ No newline at end of file + \ No newline at end of file diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts index 57bbf8600a..d8f626db54 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts @@ -1,14 +1,19 @@ -import { Component, input, inject, output, OnInit, OnDestroy, ChangeDetectionStrategy } from '@angular/core'; -import { FormsModule } from '@angular/forms'; +import { Component, input, inject, OnInit, OnDestroy, ChangeDetectionStrategy } from '@angular/core'; import { LocalizationPipe } from '@abp/ng.core'; import { PermissionsService, SearchProviderKeyInfo } from '@abp/ng.permission-management/proxy'; -import { Subject, debounceTime, distinctUntilChanged, takeUntil } from 'rxjs'; +import { LookupSearchComponent, LookupItem } from '@abp/ng.components/lookup'; +import { Observable, map, Subject, takeUntil } from 'rxjs'; import { ResourcePermissionStateService } from '../../../services/resource-permission-state.service'; +interface ProviderKeyLookupItem extends LookupItem { + providerKey: string; + providerDisplayName?: string; +} + @Component({ selector: 'abp-provider-key-search', templateUrl: './provider-key-search.component.html', - imports: [FormsModule, LocalizationPipe], + imports: [LocalizationPipe, LookupSearchComponent], changeDetection: ChangeDetectionStrategy.OnPush, }) export class ProviderKeySearchComponent implements OnInit, OnDestroy { @@ -17,19 +22,12 @@ export class ProviderKeySearchComponent implements OnInit, OnDestroy { readonly resourceName = input.required(); - readonly keySelected = output(); - - private readonly searchSubject = new Subject(); private readonly destroy$ = new Subject(); + searchFn: (filter: string) => Observable = () => new Observable(); + ngOnInit() { - this.searchSubject.pipe( - debounceTime(300), - distinctUntilChanged(), - takeUntil(this.destroy$) - ).subscribe(filter => { - this.loadProviderKeys(filter); - }); + this.searchFn = (filter: string) => this.loadProviderKeys(filter); } ngOnDestroy() { @@ -37,40 +35,33 @@ export class ProviderKeySearchComponent implements OnInit, OnDestroy { this.destroy$.complete(); } - onSearchInput(filter: string) { - this.state.searchFilter.set(filter); - this.state.showDropdown.set(true); - this.searchSubject.next(filter); - } - - onSearchFocus() { - this.state.showDropdown.set(true); - this.loadProviderKeys(this.state.searchFilter() || ''); + onItemSelected(item: ProviderKeyLookupItem) { + // State is already updated via displayValue and selectedValue bindings + // This handler can be used for additional side effects if needed } - onSearchBlur(event: FocusEvent) { - const relatedTarget = event.relatedTarget as HTMLElement; - if (!relatedTarget?.closest('.list-group')) { - this.state.showDropdown.set(false); - } - } - - selectProviderKey(key: SearchProviderKeyInfo) { - this.state.selectProviderKey(key); - this.keySelected.emit(key); - } - - private loadProviderKeys(filter: string) { + private loadProviderKeys(filter: string): Observable { const providerName = this.state.selectedProviderName(); - if (!providerName) return; + if (!providerName) { + return new Observable(subscriber => { + subscriber.next([]); + subscriber.complete(); + }); + } - this.service.searchResourceProviderKey( + return this.service.searchResourceProviderKey( this.resourceName(), providerName, filter, 1 - ).subscribe(res => { - this.state.searchResults.set(res.keys || []); - }); + ).pipe( + map(res => (res.keys || []).map(k => ({ + key: k.providerKey || '', + displayName: k.providerDisplayName || k.providerKey || '', + providerKey: k.providerKey || '', + providerDisplayName: k.providerDisplayName || undefined, + }))), + takeUntil(this.destroy$) + ); } } diff --git a/npm/ng-packs/tsconfig.base.json b/npm/ng-packs/tsconfig.base.json index f863f18520..07ab8e8ef4 100644 --- a/npm/ng-packs/tsconfig.base.json +++ b/npm/ng-packs/tsconfig.base.json @@ -10,45 +10,114 @@ "importHelpers": true, "target": "es2020", "module": "esnext", - "lib": ["es2020", "dom"], + "lib": [ + "es2020", + "dom" + ], "esModuleInterop": true, "baseUrl": "./", "allowSyntheticDefaultImports": true, "paths": { - "@abp/ng.account": ["packages/account/src/public-api.ts"], - "@abp/ng.account.core": ["packages/account-core/src/public-api.ts"], - "@abp/ng.account.core/proxy": ["packages/account-core/proxy/src/public-api.ts"], - "@abp/ng.account/config": ["packages/account/config/src/public-api.ts"], - "@abp/ng.components": ["packages/components/src/public-api.ts"], - "@abp/ng.components/chart.js": ["packages/components/chart.js/src/public-api.ts"], - "@abp/ng.components/extensible": ["packages/components/extensible/src/public-api.ts"], - "@abp/ng.components/page": ["packages/components/page/src/public-api.ts"], - "@abp/ng.components/tree": ["packages/components/tree/src/public-api.ts"], - "@abp/ng.core": ["packages/core/src/public-api.ts"], - "@abp/ng.core/locale": ["packages/core/locale/src/public-api.ts"], - "@abp/ng.core/testing": ["packages/core/testing/src/public-api.ts"], - "@abp/ng.feature-management": ["packages/feature-management/src/public-api.ts"], - "@abp/ng.feature-management/proxy": ["packages/feature-management/proxy/src/public-api.ts"], - "@abp/ng.identity": ["packages/identity/src/public-api.ts"], - "@abp/ng.identity/config": ["packages/identity/config/src/public-api.ts"], - "@abp/ng.identity/proxy": ["packages/identity/proxy/src/public-api.ts"], - "@abp/ng.oauth": ["packages/oauth/src/public-api.ts"], - "@abp/ng.permission-management": ["packages/permission-management/src/public-api.ts"], + "@abp/ng.account": [ + "packages/account/src/public-api.ts" + ], + "@abp/ng.account.core": [ + "packages/account-core/src/public-api.ts" + ], + "@abp/ng.account.core/proxy": [ + "packages/account-core/proxy/src/public-api.ts" + ], + "@abp/ng.account/config": [ + "packages/account/config/src/public-api.ts" + ], + "@abp/ng.components": [ + "packages/components/src/public-api.ts" + ], + "@abp/ng.components/chart.js": [ + "packages/components/chart.js/src/public-api.ts" + ], + "@abp/ng.components/extensible": [ + "packages/components/extensible/src/public-api.ts" + ], + "@abp/ng.components/lookup": [ + "packages/components/lookup/src/public-api.ts" + ], + "@abp/ng.components/page": [ + "packages/components/page/src/public-api.ts" + ], + "@abp/ng.components/tree": [ + "packages/components/tree/src/public-api.ts" + ], + "@abp/ng.core": [ + "packages/core/src/public-api.ts" + ], + "@abp/ng.core/locale": [ + "packages/core/locale/src/public-api.ts" + ], + "@abp/ng.core/testing": [ + "packages/core/testing/src/public-api.ts" + ], + "@abp/ng.feature-management": [ + "packages/feature-management/src/public-api.ts" + ], + "@abp/ng.feature-management/proxy": [ + "packages/feature-management/proxy/src/public-api.ts" + ], + "@abp/ng.identity": [ + "packages/identity/src/public-api.ts" + ], + "@abp/ng.identity/config": [ + "packages/identity/config/src/public-api.ts" + ], + "@abp/ng.identity/proxy": [ + "packages/identity/proxy/src/public-api.ts" + ], + "@abp/ng.oauth": [ + "packages/oauth/src/public-api.ts" + ], + "@abp/ng.permission-management": [ + "packages/permission-management/src/public-api.ts" + ], "@abp/ng.permission-management/proxy": [ "packages/permission-management/proxy/src/public-api.ts" ], - "@abp/ng.setting-management": ["packages/setting-management/src/public-api.ts"], - "@abp/ng.setting-management/config": ["packages/setting-management/config/src/public-api.ts"], - "@abp/ng.setting-management/proxy": ["packages/setting-management/proxy/src/public-api.ts"], - "@abp/ng.tenant-management": ["packages/tenant-management/src/public-api.ts"], - "@abp/ng.tenant-management/config": ["packages/tenant-management/config/src/public-api.ts"], - "@abp/ng.tenant-management/proxy": ["packages/tenant-management/proxy/src/public-api.ts"], - "@abp/ng.theme.basic": ["packages/theme-basic/src/public-api.ts"], - "@abp/ng.theme.basic/testing": ["packages/theme-basic/testing/src/public-api.ts"], - "@abp/ng.theme.shared": ["packages/theme-shared/src/public-api.ts"], - "@abp/ng.theme.shared/testing": ["packages/theme-shared/testing/src/public-api.ts"], - "@abp/nx.generators": ["packages/generators/src/index.ts"] + "@abp/ng.setting-management": [ + "packages/setting-management/src/public-api.ts" + ], + "@abp/ng.setting-management/config": [ + "packages/setting-management/config/src/public-api.ts" + ], + "@abp/ng.setting-management/proxy": [ + "packages/setting-management/proxy/src/public-api.ts" + ], + "@abp/ng.tenant-management": [ + "packages/tenant-management/src/public-api.ts" + ], + "@abp/ng.tenant-management/config": [ + "packages/tenant-management/config/src/public-api.ts" + ], + "@abp/ng.tenant-management/proxy": [ + "packages/tenant-management/proxy/src/public-api.ts" + ], + "@abp/ng.theme.basic": [ + "packages/theme-basic/src/public-api.ts" + ], + "@abp/ng.theme.basic/testing": [ + "packages/theme-basic/testing/src/public-api.ts" + ], + "@abp/ng.theme.shared": [ + "packages/theme-shared/src/public-api.ts" + ], + "@abp/ng.theme.shared/testing": [ + "packages/theme-shared/testing/src/public-api.ts" + ], + "@abp/nx.generators": [ + "packages/generators/src/index.ts" + ] } }, - "exclude": ["node_modules", "tmp"] -} + "exclude": [ + "node_modules", + "tmp" + ] +} \ No newline at end of file From ae6ca7a38e8cd625814abbd1f08989e017c608d7 Mon Sep 17 00:00:00 2001 From: Fahri Gedik Date: Wed, 24 Dec 2025 13:15:34 +0300 Subject: [PATCH 11/15] Refactor view modes to use enum in permission management Replaced string literals for view modes with the new eResourcePermissionViewModes enum across components and services. This improves type safety and maintainability. Added the enum definition in a new file. --- .../lookup/src/lib/lookup-search.component.ts | 7 +------ .../provider-key-search.component.ts | 5 ++--- .../resource-permission-form.component.html | 2 +- .../resource-permission-form.component.ts | 6 ++++-- ...ource-permission-management.component.html | 10 +++++----- ...esource-permission-management.component.ts | 6 ++++-- .../src/lib/enums/view-modes.ts | 5 +++++ .../resource-permission-state.service.ts | 19 +++++++++---------- 8 files changed, 31 insertions(+), 29 deletions(-) create mode 100644 npm/ng-packs/packages/permission-management/src/lib/enums/view-modes.ts diff --git a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts index 17f30f83a8..80770839bf 100644 --- a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts +++ b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts @@ -30,7 +30,7 @@ export type LookupSearchFn = (filter: string) => Observable changeDetection: ChangeDetectionStrategy.OnPush, }) export class LookupSearchComponent implements OnInit, OnDestroy { - // Inputs + readonly label = input(); readonly placeholder = input(''); readonly debounceTime = input(300); @@ -39,22 +39,17 @@ export class LookupSearchComponent implements readonly valueKey = input('key' as keyof T); readonly disabled = input(false); - // Search function - should be provided by parent readonly searchFn = input>(() => of([])); - // Two-way binding for selected value readonly selectedValue = model(''); readonly displayValue = model(''); - // Outputs readonly itemSelected = output(); readonly searchChanged = output(); - // Custom templates readonly itemTemplate = contentChild>('itemTemplate'); readonly noResultsTemplate = contentChild>('noResultsTemplate'); - // Internal state readonly searchResults = signal([]); readonly showDropdown = signal(false); readonly isLoading = signal(false); diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts index d8f626db54..1e7e54b88c 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts @@ -1,6 +1,5 @@ import { Component, input, inject, OnInit, OnDestroy, ChangeDetectionStrategy } from '@angular/core'; -import { LocalizationPipe } from '@abp/ng.core'; -import { PermissionsService, SearchProviderKeyInfo } from '@abp/ng.permission-management/proxy'; +import { PermissionsService } from '@abp/ng.permission-management/proxy'; import { LookupSearchComponent, LookupItem } from '@abp/ng.components/lookup'; import { Observable, map, Subject, takeUntil } from 'rxjs'; import { ResourcePermissionStateService } from '../../../services/resource-permission-state.service'; @@ -13,7 +12,7 @@ interface ProviderKeyLookupItem extends LookupItem { @Component({ selector: 'abp-provider-key-search', templateUrl: './provider-key-search.component.html', - imports: [LocalizationPipe, LookupSearchComponent], + imports: [LookupSearchComponent], changeDetection: ChangeDetectionStrategy.OnPush, }) export class ProviderKeySearchComponent implements OnInit, OnDestroy { diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.html index b2018b6c7c..ed1feb243c 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.html +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-form/resource-permission-form.component.html @@ -1,4 +1,4 @@ -@if (mode() === 'add') { +@if (mode() === eResourcePermissionViewModes.Add) {
} @else { @switch (state.viewMode()) { - @case ('list') { + @case (eResourcePermissionViewModes.List) { } - @case ('add') { + @case (eResourcePermissionViewModes.Add) { } - @case ('edit') { + @case (eResourcePermissionViewModes.Edit) { } } diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts index 18b810fd51..c38d6036ee 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts @@ -24,6 +24,8 @@ import { ResourcePermissionStateService } from '../../services/resource-permissi import { ResourcePermissionListComponent } from './resource-permission-list/resource-permission-list.component'; import { ResourcePermissionFormComponent } from './resource-permission-form/resource-permission-form.component'; +import { eResourcePermissionViewModes } from '../../enums/view-modes'; + @Component({ selector: 'abp-resource-permission-management', templateUrl: './resource-permission-management.component.html', @@ -39,6 +41,8 @@ import { ResourcePermissionFormComponent } from './resource-permission-form/reso ], }) export class ResourcePermissionManagementComponent implements OnInit { + readonly eResourcePermissionViewModes = eResourcePermissionViewModes; + protected readonly service = inject(PermissionsService); protected readonly toasterService = inject(ToasterService); protected readonly confirmationService = inject(ConfirmationService); @@ -54,14 +58,12 @@ export class ResourcePermissionManagementComponent implements OnInit { private previousVisible = false; constructor() { - // Sync input values to state effect(() => { this.state.resourceName.set(this.resourceName()); this.state.resourceKey.set(this.resourceKey()); this.state.resourceDisplayName.set(this.resourceDisplayName()); }); - // Handle visibility changes effect(() => { const isVisible = this.visible(); if (isVisible && !this.previousVisible) { diff --git a/npm/ng-packs/packages/permission-management/src/lib/enums/view-modes.ts b/npm/ng-packs/packages/permission-management/src/lib/enums/view-modes.ts new file mode 100644 index 0000000000..4611dda210 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/enums/view-modes.ts @@ -0,0 +1,5 @@ +export enum eResourcePermissionViewModes { + List = 'list', + Add = 'add', + Edit = 'edit', +} diff --git a/npm/ng-packs/packages/permission-management/src/lib/services/resource-permission-state.service.ts b/npm/ng-packs/packages/permission-management/src/lib/services/resource-permission-state.service.ts index 8fa2daeda5..e27bcd10c4 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/services/resource-permission-state.service.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/services/resource-permission-state.service.ts @@ -6,13 +6,12 @@ import { SearchProviderKeyInfo, ResourcePermissionWithProdiverGrantInfoDto, } from '@abp/ng.permission-management/proxy'; - -export type ViewMode = 'list' | 'add' | 'edit'; +import { eResourcePermissionViewModes } from '../enums/view-modes'; @Injectable() export class ResourcePermissionStateService { // View state - readonly viewMode = signal('list'); + readonly viewMode = signal(eResourcePermissionViewModes.List); readonly modalBusy = signal(false); readonly hasResourcePermission = signal(false); readonly hasProviderKeyLookupService = signal(false); @@ -45,9 +44,9 @@ export class ResourcePermissionStateService { readonly showDropdown = signal(false); // Computed properties - readonly isAddMode = computed(() => this.viewMode() === 'add'); - readonly isEditMode = computed(() => this.viewMode() === 'edit'); - readonly isListMode = computed(() => this.viewMode() === 'list'); + readonly isAddMode = computed(() => this.viewMode() === eResourcePermissionViewModes.Add); + readonly isEditMode = computed(() => this.viewMode() === eResourcePermissionViewModes.Edit); + readonly isListMode = computed(() => this.viewMode() === eResourcePermissionViewModes.List); readonly currentPermissionsList = computed(() => this.isAddMode() ? this.permissionDefinitions() : this.permissionsWithProvider() @@ -68,12 +67,12 @@ export class ResourcePermissionStateService { // State transition methods goToListMode() { - this.viewMode.set('list'); + this.viewMode.set(eResourcePermissionViewModes.List); this.selectedPermissions.set([]); } goToAddMode() { - this.viewMode.set('add'); + this.viewMode.set(eResourcePermissionViewModes.Add); this.selectedPermissions.set([]); this.selectedProviderKey.set(''); this.searchResults.set([]); @@ -90,7 +89,7 @@ export class ResourcePermissionStateService { this.selectedPermissions.set( permissions.filter(p => p.isGranted).map(p => p.name || '') ); - this.viewMode.set('edit'); + this.viewMode.set(eResourcePermissionViewModes.Edit); } // Permission selection methods @@ -131,7 +130,7 @@ export class ResourcePermissionStateService { // Reset all state reset() { - this.viewMode.set('list'); + this.viewMode.set(eResourcePermissionViewModes.List); this.allResourcePermissions.set([]); this.resourcePermissions.set([]); this.totalCount.set(0); From 9d94ef2c599a3ac1b4bd886d81d7c4b0b8558993 Mon Sep 17 00:00:00 2001 From: sumeyye Date: Thu, 25 Dec 2025 12:00:14 +0300 Subject: [PATCH 12/15] update: self-closing tag usage --- .../src/lib/lookup-search.component.html | 78 ++++++++++++------- .../resource-permission-list.component.html | 51 +++++++----- 2 files changed, 80 insertions(+), 49 deletions(-) diff --git a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html index 6dd240c996..23e812717c 100644 --- a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html +++ b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html @@ -1,46 +1,64 @@
- @if (label()) { + @if (label()) { - } + } -
- - @if (displayValue() && !disabled()) { - - } -
+
+ + @if (displayValue() && !disabled()) { + + } +
- @if (showDropdown() && !disabled()) { -
- @if (isLoading()) { + @if (showDropdown() && !disabled()) { +
+ @if (isLoading()) {
- - {{ 'AbpUi::Loading' | abpLocalization }} + + {{ 'AbpUi::Loading' | abpLocalization }}
- } @else if (searchResults().length > 0) { + } @else if (searchResults().length > 0) { @for (item of searchResults(); track item.key) { - + } - } @else if (displayValue()) { + } @else if (displayValue()) { @if (noResultsTemplate()) { - + } @else { -
+
{{ 'AbpUi::NoRecordsFound' | abpLocalization }} -
- } +
} + }
- } -
\ No newline at end of file + } +
diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.html index bdde5056b2..a00c909aff 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.html +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-list/resource-permission-list.component.html @@ -1,28 +1,41 @@
- +
-
- - -
+
+ + +
@if (state.resourcePermissions().length > 0) { - + } @else { -
+
{{ 'AbpPermissionManagement::NoPermissionsAssigned' | abpLocalization }} -
-} \ No newline at end of file +
+} From 463132553e7f01394984d8f895f4c01cee51111a Mon Sep 17 00:00:00 2001 From: sumeyye Date: Thu, 25 Dec 2025 12:00:34 +0300 Subject: [PATCH 13/15] add: index file for enums --- .../packages/permission-management/src/lib/enums/index.ts | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 npm/ng-packs/packages/permission-management/src/lib/enums/index.ts diff --git a/npm/ng-packs/packages/permission-management/src/lib/enums/index.ts b/npm/ng-packs/packages/permission-management/src/lib/enums/index.ts new file mode 100644 index 0000000000..df29235e5b --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/enums/index.ts @@ -0,0 +1,2 @@ +export * from './view-modes'; +export * from './components'; From 4fe44e846fcb690aec073056fbf5121f93354ec0 Mon Sep 17 00:00:00 2001 From: sumeyye Date: Thu, 25 Dec 2025 12:00:55 +0300 Subject: [PATCH 14/15] update: auto-save changes --- npm/ng-packs/tsconfig.base.json | 136 ++++++++------------------------ 1 file changed, 34 insertions(+), 102 deletions(-) diff --git a/npm/ng-packs/tsconfig.base.json b/npm/ng-packs/tsconfig.base.json index 07ab8e8ef4..943b41780c 100644 --- a/npm/ng-packs/tsconfig.base.json +++ b/npm/ng-packs/tsconfig.base.json @@ -10,114 +10,46 @@ "importHelpers": true, "target": "es2020", "module": "esnext", - "lib": [ - "es2020", - "dom" - ], + "lib": ["es2020", "dom"], "esModuleInterop": true, "baseUrl": "./", "allowSyntheticDefaultImports": true, "paths": { - "@abp/ng.account": [ - "packages/account/src/public-api.ts" - ], - "@abp/ng.account.core": [ - "packages/account-core/src/public-api.ts" - ], - "@abp/ng.account.core/proxy": [ - "packages/account-core/proxy/src/public-api.ts" - ], - "@abp/ng.account/config": [ - "packages/account/config/src/public-api.ts" - ], - "@abp/ng.components": [ - "packages/components/src/public-api.ts" - ], - "@abp/ng.components/chart.js": [ - "packages/components/chart.js/src/public-api.ts" - ], - "@abp/ng.components/extensible": [ - "packages/components/extensible/src/public-api.ts" - ], - "@abp/ng.components/lookup": [ - "packages/components/lookup/src/public-api.ts" - ], - "@abp/ng.components/page": [ - "packages/components/page/src/public-api.ts" - ], - "@abp/ng.components/tree": [ - "packages/components/tree/src/public-api.ts" - ], - "@abp/ng.core": [ - "packages/core/src/public-api.ts" - ], - "@abp/ng.core/locale": [ - "packages/core/locale/src/public-api.ts" - ], - "@abp/ng.core/testing": [ - "packages/core/testing/src/public-api.ts" - ], - "@abp/ng.feature-management": [ - "packages/feature-management/src/public-api.ts" - ], - "@abp/ng.feature-management/proxy": [ - "packages/feature-management/proxy/src/public-api.ts" - ], - "@abp/ng.identity": [ - "packages/identity/src/public-api.ts" - ], - "@abp/ng.identity/config": [ - "packages/identity/config/src/public-api.ts" - ], - "@abp/ng.identity/proxy": [ - "packages/identity/proxy/src/public-api.ts" - ], - "@abp/ng.oauth": [ - "packages/oauth/src/public-api.ts" - ], - "@abp/ng.permission-management": [ - "packages/permission-management/src/public-api.ts" - ], + "@abp/ng.account": ["packages/account/src/public-api.ts"], + "@abp/ng.account.core": ["packages/account-core/src/public-api.ts"], + "@abp/ng.account.core/proxy": ["packages/account-core/proxy/src/public-api.ts"], + "@abp/ng.account/config": ["packages/account/config/src/public-api.ts"], + "@abp/ng.components": ["packages/components/src/public-api.ts"], + "@abp/ng.components/chart.js": ["packages/components/chart.js/src/public-api.ts"], + "@abp/ng.components/extensible": ["packages/components/extensible/src/public-api.ts"], + "@abp/ng.components/lookup": ["packages/components/lookup/src/public-api.ts"], + "@abp/ng.components/page": ["packages/components/page/src/public-api.ts"], + "@abp/ng.components/tree": ["packages/components/tree/src/public-api.ts"], + "@abp/ng.core": ["packages/core/src/public-api.ts"], + "@abp/ng.core/locale": ["packages/core/locale/src/public-api.ts"], + "@abp/ng.core/testing": ["packages/core/testing/src/public-api.ts"], + "@abp/ng.feature-management": ["packages/feature-management/src/public-api.ts"], + "@abp/ng.feature-management/proxy": ["packages/feature-management/proxy/src/public-api.ts"], + "@abp/ng.identity": ["packages/identity/src/public-api.ts"], + "@abp/ng.identity/config": ["packages/identity/config/src/public-api.ts"], + "@abp/ng.identity/proxy": ["packages/identity/proxy/src/public-api.ts"], + "@abp/ng.oauth": ["packages/oauth/src/public-api.ts"], + "@abp/ng.permission-management": ["packages/permission-management/src/public-api.ts"], "@abp/ng.permission-management/proxy": [ "packages/permission-management/proxy/src/public-api.ts" ], - "@abp/ng.setting-management": [ - "packages/setting-management/src/public-api.ts" - ], - "@abp/ng.setting-management/config": [ - "packages/setting-management/config/src/public-api.ts" - ], - "@abp/ng.setting-management/proxy": [ - "packages/setting-management/proxy/src/public-api.ts" - ], - "@abp/ng.tenant-management": [ - "packages/tenant-management/src/public-api.ts" - ], - "@abp/ng.tenant-management/config": [ - "packages/tenant-management/config/src/public-api.ts" - ], - "@abp/ng.tenant-management/proxy": [ - "packages/tenant-management/proxy/src/public-api.ts" - ], - "@abp/ng.theme.basic": [ - "packages/theme-basic/src/public-api.ts" - ], - "@abp/ng.theme.basic/testing": [ - "packages/theme-basic/testing/src/public-api.ts" - ], - "@abp/ng.theme.shared": [ - "packages/theme-shared/src/public-api.ts" - ], - "@abp/ng.theme.shared/testing": [ - "packages/theme-shared/testing/src/public-api.ts" - ], - "@abp/nx.generators": [ - "packages/generators/src/index.ts" - ] + "@abp/ng.setting-management": ["packages/setting-management/src/public-api.ts"], + "@abp/ng.setting-management/config": ["packages/setting-management/config/src/public-api.ts"], + "@abp/ng.setting-management/proxy": ["packages/setting-management/proxy/src/public-api.ts"], + "@abp/ng.tenant-management": ["packages/tenant-management/src/public-api.ts"], + "@abp/ng.tenant-management/config": ["packages/tenant-management/config/src/public-api.ts"], + "@abp/ng.tenant-management/proxy": ["packages/tenant-management/proxy/src/public-api.ts"], + "@abp/ng.theme.basic": ["packages/theme-basic/src/public-api.ts"], + "@abp/ng.theme.basic/testing": ["packages/theme-basic/testing/src/public-api.ts"], + "@abp/ng.theme.shared": ["packages/theme-shared/src/public-api.ts"], + "@abp/ng.theme.shared/testing": ["packages/theme-shared/testing/src/public-api.ts"], + "@abp/nx.generators": ["packages/generators/src/index.ts"] } }, - "exclude": [ - "node_modules", - "tmp" - ] -} \ No newline at end of file + "exclude": ["node_modules", "tmp"] +} From faf4ea1bda24c4f0eb4441e95bde43d8718ca821 Mon Sep 17 00:00:00 2001 From: Fahri Gedik <53567152+fahrigedik@users.noreply.github.com> Date: Thu, 25 Dec 2025 15:40:27 +0300 Subject: [PATCH 15/15] Refactor lookup and permission components, add styles Refactored lookup-search and permission-checkbox-list components to use SCSS for dropdown and list container styling. Improved resource permission management component with signals and untracked for state updates, and replaced manual destroy logic with Angular's DestroyRef and takeUntilDestroyed. Updated HTML templates for better readability and accessibility. --- .../src/lib/lookup-search.component.html | 83 +++++++------------ .../src/lib/lookup-search.component.scss | 5 ++ .../lookup/src/lib/lookup-search.component.ts | 23 +++-- .../permission-checkbox-list.component.html | 10 +-- .../permission-checkbox-list.component.scss | 4 + .../permission-checkbox-list.component.ts | 1 + .../provider-key-search.component.ts | 17 ++-- ...esource-permission-management.component.ts | 29 +++++-- 8 files changed, 83 insertions(+), 89 deletions(-) create mode 100644 npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.scss create mode 100644 npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.scss diff --git a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html index 23e812717c..e795025aec 100644 --- a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html +++ b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.html @@ -1,64 +1,45 @@
@if (label()) { - + }
- + @if (displayValue() && !disabled()) { - + }
@if (showDropdown() && !disabled()) { -
- @if (isLoading()) { -
- - {{ 'AbpUi::Loading' | abpLocalization }} -
- } @else if (searchResults().length > 0) { - @for (item of searchResults(); track item.key) { - - } - } @else if (displayValue()) { - @if (noResultsTemplate()) { - - } @else { -
- {{ 'AbpUi::NoRecordsFound' | abpLocalization }} -
- } +
+ @if (isLoading()) { +
+ + {{ 'AbpUi::Loading' | abpLocalization }} +
+ } @else if (searchResults().length > 0) { + @for (item of searchResults(); track item.key) { + + } + } @else if (displayValue()) { + @if (noResultsTemplate()) { + + } @else { +
+ {{ 'AbpUi::NoRecordsFound' | abpLocalization }}
+ } + } +
} -
+
\ No newline at end of file diff --git a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.scss b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.scss new file mode 100644 index 0000000000..6fd1e2dc26 --- /dev/null +++ b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.scss @@ -0,0 +1,5 @@ +.abp-lookup-dropdown { + z-index: 1050; + max-height: 200px; + overflow-y: auto; +} diff --git a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts index 80770839bf..9633b15ab8 100644 --- a/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts +++ b/npm/ng-packs/packages/components/lookup/src/lib/lookup-search.component.ts @@ -5,15 +5,17 @@ import { model, signal, OnInit, - OnDestroy, ChangeDetectionStrategy, TemplateRef, contentChild, + DestroyRef, + inject, } from '@angular/core'; +import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; import { LocalizationPipe } from '@abp/ng.core'; -import { Subject, Observable, debounceTime, distinctUntilChanged, takeUntil, of } from 'rxjs'; +import { Subject, Observable, debounceTime, distinctUntilChanged, of, finalize } from 'rxjs'; export interface LookupItem { key: string; @@ -26,10 +28,12 @@ export type LookupSearchFn = (filter: string) => Observable @Component({ selector: 'abp-lookup-search', templateUrl: './lookup-search.component.html', + styleUrl: './lookup-search.component.scss', imports: [CommonModule, FormsModule, LocalizationPipe], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class LookupSearchComponent implements OnInit, OnDestroy { +export class LookupSearchComponent implements OnInit { + private readonly destroyRef = inject(DestroyRef); readonly label = input(); readonly placeholder = input(''); @@ -55,23 +59,17 @@ export class LookupSearchComponent implements readonly isLoading = signal(false); private readonly searchSubject = new Subject(); - private readonly destroy$ = new Subject(); ngOnInit() { this.searchSubject.pipe( debounceTime(this.debounceTime()), distinctUntilChanged(), - takeUntil(this.destroy$) + takeUntilDestroyed(this.destroyRef) ).subscribe(filter => { this.performSearch(filter); }); } - ngOnDestroy() { - this.destroy$.next(); - this.destroy$.complete(); - } - onSearchInput(filter: string) { this.displayValue.set(filter); this.showDropdown.set(true); @@ -120,15 +118,14 @@ export class LookupSearchComponent implements this.isLoading.set(true); this.searchFn()(filter).pipe( - takeUntil(this.destroy$) + takeUntilDestroyed(this.destroyRef), + finalize(() => this.isLoading.set(false)) ).subscribe({ next: results => { this.searchResults.set(results); - this.isLoading.set(false); }, error: () => { this.searchResults.set([]); - this.isLoading.set(false); } }); } diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.html index 87c8f27d70..07db143b00 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.html +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.html @@ -3,20 +3,20 @@
{{ title() | abpLocalization }}
}
- -
-
+
@for (perm of permissions(); track perm.name) {
- -
diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.scss b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.scss new file mode 100644 index 0000000000..0562864716 --- /dev/null +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.scss @@ -0,0 +1,4 @@ +.abp-permission-list-container { + max-height: 300px; + overflow-y: auto; +} \ No newline at end of file diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts index fe36cbb800..26c5a314f9 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/permission-checkbox-list/permission-checkbox-list.component.ts @@ -10,6 +10,7 @@ interface PermissionItem { @Component({ selector: 'abp-permission-checkbox-list', templateUrl: './permission-checkbox-list.component.html', + styleUrl: './permission-checkbox-list.component.scss', imports: [LocalizationPipe], changeDetection: ChangeDetectionStrategy.OnPush, }) diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts index 1e7e54b88c..0aceed0c5f 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/provider-key-search/provider-key-search.component.ts @@ -1,7 +1,8 @@ -import { Component, input, inject, OnInit, OnDestroy, ChangeDetectionStrategy } from '@angular/core'; +import { Component, input, inject, OnInit, ChangeDetectionStrategy, DestroyRef } from '@angular/core'; +import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { PermissionsService } from '@abp/ng.permission-management/proxy'; import { LookupSearchComponent, LookupItem } from '@abp/ng.components/lookup'; -import { Observable, map, Subject, takeUntil } from 'rxjs'; +import { Observable, map } from 'rxjs'; import { ResourcePermissionStateService } from '../../../services/resource-permission-state.service'; interface ProviderKeyLookupItem extends LookupItem { @@ -15,25 +16,19 @@ interface ProviderKeyLookupItem extends LookupItem { imports: [LookupSearchComponent], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class ProviderKeySearchComponent implements OnInit, OnDestroy { +export class ProviderKeySearchComponent implements OnInit { readonly state = inject(ResourcePermissionStateService); private readonly service = inject(PermissionsService); + private readonly destroyRef = inject(DestroyRef); readonly resourceName = input.required(); - private readonly destroy$ = new Subject(); - searchFn: (filter: string) => Observable = () => new Observable(); ngOnInit() { this.searchFn = (filter: string) => this.loadProviderKeys(filter); } - ngOnDestroy() { - this.destroy$.next(); - this.destroy$.complete(); - } - onItemSelected(item: ProviderKeyLookupItem) { // State is already updated via displayValue and selectedValue bindings // This handler can be used for additional side effects if needed @@ -60,7 +55,7 @@ export class ProviderKeySearchComponent implements OnInit, OnDestroy { providerKey: k.providerKey || '', providerDisplayName: k.providerDisplayName || undefined, }))), - takeUntil(this.destroy$) + takeUntilDestroyed(this.destroyRef) ); } } diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts index c38d6036ee..fc534f128d 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/resource-permission-management/resource-permission-management.component.ts @@ -18,6 +18,8 @@ import { model, OnInit, effect, + untracked, + signal, } from '@angular/core'; import { finalize, switchMap, of } from 'rxjs'; import { ResourcePermissionStateService } from '../../services/resource-permission-state.service'; @@ -26,6 +28,8 @@ import { ResourcePermissionFormComponent } from './resource-permission-form/reso import { eResourcePermissionViewModes } from '../../enums/view-modes'; +const DEFAULT_MAX_RESULT_COUNT = 10; + @Component({ selector: 'abp-resource-permission-management', templateUrl: './resource-permission-management.component.html', @@ -55,33 +59,40 @@ export class ResourcePermissionManagementComponent implements OnInit { readonly visible = model(false); - private previousVisible = false; + private readonly previousVisible = signal(false); constructor() { effect(() => { - this.state.resourceName.set(this.resourceName()); - this.state.resourceKey.set(this.resourceKey()); - this.state.resourceDisplayName.set(this.resourceDisplayName()); + const resourceName = this.resourceName(); + const resourceKey = this.resourceKey(); + const resourceDisplayName = this.resourceDisplayName(); + + untracked(() => { + this.state.resourceName.set(resourceName); + this.state.resourceKey.set(resourceKey); + this.state.resourceDisplayName.set(resourceDisplayName); + }); }); effect(() => { const isVisible = this.visible(); - if (isVisible && !this.previousVisible) { + const wasVisible = this.previousVisible(); + if (isVisible && !wasVisible) { this.openModal(); - } else if (!isVisible && this.previousVisible) { + } else if (!isVisible && wasVisible) { this.state.reset(); } - this.previousVisible = isVisible; + untracked(() => this.previousVisible.set(isVisible)); }); } ngOnInit() { - this.list.maxResultCount = 10; + this.list.maxResultCount = DEFAULT_MAX_RESULT_COUNT; this.list.hookToQuery(query => { const allData = this.state.allResourcePermissions(); const skipCount = query.skipCount || 0; - const maxResultCount = query.maxResultCount || 10; + const maxResultCount = query.maxResultCount || DEFAULT_MAX_RESULT_COUNT; const paginatedData = allData.slice(skipCount, skipCount + maxResultCount);