diff --git a/npm/ng-packs/nx/ng-packs/angular.json b/npm/ng-packs/nx/ng-packs/angular.json
index 9207cd53f3..5a308231cf 100644
--- a/npm/ng-packs/nx/ng-packs/angular.json
+++ b/npm/ng-packs/nx/ng-packs/angular.json
@@ -325,6 +325,47 @@
}
}
},
+ "identity": {
+ "projectType": "library",
+ "root": "packages/identity",
+ "sourceRoot": "packages/identity/src",
+ "prefix": "abp",
+ "architect": {
+ "build": {
+ "builder": "@angular-devkit/build-ng-packagr:build",
+ "options": {
+ "tsConfig": "packages/identity/tsconfig.lib.json",
+ "project": "packages/identity/ng-package.json"
+ },
+ "configurations": {
+ "production": {
+ "tsConfig": "packages/identity/tsconfig.lib.prod.json"
+ },
+ "development": {
+ "tsConfig": "packages/identity/tsconfig.lib.json"
+ }
+ },
+ "defaultConfiguration": "production"
+ },
+ "test": {
+ "builder": "@nrwl/jest:jest",
+ "outputs": ["coverage/packages/identity"],
+ "options": {
+ "jestConfig": "packages/identity/jest.config.js",
+ "passWithNoTests": true
+ }
+ },
+ "lint": {
+ "builder": "@nrwl/linter:eslint",
+ "options": {
+ "lintFilePatterns": [
+ "packages/identity/src/**/*.ts",
+ "packages/identity/src/**/*.html"
+ ]
+ }
+ }
+ }
+ },
"permission-management": {
"projectType": "library",
"root": "packages/permission-management",
diff --git a/npm/ng-packs/nx/ng-packs/nx.json b/npm/ng-packs/nx/ng-packs/nx.json
index 1b3a2842ca..772bdb1a17 100644
--- a/npm/ng-packs/nx/ng-packs/nx.json
+++ b/npm/ng-packs/nx/ng-packs/nx.json
@@ -57,6 +57,10 @@
"tags": [],
"implicitDependencies": ["core", "theme-shared"]
},
+ "identity": {
+ "tags": [],
+ "implicitDependencies": ["core", "theme-shared", "permission-management"]
+ },
"permission-management": {
"tags": [],
"implicitDependencies": ["core", "theme-shared"]
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/.eslintrc.json b/npm/ng-packs/nx/ng-packs/packages/identity/.eslintrc.json
new file mode 100644
index 0000000000..9c51584494
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/.eslintrc.json
@@ -0,0 +1,36 @@
+{
+ "extends": ["../../.eslintrc.json"],
+ "ignorePatterns": ["!**/*"],
+ "overrides": [
+ {
+ "files": ["*.ts"],
+ "extends": [
+ "plugin:@nrwl/nx/angular",
+ "plugin:@angular-eslint/template/process-inline-templates"
+ ],
+ "rules": {
+ "@angular-eslint/directive-selector": [
+ "error",
+ {
+ "type": "attribute",
+ "prefix": "abp",
+ "style": "camelCase"
+ }
+ ],
+ "@angular-eslint/component-selector": [
+ "error",
+ {
+ "type": "element",
+ "prefix": "abp",
+ "style": "kebab-case"
+ }
+ ]
+ }
+ },
+ {
+ "files": ["*.html"],
+ "extends": ["plugin:@nrwl/nx/angular-template"],
+ "rules": {}
+ }
+ ]
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/README.md b/npm/ng-packs/nx/ng-packs/packages/identity/README.md
new file mode 100644
index 0000000000..9f56af796a
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/README.md
@@ -0,0 +1,3 @@
+
@abp/ng.identity
+
+[docs.abp.io](https://docs.abp.io)
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/config/ng-package.json b/npm/ng-packs/nx/ng-packs/packages/identity/config/ng-package.json
new file mode 100644
index 0000000000..1a45764aaf
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/config/ng-package.json
@@ -0,0 +1,7 @@
+{
+ "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json",
+ "dest": "../../../dist/packages/identity/config",
+ "lib": {
+ "entryFile": "src/public-api.ts"
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/config/src/enums/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/enums/index.ts
new file mode 100644
index 0000000000..4a7a6a0e23
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/enums/index.ts
@@ -0,0 +1,2 @@
+export * from './policy-names';
+export * from './route-names';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/config/src/enums/policy-names.ts b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/enums/policy-names.ts
new file mode 100644
index 0000000000..f001c03964
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/enums/policy-names.ts
@@ -0,0 +1,5 @@
+export const enum eIdentityPolicyNames {
+ IdentityManagement = 'AbpIdentity.Roles || AbpIdentity.Users',
+ Roles = 'AbpIdentity.Roles',
+ Users = 'AbpIdentity.Users',
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/config/src/enums/route-names.ts b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/enums/route-names.ts
new file mode 100644
index 0000000000..0452f32f7b
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/enums/route-names.ts
@@ -0,0 +1,5 @@
+export const enum eIdentityRouteNames {
+ IdentityManagement = 'AbpIdentity::Menu:IdentityManagement',
+ Roles = 'AbpIdentity::Roles',
+ Users = 'AbpIdentity::Users',
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/config/src/identity-config.module.ts b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/identity-config.module.ts
new file mode 100644
index 0000000000..745578f69a
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/identity-config.module.ts
@@ -0,0 +1,12 @@
+import { ModuleWithProviders, NgModule } from '@angular/core';
+import { IDENTITY_ROUTE_PROVIDERS } from './providers/route.provider';
+
+@NgModule()
+export class IdentityConfigModule {
+ static forRoot(): ModuleWithProviders {
+ return {
+ ngModule: IdentityConfigModule,
+ providers: [IDENTITY_ROUTE_PROVIDERS],
+ };
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/config/src/providers/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/providers/index.ts
new file mode 100644
index 0000000000..fe08efba8c
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/providers/index.ts
@@ -0,0 +1 @@
+export * from './route.provider';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/config/src/providers/route.provider.ts b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/providers/route.provider.ts
new file mode 100644
index 0000000000..26326138e6
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/providers/route.provider.ts
@@ -0,0 +1,39 @@
+import { eLayoutType, RoutesService } from '@abp/ng.core';
+import { eThemeSharedRouteNames } from '@abp/ng.theme.shared';
+import { APP_INITIALIZER } from '@angular/core';
+import { eIdentityPolicyNames } from '../enums/policy-names';
+import { eIdentityRouteNames } from '../enums/route-names';
+
+export const IDENTITY_ROUTE_PROVIDERS = [
+ { provide: APP_INITIALIZER, useFactory: configureRoutes, deps: [RoutesService], multi: true },
+];
+
+export function configureRoutes(routesService: RoutesService) {
+ return () => {
+ routesService.add([
+ {
+ path: undefined,
+ name: eIdentityRouteNames.IdentityManagement,
+ parentName: eThemeSharedRouteNames.Administration,
+ requiredPolicy: eIdentityPolicyNames.IdentityManagement,
+ iconClass: 'fa fa-id-card-o',
+ layout: eLayoutType.application,
+ order: 1,
+ },
+ {
+ path: '/identity/roles',
+ name: eIdentityRouteNames.Roles,
+ parentName: eIdentityRouteNames.IdentityManagement,
+ requiredPolicy: eIdentityPolicyNames.Roles,
+ order: 1,
+ },
+ {
+ path: '/identity/users',
+ name: eIdentityRouteNames.Users,
+ parentName: eIdentityRouteNames.IdentityManagement,
+ requiredPolicy: eIdentityPolicyNames.Users,
+ order: 2,
+ },
+ ]);
+ };
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/config/src/public-api.ts b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/public-api.ts
new file mode 100644
index 0000000000..1497fe943b
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/config/src/public-api.ts
@@ -0,0 +1,3 @@
+export * from './enums';
+export * from './identity-config.module';
+export * from './providers';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/jest.config.js b/npm/ng-packs/nx/ng-packs/packages/identity/jest.config.js
new file mode 100644
index 0000000000..0ef650e156
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/jest.config.js
@@ -0,0 +1,20 @@
+module.exports = {
+ displayName: 'identity',
+ preset: '../../jest.preset.js',
+ setupFilesAfterEnv: ['/src/test-setup.ts'],
+ globals: {
+ 'ts-jest': {
+ tsconfig: '/tsconfig.spec.json',
+ stringifyContentPathRegex: '\\.(html|svg)$',
+ },
+ },
+ coverageDirectory: '../../coverage/packages/identity',
+ transform: {
+ '^.+\\.(ts|js|html)$': 'jest-preset-angular',
+ },
+ snapshotSerializers: [
+ 'jest-preset-angular/build/serializers/no-ng-attributes',
+ 'jest-preset-angular/build/serializers/ng-snapshot',
+ 'jest-preset-angular/build/serializers/html-comment',
+ ],
+};
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/ng-package.json b/npm/ng-packs/nx/ng-packs/packages/identity/ng-package.json
new file mode 100644
index 0000000000..a0824f39e5
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/ng-package.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
+ "dest": "../../dist/packages/identity",
+ "lib": {
+ "entryFile": "src/public-api.ts"
+ },
+ "allowedNonPeerDependencies": [
+ "@abp/ng.theme.shared",
+ "@abp/ng.permission-management"
+ ]
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/package.json b/npm/ng-packs/nx/ng-packs/packages/identity/package.json
new file mode 100644
index 0000000000..37da33811e
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "@abp/ng.identity",
+ "version": "4.4.0",
+ "homepage": "https://abp.io",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/abpframework/abp.git"
+ },
+ "dependencies": {
+ "@abp/ng.permission-management": "~4.4.0",
+ "@abp/ng.theme.shared": "~4.4.0",
+ "tslib": "^2.0.0"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/actions/identity.actions.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/actions/identity.actions.ts
new file mode 100644
index 0000000000..5b470b080e
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/actions/identity.actions.ts
@@ -0,0 +1,64 @@
+import { Identity } from '../models/identity';
+import { ABP, PagedAndSortedResultRequestDto } from '@abp/ng.core';
+import {
+ GetIdentityUsersInput,
+ IdentityRoleCreateDto,
+ IdentityRoleUpdateDto,
+ IdentityUserCreateDto,
+ IdentityUserUpdateDto,
+} from '../proxy/identity/models';
+
+export class GetRoles {
+ static readonly type = '[Identity] Get Roles';
+ constructor(public payload?: PagedAndSortedResultRequestDto) {}
+}
+
+export class GetRoleById {
+ static readonly type = '[Identity] Get Role By Id';
+ constructor(public payload: string) {}
+}
+
+export class DeleteRole {
+ static readonly type = '[Identity] Delete Role';
+ constructor(public payload: string) {}
+}
+
+export class CreateRole {
+ static readonly type = '[Identity] Create Role';
+ constructor(public payload: IdentityRoleCreateDto) {}
+}
+
+export class UpdateRole {
+ static readonly type = '[Identity] Update Role';
+ constructor(public payload: IdentityRoleUpdateDto & { id: string }) {}
+}
+
+export class GetUsers {
+ static readonly type = '[Identity] Get Users';
+ constructor(public payload?: GetIdentityUsersInput) {}
+}
+
+export class GetUserById {
+ static readonly type = '[Identity] Get User By Id';
+ constructor(public payload: string) {}
+}
+
+export class DeleteUser {
+ static readonly type = '[Identity] Delete User';
+ constructor(public payload: string) {}
+}
+
+export class CreateUser {
+ static readonly type = '[Identity] Create User';
+ constructor(public payload: IdentityUserCreateDto) {}
+}
+
+export class UpdateUser {
+ static readonly type = '[Identity] Update User';
+ constructor(public payload: IdentityUserUpdateDto & { id: string }) {}
+}
+
+export class GetUserRoles {
+ static readonly type = '[Identity] Get User Roles';
+ constructor(public payload: string) {}
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/actions/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/actions/index.ts
new file mode 100644
index 0000000000..f2c40cc4c1
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/actions/index.ts
@@ -0,0 +1 @@
+export * from './identity.actions';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/index.ts
new file mode 100644
index 0000000000..29c90f5833
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/index.ts
@@ -0,0 +1,2 @@
+export * from './roles/roles.component';
+export * from './users/users.component';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/roles/roles.component.html b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/roles/roles.component.html
new file mode 100644
index 0000000000..f3ab79cd57
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/roles/roles.component.html
@@ -0,0 +1,60 @@
+
+
+
+
+ {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewRole') | abpLocalization }}
+
+
+
+
+
+
+
+
+ {{
+ 'AbpIdentity::Save' | abpLocalization
+ }}
+
+
+
+
+
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts
new file mode 100644
index 0000000000..75c14d4aeb
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts
@@ -0,0 +1,142 @@
+import { ListService, PagedAndSortedResultRequestDto } from '@abp/ng.core';
+import { ePermissionManagementComponents } from '@abp/ng.permission-management';
+import { Confirmation, ConfirmationService } from '@abp/ng.theme.shared';
+import {
+ EXTENSIONS_IDENTIFIER,
+ FormPropData,
+ generateFormFromProps,
+} from '@abp/ng.theme.shared/extensions';
+import { Component, ElementRef, Injector, OnInit, ViewChild } from '@angular/core';
+import { FormGroup } from '@angular/forms';
+import { Select, Store } from '@ngxs/store';
+import { Observable } from 'rxjs';
+import { finalize, pluck } from 'rxjs/operators';
+import {
+ CreateRole,
+ DeleteRole,
+ GetRoleById,
+ GetRoles,
+ UpdateRole,
+} from '../../actions/identity.actions';
+import { eIdentityComponents } from '../../enums/components';
+import { IdentityRoleDto } from '../../proxy/identity/models';
+import { IdentityState } from '../../states/identity.state';
+
+@Component({
+ selector: 'abp-roles',
+ templateUrl: './roles.component.html',
+ providers: [
+ ListService,
+ {
+ provide: EXTENSIONS_IDENTIFIER,
+ useValue: eIdentityComponents.Roles,
+ },
+ ],
+})
+export class RolesComponent implements OnInit {
+ @Select(IdentityState.getRoles)
+ data$: Observable;
+
+ @Select(IdentityState.getRolesTotalCount)
+ totalCount$: Observable;
+
+ form: FormGroup;
+
+ selected: IdentityRoleDto;
+
+ isModalVisible: boolean;
+
+ visiblePermissions = false;
+
+ providerKey: string;
+
+ modalBusy = false;
+
+ permissionManagementKey = ePermissionManagementComponents.PermissionManagement;
+
+ onVisiblePermissionChange = event => {
+ this.visiblePermissions = event;
+ };
+
+ constructor(
+ public readonly list: ListService,
+ protected confirmationService: ConfirmationService,
+ protected store: Store,
+ protected injector: Injector,
+ ) {}
+
+ ngOnInit() {
+ this.hookToQuery();
+ }
+
+ buildForm() {
+ const data = new FormPropData(this.injector, this.selected);
+ this.form = generateFormFromProps(data);
+ }
+
+ openModal() {
+ this.buildForm();
+ this.isModalVisible = true;
+ }
+
+ add() {
+ this.selected = {} as IdentityRoleDto;
+ this.openModal();
+ }
+
+ edit(id: string) {
+ this.store
+ .dispatch(new GetRoleById(id))
+ .pipe(pluck('IdentityState', 'selectedRole'))
+ .subscribe(selectedRole => {
+ this.selected = selectedRole;
+ this.openModal();
+ });
+ }
+
+ save() {
+ if (!this.form.valid) return;
+ this.modalBusy = true;
+
+ this.store
+ .dispatch(
+ this.selected.id
+ ? new UpdateRole({ ...this.selected, ...this.form.value, id: this.selected.id })
+ : new CreateRole(this.form.value),
+ )
+ .pipe(finalize(() => (this.modalBusy = false)))
+ .subscribe(() => {
+ this.isModalVisible = false;
+ this.list.get();
+ });
+ }
+
+ delete(id: string, name: string) {
+ this.confirmationService
+ .warn('AbpIdentity::RoleDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {
+ messageLocalizationParams: [name],
+ })
+ .subscribe((status: Confirmation.Status) => {
+ if (status === Confirmation.Status.confirm) {
+ this.store.dispatch(new DeleteRole(id)).subscribe(() => this.list.get());
+ }
+ });
+ }
+
+ private hookToQuery() {
+ this.list.hookToQuery(query => this.store.dispatch(new GetRoles(query))).subscribe();
+ }
+
+ openPermissionsModal(providerKey: string) {
+ this.providerKey = providerKey;
+ setTimeout(() => {
+ this.visiblePermissions = true;
+ }, 0);
+ }
+
+ sort(data) {
+ const { prop, dir } = data.sorts[0];
+ this.list.sortKey = prop;
+ this.list.sortOrder = dir;
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/users/users.component.html b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/users/users.component.html
new file mode 100644
index 0000000000..aa6dac1e93
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/users/users.component.html
@@ -0,0 +1,102 @@
+
+
+
+
+ {{ (selected?.id ? 'AbpIdentity::Edit' : 'AbpIdentity::NewUser') | abpLocalization }}
+
+
+
+
+
+
+
+
+
+
+ {{
+ 'AbpIdentity::Save' | abpLocalization
+ }}
+
+
+
+
+
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/users/users.component.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/users/users.component.ts
new file mode 100644
index 0000000000..da533ba62a
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/components/users/users.component.ts
@@ -0,0 +1,211 @@
+import { ListService } from '@abp/ng.core';
+import { ePermissionManagementComponents } from '@abp/ng.permission-management';
+import { Confirmation, ConfirmationService } from '@abp/ng.theme.shared';
+import {
+ EXTENSIONS_IDENTIFIER,
+ FormPropData,
+ generateFormFromProps,
+} from '@abp/ng.theme.shared/extensions';
+import {
+ Component,
+ Injector,
+ OnInit,
+ TemplateRef,
+ TrackByFunction,
+ ViewChild,
+} from '@angular/core';
+import { AbstractControl, FormArray, FormBuilder, FormGroup } from '@angular/forms';
+import { Select, Store } from '@ngxs/store';
+import { Observable } from 'rxjs';
+import { finalize, pluck, switchMap, take } from 'rxjs/operators';
+import snq from 'snq';
+import {
+ CreateUser,
+ DeleteUser,
+ GetUserById,
+ GetUserRoles,
+ GetUsers,
+ UpdateUser,
+} from '../../actions/identity.actions';
+import { eIdentityComponents } from '../../enums/components';
+import { Identity } from '../../models/identity';
+import { IdentityUserService } from '../../proxy/identity/identity-user.service';
+import {
+ GetIdentityUsersInput,
+ IdentityRoleDto,
+ IdentityUserDto,
+} from '../../proxy/identity/models';
+import { IdentityState } from '../../states/identity.state';
+
+@Component({
+ selector: 'abp-users',
+ templateUrl: './users.component.html',
+ providers: [
+ ListService,
+ {
+ provide: EXTENSIONS_IDENTIFIER,
+ useValue: eIdentityComponents.Users,
+ },
+ ],
+})
+export class UsersComponent implements OnInit {
+ @Select(IdentityState.getUsers)
+ data$: Observable;
+
+ @Select(IdentityState.getUsersTotalCount)
+ totalCount$: Observable;
+
+ @ViewChild('modalContent', { static: false })
+ modalContent: TemplateRef;
+
+ form: FormGroup;
+
+ selected: IdentityUserDto;
+
+ selectedUserRoles: IdentityRoleDto[];
+
+ roles: IdentityRoleDto[];
+
+ visiblePermissions = false;
+
+ providerKey: string;
+
+ isModalVisible: boolean;
+
+ modalBusy = false;
+
+ permissionManagementKey = ePermissionManagementComponents.PermissionManagement;
+
+ trackByFn: TrackByFunction = (index, item) => Object.keys(item)[0] || index;
+
+ onVisiblePermissionChange = event => {
+ this.visiblePermissions = event;
+ };
+
+ get roleGroups(): FormGroup[] {
+ return snq(() => (this.form.get('roleNames') as FormArray).controls as FormGroup[], []);
+ }
+
+ constructor(
+ public readonly list: ListService,
+ protected confirmationService: ConfirmationService,
+ protected userService: IdentityUserService,
+ protected fb: FormBuilder,
+ protected store: Store,
+ protected injector: Injector,
+ ) {}
+
+ ngOnInit() {
+ this.hookToQuery();
+ }
+
+ buildForm() {
+ const data = new FormPropData(this.injector, this.selected);
+ this.form = generateFormFromProps(data);
+
+ this.userService.getAssignableRoles().subscribe(({ items }) => {
+ this.roles = items;
+ this.form.addControl(
+ 'roleNames',
+ this.fb.array(
+ this.roles.map(role =>
+ this.fb.group({
+ [role.name]: [
+ this.selected.id
+ ? !!snq(() => this.selectedUserRoles.find(userRole => userRole.id === role.id))
+ : role.isDefault,
+ ],
+ }),
+ ),
+ ),
+ );
+ });
+ }
+
+ openModal() {
+ this.buildForm();
+ this.isModalVisible = true;
+ }
+
+ add() {
+ this.selected = {} as IdentityUserDto;
+ this.selectedUserRoles = [] as IdentityRoleDto[];
+ this.openModal();
+ }
+
+ edit(id: string) {
+ this.store
+ .dispatch(new GetUserById(id))
+ .pipe(
+ switchMap(() => this.store.dispatch(new GetUserRoles(id))),
+ pluck('IdentityState'),
+ take(1),
+ )
+ .subscribe((state: Identity.State) => {
+ this.selected = state.selectedUser;
+ this.selectedUserRoles = state.selectedUserRoles || [];
+ this.openModal();
+ });
+ }
+
+ save() {
+ if (!this.form.valid || this.modalBusy) return;
+ this.modalBusy = true;
+
+ const { roleNames } = this.form.value;
+ const mappedRoleNames = snq(
+ () =>
+ roleNames.filter(role => !!role[Object.keys(role)[0]]).map(role => Object.keys(role)[0]),
+ [],
+ );
+
+ this.store
+ .dispatch(
+ this.selected.id
+ ? new UpdateUser({
+ ...this.selected,
+ ...this.form.value,
+ id: this.selected.id,
+ roleNames: mappedRoleNames,
+ })
+ : new CreateUser({
+ ...this.form.value,
+ roleNames: mappedRoleNames,
+ }),
+ )
+ .pipe(finalize(() => (this.modalBusy = false)))
+ .subscribe(() => {
+ this.isModalVisible = false;
+ this.list.get();
+ });
+ }
+
+ delete(id: string, userName: string) {
+ this.confirmationService
+ .warn('AbpIdentity::UserDeletionConfirmationMessage', 'AbpIdentity::AreYouSure', {
+ messageLocalizationParams: [userName],
+ })
+ .subscribe((status: Confirmation.Status) => {
+ if (status === Confirmation.Status.confirm) {
+ this.store.dispatch(new DeleteUser(id)).subscribe(() => this.list.get());
+ }
+ });
+ }
+
+ sort(data) {
+ const { prop, dir } = data.sorts[0];
+ this.list.sortKey = prop;
+ this.list.sortOrder = dir;
+ }
+
+ private hookToQuery() {
+ this.list.hookToQuery(query => this.store.dispatch(new GetUsers(query))).subscribe();
+ }
+
+ openPermissionsModal(providerKey: string) {
+ this.providerKey = providerKey;
+ setTimeout(() => {
+ this.visiblePermissions = true;
+ }, 0);
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-entity-actions.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-entity-actions.ts
new file mode 100644
index 0000000000..2a2822c62e
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-entity-actions.ts
@@ -0,0 +1,31 @@
+import { EntityAction } from '@abp/ng.theme.shared/extensions';
+import { RolesComponent } from '../components/roles/roles.component';
+import { IdentityRoleDto } from '../proxy/identity/models';
+
+export const DEFAULT_ROLES_ENTITY_ACTIONS = EntityAction.createMany([
+ {
+ text: 'AbpIdentity::Edit',
+ action: data => {
+ const component = data.getInjected(RolesComponent);
+ component.edit(data.record.id);
+ },
+ permission: 'AbpIdentity.Roles.Update',
+ },
+ {
+ text: 'AbpIdentity::Permissions',
+ action: data => {
+ const component = data.getInjected(RolesComponent);
+ component.openPermissionsModal(data.record.name);
+ },
+ permission: 'AbpIdentity.Roles.ManagePermissions',
+ },
+ {
+ text: 'AbpIdentity::Delete',
+ action: data => {
+ const component = data.getInjected(RolesComponent);
+ component.delete(data.record.id, data.record.name);
+ },
+ permission: 'AbpIdentity.Roles.Delete',
+ visible: data => !data.record.isStatic,
+ },
+]);
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-entity-props.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-entity-props.ts
new file mode 100644
index 0000000000..bd3a49def2
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-entity-props.ts
@@ -0,0 +1,32 @@
+import { LocalizationService } from '@abp/ng.core';
+import { EntityProp, ePropType } from '@abp/ng.theme.shared/extensions';
+import { of } from 'rxjs';
+import { IdentityRoleDto } from '../proxy/identity/models';
+
+export const DEFAULT_ROLES_ENTITY_PROPS = EntityProp.createMany([
+ {
+ type: ePropType.String,
+ name: 'name',
+ displayName: 'AbpIdentity::RoleName',
+ sortable: true,
+ valueResolver: data => {
+ const l10n = data.getInjected(LocalizationService);
+ const t = l10n.instant.bind(l10n);
+ const { isDefault, isPublic, name } = data.record;
+
+ return of(
+ name +
+ (isDefault
+ ? `${t(
+ 'AbpIdentity::DisplayName:IsDefault',
+ )}`
+ : '') +
+ (isPublic
+ ? `${t(
+ 'AbpIdentity::DisplayName:IsPublic',
+ )}`
+ : ''),
+ );
+ },
+ },
+]);
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-form-props.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-form-props.ts
new file mode 100644
index 0000000000..a9cf966257
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-form-props.ts
@@ -0,0 +1,30 @@
+import { ePropType, FormProp, PropData } from '@abp/ng.theme.shared/extensions';
+import { Validators } from '@angular/forms';
+import { IdentityRoleDto } from '../proxy/identity/models';
+
+export const DEFAULT_ROLES_CREATE_FORM_PROPS = FormProp.createMany([
+ {
+ type: ePropType.String,
+ name: 'name',
+ displayName: 'AbpIdentity::RoleName',
+ id: 'role-name',
+ disabled: (data: PropData) => data.record && data.record.isStatic,
+ validators: () => [Validators.required],
+ },
+ {
+ type: ePropType.Boolean,
+ name: 'isDefault',
+ displayName: 'AbpIdentity::DisplayName:IsDefault',
+ id: 'role-is-default',
+ defaultValue: false,
+ },
+ {
+ type: ePropType.Boolean,
+ name: 'isPublic',
+ displayName: 'AbpIdentity::DisplayName:IsPublic',
+ id: 'role-is-public',
+ defaultValue: false,
+ },
+]);
+
+export const DEFAULT_ROLES_EDIT_FORM_PROPS = DEFAULT_ROLES_CREATE_FORM_PROPS;
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-toolbar-actions.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-toolbar-actions.ts
new file mode 100644
index 0000000000..271aced701
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-roles-toolbar-actions.ts
@@ -0,0 +1,15 @@
+import { ToolbarAction } from '@abp/ng.theme.shared/extensions';
+import { RolesComponent } from '../components/roles/roles.component';
+import { IdentityRoleDto } from '../proxy/identity/models';
+
+export const DEFAULT_ROLES_TOOLBAR_ACTIONS = ToolbarAction.createMany([
+ {
+ text: 'AbpIdentity::NewRole',
+ action: data => {
+ const component = data.getInjected(RolesComponent);
+ component.add();
+ },
+ permission: 'AbpIdentity.Roles.Create',
+ icon: 'fa fa-plus',
+ },
+]);
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-entity-actions.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-entity-actions.ts
new file mode 100644
index 0000000000..f8be7740ff
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-entity-actions.ts
@@ -0,0 +1,30 @@
+import { EntityAction } from '@abp/ng.theme.shared/extensions';
+import { UsersComponent } from '../components/users/users.component';
+import { IdentityUserDto } from '../proxy/identity/models';
+
+export const DEFAULT_USERS_ENTITY_ACTIONS = EntityAction.createMany([
+ {
+ text: 'AbpIdentity::Edit',
+ action: data => {
+ const component = data.getInjected(UsersComponent);
+ component.edit(data.record.id);
+ },
+ permission: 'AbpIdentity.Users.Update',
+ },
+ {
+ text: 'AbpIdentity::Permissions',
+ action: data => {
+ const component = data.getInjected(UsersComponent);
+ component.openPermissionsModal(data.record.id);
+ },
+ permission: 'AbpIdentity.Users.ManagePermissions',
+ },
+ {
+ text: 'AbpIdentity::Delete',
+ action: data => {
+ const component = data.getInjected(UsersComponent);
+ component.delete(data.record.id, data.record.name || data.record.userName);
+ },
+ permission: 'AbpIdentity.Users.Delete',
+ },
+]);
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-entity-props.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-entity-props.ts
new file mode 100644
index 0000000000..f9d7c217be
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-entity-props.ts
@@ -0,0 +1,26 @@
+import { EntityProp, ePropType } from '@abp/ng.theme.shared/extensions';
+import { IdentityUserDto } from '../proxy/identity/models';
+
+export const DEFAULT_USERS_ENTITY_PROPS = EntityProp.createMany([
+ {
+ type: ePropType.String,
+ name: 'userName',
+ displayName: 'AbpIdentity::UserName',
+ sortable: true,
+ columnWidth: 250,
+ },
+ {
+ type: ePropType.String,
+ name: 'email',
+ displayName: 'AbpIdentity::EmailAddress',
+ sortable: true,
+ columnWidth: 250,
+ },
+ {
+ type: ePropType.String,
+ name: 'phoneNumber',
+ displayName: 'AbpIdentity::PhoneNumber',
+ sortable: true,
+ columnWidth: 250,
+ },
+]);
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts
new file mode 100644
index 0000000000..3092bdf7e8
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts
@@ -0,0 +1,61 @@
+import { getPasswordValidators } from '@abp/ng.theme.shared';
+import { ePropType, FormProp } from '@abp/ng.theme.shared/extensions';
+import { Validators } from '@angular/forms';
+import { IdentityUserDto } from '../proxy/identity/models';
+
+export const DEFAULT_USERS_CREATE_FORM_PROPS = FormProp.createMany([
+ {
+ type: ePropType.String,
+ name: 'userName',
+ displayName: 'AbpIdentity::UserName',
+ id: 'user-name',
+ validators: () => [Validators.required, Validators.maxLength(256)],
+ },
+ {
+ type: ePropType.Password,
+ name: 'password',
+ displayName: 'AbpIdentity::Password',
+ id: 'password',
+ autocomplete: 'new-password',
+ validators: data => [Validators.required, ...getPasswordValidators({ get: data.getInjected })],
+ },
+ {
+ type: ePropType.String,
+ name: 'name',
+ displayName: 'AbpIdentity::DisplayName:Name',
+ id: 'name',
+ validators: () => [Validators.maxLength(64)],
+ },
+ {
+ type: ePropType.String,
+ name: 'surname',
+ displayName: 'AbpIdentity::DisplayName:Surname',
+ id: 'surname',
+ validators: () => [Validators.maxLength(64)],
+ },
+ {
+ type: ePropType.Email,
+ name: 'email',
+ displayName: 'AbpIdentity::EmailAddress',
+ id: 'email',
+ validators: () => [Validators.required, Validators.maxLength(256), Validators.email],
+ },
+ {
+ type: ePropType.String,
+ name: 'phoneNumber',
+ displayName: 'AbpIdentity::PhoneNumber',
+ id: 'phone-number',
+ validators: () => [Validators.maxLength(16)],
+ },
+ {
+ type: ePropType.Boolean,
+ name: 'lockoutEnabled',
+ displayName: 'AbpIdentity::DisplayName:LockoutEnabled',
+ id: 'lockout-checkbox',
+ defaultValue: true,
+ },
+]);
+
+export const DEFAULT_USERS_EDIT_FORM_PROPS = DEFAULT_USERS_CREATE_FORM_PROPS.filter(
+ prop => prop.name !== 'password',
+);
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-toolbar-actions.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-toolbar-actions.ts
new file mode 100644
index 0000000000..b1e62a9e18
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/defaults/default-users-toolbar-actions.ts
@@ -0,0 +1,15 @@
+import { ToolbarAction } from '@abp/ng.theme.shared/extensions';
+import { UsersComponent } from '../components/users/users.component';
+import { IdentityUserDto } from '../proxy/identity/models';
+
+export const DEFAULT_USERS_TOOLBAR_ACTIONS = ToolbarAction.createMany([
+ {
+ text: 'AbpIdentity::NewUser',
+ action: data => {
+ const component = data.getInjected(UsersComponent);
+ component.add();
+ },
+ permission: 'AbpIdentity.Users.Create',
+ icon: 'fa fa-plus',
+ },
+]);
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/enums/components.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/enums/components.ts
new file mode 100644
index 0000000000..abadd38955
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/enums/components.ts
@@ -0,0 +1,4 @@
+export const enum eIdentityComponents {
+ Roles = 'Identity.RolesComponent',
+ Users = 'Identity.UsersComponent',
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/enums/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/enums/index.ts
new file mode 100644
index 0000000000..07635cbbc8
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/enums/index.ts
@@ -0,0 +1 @@
+export * from './components';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts
new file mode 100644
index 0000000000..3b5d592acc
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/guards/extensions.guard.ts
@@ -0,0 +1,91 @@
+import { ConfigStateService } from '@abp/ng.core';
+import {
+ ExtensionsService,
+ getObjectExtensionEntitiesFromStore,
+ mapEntitiesToContributors,
+ mergeWithDefaultActions,
+ mergeWithDefaultProps,
+} from '@abp/ng.theme.shared/extensions';
+import { Injectable, Injector } from '@angular/core';
+import { CanActivate } from '@angular/router';
+import { Observable } from 'rxjs';
+import { map, mapTo, tap } from 'rxjs/operators';
+import { eIdentityComponents } from '../enums/components';
+import {
+ IdentityCreateFormPropContributors,
+ IdentityEditFormPropContributors,
+ IdentityEntityActionContributors,
+ IdentityEntityPropContributors,
+ IdentityToolbarActionContributors,
+} from '../models/config-options';
+import {
+ DEFAULT_IDENTITY_CREATE_FORM_PROPS,
+ DEFAULT_IDENTITY_EDIT_FORM_PROPS,
+ DEFAULT_IDENTITY_ENTITY_ACTIONS,
+ DEFAULT_IDENTITY_ENTITY_PROPS,
+ DEFAULT_IDENTITY_TOOLBAR_ACTIONS,
+ IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,
+ IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,
+ IDENTITY_ENTITY_ACTION_CONTRIBUTORS,
+ IDENTITY_ENTITY_PROP_CONTRIBUTORS,
+ IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,
+} from '../tokens/extensions.token';
+
+@Injectable()
+export class IdentityExtensionsGuard implements CanActivate {
+ constructor(private injector: Injector) {}
+
+ canActivate(): Observable {
+ const extensions: ExtensionsService = this.injector.get(ExtensionsService);
+ const actionContributors: IdentityEntityActionContributors =
+ this.injector.get(IDENTITY_ENTITY_ACTION_CONTRIBUTORS, null) || {};
+ const toolbarContributors: IdentityToolbarActionContributors =
+ this.injector.get(IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, null) || {};
+ const propContributors: IdentityEntityPropContributors =
+ this.injector.get(IDENTITY_ENTITY_PROP_CONTRIBUTORS, null) || {};
+ const createFormContributors: IdentityCreateFormPropContributors =
+ this.injector.get(IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, null) || {};
+ const editFormContributors: IdentityEditFormPropContributors =
+ this.injector.get(IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, null) || {};
+
+ const configState = this.injector.get(ConfigStateService);
+ return getObjectExtensionEntitiesFromStore(configState, 'Identity').pipe(
+ map(entities => ({
+ [eIdentityComponents.Roles]: entities.Role,
+ [eIdentityComponents.Users]: entities.User,
+ })),
+ mapEntitiesToContributors(configState, 'AbpIdentity'),
+ tap(objectExtensionContributors => {
+ mergeWithDefaultActions(
+ extensions.entityActions,
+ DEFAULT_IDENTITY_ENTITY_ACTIONS,
+ actionContributors,
+ );
+ mergeWithDefaultActions(
+ extensions.toolbarActions,
+ DEFAULT_IDENTITY_TOOLBAR_ACTIONS,
+ toolbarContributors,
+ );
+ mergeWithDefaultProps(
+ extensions.entityProps,
+ DEFAULT_IDENTITY_ENTITY_PROPS,
+ objectExtensionContributors.prop,
+ propContributors,
+ );
+ mergeWithDefaultProps(
+ extensions.createFormProps,
+ DEFAULT_IDENTITY_CREATE_FORM_PROPS,
+ objectExtensionContributors.createForm,
+ createFormContributors,
+ );
+ mergeWithDefaultProps(
+ extensions.editFormProps,
+ DEFAULT_IDENTITY_EDIT_FORM_PROPS,
+ objectExtensionContributors.editForm,
+ editFormContributors,
+ );
+ }),
+ mapTo(true),
+ );
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/guards/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/guards/index.ts
new file mode 100644
index 0000000000..480f14c40b
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/guards/index.ts
@@ -0,0 +1 @@
+export * from './extensions.guard';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/identity-routing.module.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/identity-routing.module.ts
new file mode 100644
index 0000000000..3b290e851b
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/identity-routing.module.ts
@@ -0,0 +1,52 @@
+import {
+ AuthGuard,
+ DynamicLayoutComponent,
+ PermissionGuard,
+ ReplaceableComponents,
+ ReplaceableRouteContainerComponent,
+} from '@abp/ng.core';
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+import { RolesComponent } from './components/roles/roles.component';
+import { UsersComponent } from './components/users/users.component';
+import { eIdentityComponents } from './enums/components';
+import { IdentityExtensionsGuard } from './guards/extensions.guard';
+
+const routes: Routes = [
+ { path: '', redirectTo: 'roles', pathMatch: 'full' },
+ {
+ path: '',
+ component: DynamicLayoutComponent,
+ canActivate: [AuthGuard, PermissionGuard, IdentityExtensionsGuard],
+ children: [
+ {
+ path: 'roles',
+ component: ReplaceableRouteContainerComponent,
+ data: {
+ requiredPolicy: 'AbpIdentity.Roles',
+ replaceableComponent: {
+ key: eIdentityComponents.Roles,
+ defaultComponent: RolesComponent,
+ } as ReplaceableComponents.RouteData,
+ },
+ },
+ {
+ path: 'users',
+ component: ReplaceableRouteContainerComponent,
+ data: {
+ requiredPolicy: 'AbpIdentity.Users',
+ replaceableComponent: {
+ key: eIdentityComponents.Users,
+ defaultComponent: UsersComponent,
+ } as ReplaceableComponents.RouteData,
+ },
+ },
+ ],
+ },
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule],
+})
+export class IdentityRoutingModule {}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/identity.module.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/identity.module.ts
new file mode 100644
index 0000000000..e2b832350a
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/identity.module.ts
@@ -0,0 +1,71 @@
+import { CoreModule, LazyModuleFactory } from '@abp/ng.core';
+import { PermissionManagementModule } from '@abp/ng.permission-management';
+import { ThemeSharedModule } from '@abp/ng.theme.shared';
+import { UiExtensionsModule } from '@abp/ng.theme.shared/extensions';
+import { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';
+import { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
+import { NgxValidateCoreModule } from '@ngx-validate/core';
+import { NgxsModule } from '@ngxs/store';
+import { RolesComponent } from './components/roles/roles.component';
+import { UsersComponent } from './components/users/users.component';
+import { IdentityExtensionsGuard } from './guards/extensions.guard';
+import { IdentityRoutingModule } from './identity-routing.module';
+import { IdentityConfigOptions } from './models/config-options';
+import { IdentityState } from './states/identity.state';
+import {
+ IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,
+ IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,
+ IDENTITY_ENTITY_ACTION_CONTRIBUTORS,
+ IDENTITY_ENTITY_PROP_CONTRIBUTORS,
+ IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,
+} from './tokens/extensions.token';
+
+@NgModule({
+ declarations: [RolesComponent, UsersComponent],
+ exports: [RolesComponent, UsersComponent],
+ imports: [
+ NgxsModule.forFeature([IdentityState]),
+ CoreModule,
+ IdentityRoutingModule,
+ NgbNavModule,
+ ThemeSharedModule,
+ UiExtensionsModule,
+ NgbDropdownModule,
+ PermissionManagementModule,
+ NgxValidateCoreModule,
+ ],
+})
+export class IdentityModule {
+ static forChild(options: IdentityConfigOptions = {}): ModuleWithProviders {
+ return {
+ ngModule: IdentityModule,
+ providers: [
+ {
+ provide: IDENTITY_ENTITY_ACTION_CONTRIBUTORS,
+ useValue: options.entityActionContributors,
+ },
+ {
+ provide: IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS,
+ useValue: options.toolbarActionContributors,
+ },
+ {
+ provide: IDENTITY_ENTITY_PROP_CONTRIBUTORS,
+ useValue: options.entityPropContributors,
+ },
+ {
+ provide: IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS,
+ useValue: options.createFormPropContributors,
+ },
+ {
+ provide: IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS,
+ useValue: options.editFormPropContributors,
+ },
+ IdentityExtensionsGuard,
+ ],
+ };
+ }
+
+ static forLazy(options: IdentityConfigOptions = {}): NgModuleFactory {
+ return new LazyModuleFactory(IdentityModule.forChild(options));
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/models/config-options.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/models/config-options.ts
new file mode 100644
index 0000000000..6a1fc29a00
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/models/config-options.ts
@@ -0,0 +1,42 @@
+import {
+ CreateFormPropContributorCallback,
+ EditFormPropContributorCallback,
+ EntityActionContributorCallback,
+ EntityPropContributorCallback,
+ ToolbarActionContributorCallback,
+} from '@abp/ng.theme.shared/extensions';
+import { eIdentityComponents } from '../enums/components';
+import { IdentityRoleDto, IdentityUserDto } from '../proxy/identity/models';
+
+export type IdentityEntityActionContributors = Partial<{
+ [eIdentityComponents.Roles]: EntityActionContributorCallback[];
+ [eIdentityComponents.Users]: EntityActionContributorCallback[];
+}>;
+
+export type IdentityToolbarActionContributors = Partial<{
+ [eIdentityComponents.Roles]: ToolbarActionContributorCallback[];
+ [eIdentityComponents.Users]: ToolbarActionContributorCallback[];
+}>;
+
+export type IdentityEntityPropContributors = Partial<{
+ [eIdentityComponents.Roles]: EntityPropContributorCallback[];
+ [eIdentityComponents.Users]: EntityPropContributorCallback[];
+}>;
+
+export type IdentityCreateFormPropContributors = Partial<{
+ [eIdentityComponents.Roles]: CreateFormPropContributorCallback[];
+ [eIdentityComponents.Users]: CreateFormPropContributorCallback[];
+}>;
+
+export type IdentityEditFormPropContributors = Partial<{
+ [eIdentityComponents.Roles]: EditFormPropContributorCallback[];
+ [eIdentityComponents.Users]: EditFormPropContributorCallback[];
+}>;
+
+export interface IdentityConfigOptions {
+ entityActionContributors?: IdentityEntityActionContributors;
+ toolbarActionContributors?: IdentityToolbarActionContributors;
+ entityPropContributors?: IdentityEntityPropContributors;
+ createFormPropContributors?: IdentityCreateFormPropContributors;
+ editFormPropContributors?: IdentityEditFormPropContributors;
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/models/identity.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/models/identity.ts
new file mode 100644
index 0000000000..115e0b488f
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/models/identity.ts
@@ -0,0 +1,12 @@
+import { PagedResultDto } from '@abp/ng.core';
+import { IdentityRoleDto, IdentityUserDto } from '../proxy/identity/models';
+
+export namespace Identity {
+ export interface State {
+ roles: PagedResultDto;
+ users: PagedResultDto;
+ selectedRole: IdentityRoleDto;
+ selectedUser: IdentityUserDto;
+ selectedUserRoles: IdentityRoleDto[];
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/models/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/models/index.ts
new file mode 100644
index 0000000000..c7964853da
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/models/index.ts
@@ -0,0 +1,2 @@
+export * from './config-options';
+export * from './identity';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/generate-proxy.json b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/generate-proxy.json
new file mode 100644
index 0000000000..22d15ae64c
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/generate-proxy.json
@@ -0,0 +1,4210 @@
+{
+ "generated": [
+ "identity"
+ ],
+ "modules": {
+ "identity": {
+ "rootPath": "identity",
+ "remoteServiceName": "AbpIdentity",
+ "controllers": {
+ "Volo.Abp.Identity.IdentityRoleController": {
+ "controllerName": "IdentityRole",
+ "type": "Volo.Abp.Identity.IdentityRoleController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.Identity.IIdentityRoleAppService"
+ }
+ ],
+ "actions": {
+ "GetAllListAsync": {
+ "uniqueName": "GetAllListAsync",
+ "name": "GetAllListAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/roles/all",
+ "supportedVersions": [],
+ "parametersOnMethod": [],
+ "parameters": [],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.ListResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto"
+ }
+ },
+ "GetListAsyncByInput": {
+ "uniqueName": "GetListAsyncByInput",
+ "name": "GetListAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/roles",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto, Volo.Abp.Ddd.Application.Contracts",
+ "type": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "Sorting",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "SkipCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "MaxResultCount",
+ "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"
+ }
+ },
+ "GetAsyncById": {
+ "uniqueName": "GetAsyncById",
+ "name": "GetAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/roles/{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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityRoleDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleDto"
+ }
+ },
+ "CreateAsyncByInput": {
+ "uniqueName": "CreateAsyncByInput",
+ "name": "CreateAsync",
+ "httpMethod": "POST",
+ "url": "api/identity/roles",
+ "supportedVersions": [],
+ "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
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.IdentityRoleCreateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityRoleDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleDto"
+ }
+ },
+ "UpdateAsyncByIdAndInput": {
+ "uniqueName": "UpdateAsyncByIdAndInput",
+ "name": "UpdateAsync",
+ "httpMethod": "PUT",
+ "url": "api/identity/roles/{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.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.IdentityRoleUpdateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.IdentityRoleUpdateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityRoleDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityRoleDto"
+ }
+ },
+ "DeleteAsyncById": {
+ "uniqueName": "DeleteAsyncById",
+ "name": "DeleteAsync",
+ "httpMethod": "DELETE",
+ "url": "api/identity/roles/{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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ }
+ }
+ },
+ "Volo.Abp.Identity.IdentityUserController": {
+ "controllerName": "IdentityUser",
+ "type": "Volo.Abp.Identity.IdentityUserController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.Identity.IIdentityUserAppService"
+ }
+ ],
+ "actions": {
+ "GetAsyncById": {
+ "uniqueName": "GetAsyncById",
+ "name": "GetAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/{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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ },
+ "GetListAsyncByInput": {
+ "uniqueName": "GetListAsyncByInput",
+ "name": "GetListAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users",
+ "supportedVersions": [],
+ "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
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "Sorting",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "SkipCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "MaxResultCount",
+ "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"
+ }
+ },
+ "CreateAsyncByInput": {
+ "uniqueName": "CreateAsyncByInput",
+ "name": "CreateAsync",
+ "httpMethod": "POST",
+ "url": "api/identity/users",
+ "supportedVersions": [],
+ "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
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.IdentityUserCreateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ },
+ "UpdateAsyncByIdAndInput": {
+ "uniqueName": "UpdateAsyncByIdAndInput",
+ "name": "UpdateAsync",
+ "httpMethod": "PUT",
+ "url": "api/identity/users/{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.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.IdentityUserUpdateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.IdentityUserUpdateDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ },
+ "DeleteAsyncById": {
+ "uniqueName": "DeleteAsyncById",
+ "name": "DeleteAsync",
+ "httpMethod": "DELETE",
+ "url": "api/identity/users/{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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "GetRolesAsyncById": {
+ "uniqueName": "GetRolesAsyncById",
+ "name": "GetRolesAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/{id}/roles",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "id",
+ "typeAsString": "System.Guid, System.Private.CoreLib",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.ListResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto"
+ }
+ },
+ "GetAssignableRolesAsync": {
+ "uniqueName": "GetAssignableRolesAsync",
+ "name": "GetAssignableRolesAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/assignable-roles",
+ "supportedVersions": [],
+ "parametersOnMethod": [],
+ "parameters": [],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.ListResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto"
+ }
+ },
+ "UpdateRolesAsyncByIdAndInput": {
+ "uniqueName": "UpdateRolesAsyncByIdAndInput",
+ "name": "UpdateRolesAsync",
+ "httpMethod": "PUT",
+ "url": "api/identity/users/{id}/roles",
+ "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.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "id",
+ "name": "id",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "FindByUsernameAsyncByUsername": {
+ "uniqueName": "FindByUsernameAsyncByUsername",
+ "name": "FindByUsernameAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/by-username/{userName}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "username",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "username",
+ "name": "username",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ },
+ "FindByEmailAsyncByEmail": {
+ "uniqueName": "FindByEmailAsyncByEmail",
+ "name": "FindByEmailAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/by-email/{email}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "email",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "email",
+ "name": "email",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.IdentityUserDto",
+ "typeSimple": "Volo.Abp.Identity.IdentityUserDto"
+ }
+ }
+ }
+ },
+ "Volo.Abp.Identity.IdentityUserLookupController": {
+ "controllerName": "IdentityUserLookup",
+ "type": "Volo.Abp.Identity.IdentityUserLookupController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.Identity.IIdentityUserLookupAppService"
+ }
+ ],
+ "actions": {
+ "FindByIdAsyncById": {
+ "uniqueName": "FindByIdAsyncById",
+ "name": "FindByIdAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/lookup/{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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Users.UserData",
+ "typeSimple": "Volo.Abp.Users.UserData"
+ }
+ },
+ "FindByUserNameAsyncByUserName": {
+ "uniqueName": "FindByUserNameAsyncByUserName",
+ "name": "FindByUserNameAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/lookup/by-username/{userName}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "userName",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "userName",
+ "name": "userName",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Users.UserData",
+ "typeSimple": "Volo.Abp.Users.UserData"
+ }
+ },
+ "SearchAsyncByInput": {
+ "uniqueName": "SearchAsyncByInput",
+ "name": "SearchAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/lookup/search",
+ "supportedVersions": [],
+ "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
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "Sorting",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "SkipCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "MaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Application.Dtos.ListResultDto",
+ "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto"
+ }
+ },
+ "GetCountAsyncByInput": {
+ "uniqueName": "GetCountAsyncByInput",
+ "name": "GetCountAsync",
+ "httpMethod": "GET",
+ "url": "api/identity/users/lookup/count",
+ "supportedVersions": [],
+ "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
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ }
+ ],
+ "returnValue": {
+ "type": "System.Int64",
+ "typeSimple": "number"
+ }
+ }
+ }
+ },
+ "Volo.Abp.Identity.ProfileController": {
+ "controllerName": "Profile",
+ "type": "Volo.Abp.Identity.ProfileController",
+ "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"
+ }
+ },
+ "UpdateAsyncByInput": {
+ "uniqueName": "UpdateAsyncByInput",
+ "name": "UpdateAsync",
+ "httpMethod": "PUT",
+ "url": "api/identity/my-profile",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.UpdateProfileDto, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.UpdateProfileDto",
+ "typeSimple": "Volo.Abp.Identity.UpdateProfileDto",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.UpdateProfileDto",
+ "typeSimple": "Volo.Abp.Identity.UpdateProfileDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Identity.ProfileDto",
+ "typeSimple": "Volo.Abp.Identity.ProfileDto"
+ }
+ },
+ "ChangePasswordAsyncByInput": {
+ "uniqueName": "ChangePasswordAsyncByInput",
+ "name": "ChangePasswordAsync",
+ "httpMethod": "POST",
+ "url": "api/identity/my-profile/change-password",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "input",
+ "typeAsString": "Volo.Abp.Identity.ChangePasswordInput, Volo.Abp.Identity.Application.Contracts",
+ "type": "Volo.Abp.Identity.ChangePasswordInput",
+ "typeSimple": "Volo.Abp.Identity.ChangePasswordInput",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.Identity.ChangePasswordInput",
+ "typeSimple": "Volo.Abp.Identity.ChangePasswordInput",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ }
+ }
+ }
+ }
+ },
+ "featureManagement": {
+ "rootPath": "featureManagement",
+ "remoteServiceName": "AbpFeatureManagement",
+ "controllers": {
+ "Volo.Abp.FeatureManagement.FeaturesController": {
+ "controllerName": "Features",
+ "type": "Volo.Abp.FeatureManagement.FeaturesController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.FeatureManagement.IFeatureAppService"
+ }
+ ],
+ "actions": {
+ "GetAsyncByProviderNameAndProviderKey": {
+ "uniqueName": "GetAsyncByProviderNameAndProviderKey",
+ "name": "GetAsync",
+ "httpMethod": "GET",
+ "url": "api/feature-management/features",
+ "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",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "providerKey",
+ "name": "providerKey",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto",
+ "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto"
+ }
+ },
+ "UpdateAsyncByProviderNameAndProviderKeyAndInput": {
+ "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput",
+ "name": "UpdateAsync",
+ "httpMethod": "PUT",
+ "url": "api/feature-management/features",
+ "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.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",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "providerKey",
+ "name": "providerKey",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto",
+ "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ }
+ }
+ }
+ }
+ },
+ "abp": {
+ "rootPath": "abp",
+ "remoteServiceName": "abp",
+ "controllers": {
+ "Pages.Abp.MultiTenancy.AbpTenantController": {
+ "controllerName": "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}",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "name",
+ "typeAsString": "System.String, System.Private.CoreLib",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "name",
+ "name": "name",
+ "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"
+ }
+ },
+ "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",
+ "type": "System.Guid",
+ "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"
+ }
+ }
+ }
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": {
+ "controllerName": "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"
+ }
+ }
+ }
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": {
+ "controllerName": "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",
+ "type": "System.Boolean",
+ "typeSimple": "boolean",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "model"
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel",
+ "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel"
+ }
+ }
+ }
+ }
+ }
+ },
+ "account": {
+ "rootPath": "account",
+ "remoteServiceName": "AbpAccount",
+ "controllers": {
+ "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController": {
+ "controllerName": "Account",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController",
+ "interfaces": [],
+ "actions": {
+ "LoginByLogin": {
+ "uniqueName": "LoginByLogin",
+ "name": "Login",
+ "httpMethod": "POST",
+ "url": "api/account/login",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "login",
+ "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "login",
+ "name": "login",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult"
+ }
+ },
+ "Logout": {
+ "uniqueName": "Logout",
+ "name": "Logout",
+ "httpMethod": "GET",
+ "url": "api/account/logout",
+ "supportedVersions": [],
+ "parametersOnMethod": [],
+ "parameters": [],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "CheckPasswordByLogin": {
+ "uniqueName": "CheckPasswordByLogin",
+ "name": "CheckPassword",
+ "httpMethod": "POST",
+ "url": "api/account/checkPassword",
+ "supportedVersions": [],
+ "parametersOnMethod": [
+ {
+ "name": "login",
+ "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "isOptional": false,
+ "defaultValue": null
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "login",
+ "name": "login",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult"
+ }
+ }
+ }
+ },
+ "Volo.Abp.Account.AccountController": {
+ "controllerName": "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",
+ "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"
+ }
+ },
+ "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",
+ "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"
+ }
+ },
+ "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",
+ "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"
+ }
+ }
+ }
+ }
+ }
+ },
+ "multi-tenancy": {
+ "rootPath": "multi-tenancy",
+ "remoteServiceName": "AbpTenantManagement",
+ "controllers": {
+ "Volo.Abp.TenantManagement.TenantController": {
+ "controllerName": "Tenant",
+ "type": "Volo.Abp.TenantManagement.TenantController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.TenantManagement.ITenantAppService"
+ }
+ ],
+ "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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.TenantManagement.TenantDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantDto"
+ }
+ },
+ "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",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "Sorting",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "SkipCount",
+ "type": "System.Int32",
+ "typeSimple": "number",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": "input"
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "MaxResultCount",
+ "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"
+ }
+ },
+ "CreateAsyncByInput": {
+ "uniqueName": "CreateAsyncByInput",
+ "name": "CreateAsync",
+ "httpMethod": "POST",
+ "url": "api/multi-tenancy/tenants",
+ "supportedVersions": [],
+ "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
+ }
+ ],
+ "parameters": [
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.TenantManagement.TenantCreateDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.TenantManagement.TenantDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantDto"
+ }
+ },
+ "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.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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "type": "Volo.Abp.TenantManagement.TenantUpdateDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "Body",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "Volo.Abp.TenantManagement.TenantDto",
+ "typeSimple": "Volo.Abp.TenantManagement.TenantDto"
+ }
+ },
+ "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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ },
+ "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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "defaultConnectionString",
+ "name": "defaultConnectionString",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ },
+ "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",
+ "type": "System.Guid",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": [],
+ "bindingSourceId": "Path",
+ "descriptorName": ""
+ }
+ ],
+ "returnValue": {
+ "type": "System.Void",
+ "typeSimple": "System.Void"
+ }
+ }
+ }
+ }
+ }
+ },
+ "permissionManagement": {
+ "rootPath": "permissionManagement",
+ "remoteServiceName": "AbpPermissionManagement",
+ "controllers": {
+ "Volo.Abp.PermissionManagement.PermissionsController": {
+ "controllerName": "Permissions",
+ "type": "Volo.Abp.PermissionManagement.PermissionsController",
+ "interfaces": [
+ {
+ "type": "Volo.Abp.PermissionManagement.IPermissionAppService"
+ }
+ ],
+ "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",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "providerKey",
+ "name": "providerKey",
+ "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"
+ }
+ },
+ "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",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "providerKey",
+ "name": "providerKey",
+ "type": "System.String",
+ "typeSimple": "string",
+ "isOptional": false,
+ "defaultValue": null,
+ "constraintTypes": null,
+ "bindingSourceId": "ModelBinding",
+ "descriptorName": ""
+ },
+ {
+ "nameOnMethod": "input",
+ "name": "input",
+ "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"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "types": {
+ "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserNameOrEmailAddress",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Password",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "RememberMe",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Result",
+ "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType",
+ "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType"
+ },
+ {
+ "name": "Description",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "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.RegisterDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "EmailAddress",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Password",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "AppName",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityUserDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "TenantId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Surname",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "EmailConfirmed",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumberConfirmed",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "TwoFactorEnabled",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "LockoutEnabled",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "LockoutEnd",
+ "type": "System.DateTimeOffset?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "ConcurrencyStamp",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "TPrimaryKey"
+ ],
+ "properties": [
+ {
+ "name": "IsDeleted",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "DeleterId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "DeletionTime",
+ "type": "System.DateTime?",
+ "typeSimple": "string?"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "TPrimaryKey"
+ ],
+ "properties": [
+ {
+ "name": "LastModificationTime",
+ "type": "System.DateTime?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "LastModifierId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "TPrimaryKey"
+ ],
+ "properties": [
+ {
+ "name": "CreationTime",
+ "type": "System.DateTime",
+ "typeSimple": "string"
+ },
+ {
+ "name": "CreatorId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.ExtensibleEntityDto": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "TKey"
+ ],
+ "properties": [
+ {
+ "name": "Id",
+ "type": "TKey",
+ "typeSimple": "TKey"
+ }
+ ]
+ },
+ "Volo.Abp.ObjectExtending.ExtensibleObject": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "ExtraProperties",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ }
+ ]
+ },
+ "Volo.Abp.Account.SendPasswordResetCodeDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "AppName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ReturnUrl",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ReturnUrlHash",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Account.ResetPasswordDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserId",
+ "type": "System.Guid",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ResetToken",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Password",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Success",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "TenantId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.ListResultDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "T"
+ ],
+ "properties": [
+ {
+ "name": "Items",
+ "type": "[T]",
+ "typeSimple": "[T]"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityRoleDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsDefault",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "IsStatic",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "IsPublic",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "ConcurrencyStamp",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": {
+ "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Sorting",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.PagedResultRequestDto": {
+ "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "SkipCount",
+ "type": "System.Int32",
+ "typeSimple": "number"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.LimitedResultRequestDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "DefaultMaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number"
+ },
+ {
+ "name": "MaxMaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number"
+ },
+ {
+ "name": "MaxResultCount",
+ "type": "System.Int32",
+ "typeSimple": "number"
+ }
+ ]
+ },
+ "Volo.Abp.Application.Dtos.PagedResultDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ListResultDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": [
+ "T"
+ ],
+ "properties": [
+ {
+ "name": "TotalCount",
+ "type": "System.Int64",
+ "typeSimple": "number"
+ }
+ ]
+ },
+ "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",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsDefault",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "IsPublic",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityRoleUpdateDto": {
+ "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "ConcurrencyStamp",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.GetIdentityUsersInput": {
+ "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityUserCreateDto": {
+ "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Password",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Surname",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TwoFactorEnabled",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "LockoutEnabled",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "RoleNames",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityUserUpdateDto": {
+ "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Password",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ConcurrencyStamp",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.IdentityUserUpdateRolesDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "RoleNames",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ }
+ ]
+ },
+ "Volo.Abp.Users.UserData": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Id",
+ "type": "System.Guid",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TenantId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Surname",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "EmailConfirmed",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumberConfirmed",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.UserLookupSearchInputDto": {
+ "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.UserLookupCountInputDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.ProfileDto": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Surname",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsExternal",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "HasPassword",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.UpdateProfileDto": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Surname",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Identity.ChangePasswordInput": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "CurrentPassword",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "NewPassword",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.GetPermissionListResultDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "EntityDisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Groups",
+ "type": "[Volo.Abp.PermissionManagement.PermissionGroupDto]",
+ "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGroupDto]"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.PermissionGroupDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Permissions",
+ "type": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]",
+ "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.PermissionGrantInfoDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ParentName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsGranted",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "AllowedProviders",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ },
+ {
+ "name": "GrantedProviders",
+ "type": "[Volo.Abp.PermissionManagement.ProviderInfoDto]",
+ "typeSimple": "[Volo.Abp.PermissionManagement.ProviderInfoDto]"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.ProviderInfoDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "ProviderName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ProviderKey",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.UpdatePermissionsDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Permissions",
+ "type": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]",
+ "typeSimple": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]"
+ }
+ ]
+ },
+ "Volo.Abp.PermissionManagement.UpdatePermissionDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsGranted",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.TenantManagement.TenantDto": {
+ "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.TenantManagement.GetTenantsInput": {
+ "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Filter",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.TenantManagement.TenantCreateDto": {
+ "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "AdminEmailAddress",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "AdminPassword",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase": {
+ "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.TenantManagement.TenantUpdateDto": {
+ "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase",
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": []
+ },
+ "Volo.Abp.FeatureManagement.GetFeatureListResultDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Groups",
+ "type": "[Volo.Abp.FeatureManagement.FeatureGroupDto]",
+ "typeSimple": "[Volo.Abp.FeatureManagement.FeatureGroupDto]"
+ }
+ ]
+ },
+ "Volo.Abp.FeatureManagement.FeatureGroupDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Features",
+ "type": "[Volo.Abp.FeatureManagement.FeatureDto]",
+ "typeSimple": "[Volo.Abp.FeatureManagement.FeatureDto]"
+ }
+ ]
+ },
+ "Volo.Abp.FeatureManagement.FeatureDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Value",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Provider",
+ "type": "Volo.Abp.FeatureManagement.FeatureProviderDto",
+ "typeSimple": "Volo.Abp.FeatureManagement.FeatureProviderDto"
+ },
+ {
+ "name": "Description",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ValueType",
+ "type": "Volo.Abp.Validation.StringValues.IStringValueType",
+ "typeSimple": "Volo.Abp.Validation.StringValues.IStringValueType"
+ },
+ {
+ "name": "Depth",
+ "type": "System.Int32",
+ "typeSimple": "number"
+ },
+ {
+ "name": "ParentName",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.FeatureManagement.FeatureProviderDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Key",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Validation.StringValues.IStringValueType": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Item",
+ "type": "System.Object",
+ "typeSimple": "object"
+ },
+ {
+ "name": "Properties",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ },
+ {
+ "name": "Validator",
+ "type": "Volo.Abp.Validation.StringValues.IValueValidator",
+ "typeSimple": "Volo.Abp.Validation.StringValues.IValueValidator"
+ }
+ ]
+ },
+ "Volo.Abp.Validation.StringValues.IValueValidator": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Item",
+ "type": "System.Object",
+ "typeSimple": "object"
+ },
+ {
+ "name": "Properties",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ }
+ ]
+ },
+ "Volo.Abp.FeatureManagement.UpdateFeaturesDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Features",
+ "type": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]",
+ "typeSimple": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]"
+ }
+ ]
+ },
+ "Volo.Abp.FeatureManagement.UpdateFeatureDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Value",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Localization",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto"
+ },
+ {
+ "name": "Auth",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto"
+ },
+ {
+ "name": "Setting",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto"
+ },
+ {
+ "name": "CurrentUser",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto"
+ },
+ {
+ "name": "Features",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto"
+ },
+ {
+ "name": "MultiTenancy",
+ "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto"
+ },
+ {
+ "name": "CurrentTenant",
+ "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto"
+ },
+ {
+ "name": "Timing",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto"
+ },
+ {
+ "name": "Clock",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto"
+ },
+ {
+ "name": "ObjectExtensions",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Values",
+ "type": "{System.String:{System.String:System.String}}",
+ "typeSimple": "{string:{string:string}}"
+ },
+ {
+ "name": "Languages",
+ "type": "[Volo.Abp.Localization.LanguageInfo]",
+ "typeSimple": "[Volo.Abp.Localization.LanguageInfo]"
+ },
+ {
+ "name": "CurrentCulture",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto"
+ },
+ {
+ "name": "DefaultResourceName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "LanguagesMap",
+ "type": "{System.String:[Volo.Abp.NameValue]}",
+ "typeSimple": "{string:[Volo.Abp.NameValue]}"
+ },
+ {
+ "name": "LanguageFilesMap",
+ "type": "{System.String:[Volo.Abp.NameValue]}",
+ "typeSimple": "{string:[Volo.Abp.NameValue]}"
+ }
+ ]
+ },
+ "Volo.Abp.Localization.LanguageInfo": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "CultureName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "UiCultureName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "FlagIcon",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "DisplayName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "EnglishName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ThreeLetterIsoLanguageName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TwoLetterIsoLanguageName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsRightToLeft",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "CultureName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "NativeName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DateTimeFormat",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "CalendarAlgorithmType",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DateTimeFormatLong",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ShortDatePattern",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "FullDateTimePattern",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DateSeparator",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "ShortTimePattern",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "LongTimePattern",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "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": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Value",
+ "type": "T",
+ "typeSimple": "T"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Policies",
+ "type": "{System.String:System.Boolean}",
+ "typeSimple": "{string:boolean}"
+ },
+ {
+ "name": "GrantedPolicies",
+ "type": "{System.String:System.Boolean}",
+ "typeSimple": "{string:boolean}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Values",
+ "type": "{System.String:System.String}",
+ "typeSimple": "{string:string}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsAuthenticated",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "Id",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "TenantId",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "UserName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "SurName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Email",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "EmailVerified",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "PhoneNumber",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "PhoneNumberVerified",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "Roles",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Values",
+ "type": "{System.String:System.String}",
+ "typeSimple": "{string:string}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsEnabled",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Id",
+ "type": "System.Guid?",
+ "typeSimple": "string?"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsAvailable",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "TimeZone",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Iana",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone"
+ },
+ {
+ "name": "Windows",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "TimeZoneName",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "TimeZoneId",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Kind",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Modules",
+ "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}",
+ "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}"
+ },
+ {
+ "name": "Enums",
+ "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}",
+ "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Entities",
+ "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}",
+ "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}"
+ },
+ {
+ "name": "Configuration",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Properties",
+ "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}",
+ "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}"
+ },
+ {
+ "name": "Configuration",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DisplayName",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto"
+ },
+ {
+ "name": "Api",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto"
+ },
+ {
+ "name": "Ui",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto"
+ },
+ {
+ "name": "Attributes",
+ "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]",
+ "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]"
+ },
+ {
+ "name": "Configuration",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ },
+ {
+ "name": "DefaultValue",
+ "type": "System.Object",
+ "typeSimple": "object"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Resource",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "OnGet",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto"
+ },
+ {
+ "name": "OnCreate",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto"
+ },
+ {
+ "name": "OnUpdate",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsAvailable",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsAvailable",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsAvailable",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "OnTable",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto"
+ },
+ {
+ "name": "OnCreateForm",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto"
+ },
+ {
+ "name": "OnEditForm",
+ "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto",
+ "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsVisible",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IsVisible",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Config",
+ "type": "{System.String:System.Object}",
+ "typeSimple": "{string:object}"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Fields",
+ "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]",
+ "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]"
+ },
+ {
+ "name": "LocalizationResource",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Value",
+ "type": "System.Object",
+ "typeSimple": "object"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "IncludeTypes",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Modules",
+ "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}",
+ "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}"
+ },
+ {
+ "name": "Types",
+ "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}",
+ "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ModuleApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "RootPath",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "RemoteServiceName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Controllers",
+ "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}",
+ "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ControllerApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "ControllerName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Interfaces",
+ "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]",
+ "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]"
+ },
+ {
+ "name": "Actions",
+ "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}",
+ "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ActionApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "UniqueName",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "HttpMethod",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Url",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "SupportedVersions",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ },
+ {
+ "name": "ParametersOnMethod",
+ "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]",
+ "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]"
+ },
+ {
+ "name": "Parameters",
+ "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]",
+ "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]"
+ },
+ {
+ "name": "ReturnValue",
+ "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel",
+ "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeAsString",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsOptional",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "DefaultValue",
+ "type": "System.Object",
+ "typeSimple": "object"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ParameterApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "NameOnMethod",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsOptional",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "DefaultValue",
+ "type": "System.Object",
+ "typeSimple": "object"
+ },
+ {
+ "name": "ConstraintTypes",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ },
+ {
+ "name": "BindingSourceId",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "DescriptorName",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.TypeApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "BaseType",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "IsEnum",
+ "type": "System.Boolean",
+ "typeSimple": "boolean"
+ },
+ {
+ "name": "EnumNames",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ },
+ {
+ "name": "EnumValues",
+ "type": "[System.Object]",
+ "typeSimple": "[object]"
+ },
+ {
+ "name": "GenericArguments",
+ "type": "[System.String]",
+ "typeSimple": "[string]"
+ },
+ {
+ "name": "Properties",
+ "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]",
+ "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]"
+ }
+ ]
+ },
+ "Volo.Abp.Http.Modeling.PropertyApiDescriptionModel": {
+ "baseType": null,
+ "isEnum": false,
+ "enumNames": null,
+ "enumValues": null,
+ "genericArguments": null,
+ "properties": [
+ {
+ "name": "Name",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "Type",
+ "type": "System.String",
+ "typeSimple": "string"
+ },
+ {
+ "name": "TypeSimple",
+ "type": "System.String",
+ "typeSimple": "string"
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/identity-role.service.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/identity-role.service.ts
new file mode 100644
index 0000000000..5fd029c43d
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/identity-role.service.ts
@@ -0,0 +1,58 @@
+import type { ListResultDto, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core';
+import { RestService } from '@abp/ng.core';
+import { Injectable } from '@angular/core';
+import type { IdentityRoleCreateDto, IdentityRoleDto, IdentityRoleUpdateDto } from './models';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class IdentityRoleService {
+ apiName = 'AbpIdentity';
+
+ create = (input: IdentityRoleCreateDto) =>
+ this.restService.request({
+ method: 'POST',
+ url: '/api/identity/roles',
+ body: input,
+ },
+ { apiName: this.apiName });
+
+ delete = (id: string) =>
+ this.restService.request({
+ method: 'DELETE',
+ url: `/api/identity/roles/${id}`,
+ },
+ { apiName: this.apiName });
+
+ get = (id: string) =>
+ this.restService.request({
+ method: 'GET',
+ url: `/api/identity/roles/${id}`,
+ },
+ { apiName: this.apiName });
+
+ getAllList = () =>
+ this.restService.request>({
+ method: 'GET',
+ url: '/api/identity/roles/all',
+ },
+ { apiName: this.apiName });
+
+ getList = (input: PagedAndSortedResultRequestDto) =>
+ this.restService.request>({
+ method: 'GET',
+ url: '/api/identity/roles',
+ params: { sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },
+ },
+ { apiName: this.apiName });
+
+ update = (id: string, input: IdentityRoleUpdateDto) =>
+ this.restService.request({
+ method: 'PUT',
+ url: `/api/identity/roles/${id}`,
+ body: input,
+ },
+ { apiName: this.apiName });
+
+ constructor(private restService: RestService) {}
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/identity-user-lookup.service.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/identity-user-lookup.service.ts
new file mode 100644
index 0000000000..af4583aa28
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/identity-user-lookup.service.ts
@@ -0,0 +1,44 @@
+import type { UserLookupCountInputDto, UserLookupSearchInputDto } from './models';
+import { RestService } from '@abp/ng.core';
+import type { ListResultDto } from '@abp/ng.core';
+import { Injectable } from '@angular/core';
+import type { UserData } from '../users/models';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class IdentityUserLookupService {
+ apiName = 'AbpIdentity';
+
+ findById = (id: string) =>
+ this.restService.request({
+ method: 'GET',
+ url: `/api/identity/users/lookup/${id}`,
+ },
+ { apiName: this.apiName });
+
+ findByUserName = (userName: string) =>
+ this.restService.request({
+ method: 'GET',
+ url: `/api/identity/users/lookup/by-username/${userName}`,
+ },
+ { apiName: this.apiName });
+
+ getCount = (input: UserLookupCountInputDto) =>
+ this.restService.request({
+ method: 'GET',
+ url: '/api/identity/users/lookup/count',
+ params: { filter: input.filter },
+ },
+ { apiName: this.apiName });
+
+ search = (input: UserLookupSearchInputDto) =>
+ this.restService.request>({
+ method: 'GET',
+ url: '/api/identity/users/lookup/search',
+ params: { filter: input.filter, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },
+ },
+ { apiName: this.apiName });
+
+ constructor(private restService: RestService) {}
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/identity-user.service.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/identity-user.service.ts
new file mode 100644
index 0000000000..fe69946ff1
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/identity-user.service.ts
@@ -0,0 +1,93 @@
+import type {
+ GetIdentityUsersInput,
+ IdentityRoleDto,
+ IdentityUserCreateDto,
+ IdentityUserDto,
+ IdentityUserUpdateDto,
+ IdentityUserUpdateRolesDto } from './models';
+import { RestService } from '@abp/ng.core';
+import type { ListResultDto, PagedResultDto } from '@abp/ng.core';
+import { Injectable } from '@angular/core';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class IdentityUserService {
+ apiName = 'AbpIdentity';
+
+ create = (input: IdentityUserCreateDto) =>
+ this.restService.request({
+ method: 'POST',
+ url: '/api/identity/users',
+ body: input,
+ },
+ { apiName: this.apiName });
+
+ delete = (id: string) =>
+ this.restService.request({
+ method: 'DELETE',
+ url: `/api/identity/users/${id}`,
+ },
+ { apiName: this.apiName });
+
+ findByEmail = (email: string) =>
+ this.restService.request({
+ method: 'GET',
+ url: `/api/identity/users/by-email/${email}`,
+ },
+ { apiName: this.apiName });
+
+ findByUsername = (username: string) =>
+ this.restService.request({
+ method: 'GET',
+ url: '/api/identity/users/by-username/{userName}',
+ },
+ { apiName: this.apiName });
+
+ get = (id: string) =>
+ this.restService.request({
+ method: 'GET',
+ url: `/api/identity/users/${id}`,
+ },
+ { apiName: this.apiName });
+
+ getAssignableRoles = () =>
+ this.restService.request>({
+ method: 'GET',
+ url: '/api/identity/users/assignable-roles',
+ },
+ { apiName: this.apiName });
+
+ getList = (input: GetIdentityUsersInput) =>
+ this.restService.request>({
+ method: 'GET',
+ url: '/api/identity/users',
+ params: { filter: input.filter, sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount },
+ },
+ { apiName: this.apiName });
+
+ getRoles = (id: string) =>
+ this.restService.request>({
+ method: 'GET',
+ url: `/api/identity/users/${id}/roles`,
+ },
+ { apiName: this.apiName });
+
+ update = (id: string, input: IdentityUserUpdateDto) =>
+ this.restService.request({
+ method: 'PUT',
+ url: `/api/identity/users/${id}`,
+ body: input,
+ },
+ { apiName: this.apiName });
+
+ updateRoles = (id: string, input: IdentityUserUpdateRolesDto) =>
+ this.restService.request({
+ method: 'PUT',
+ url: `/api/identity/users/${id}/roles`,
+ body: input,
+ },
+ { apiName: this.apiName });
+
+ constructor(private restService: RestService) {}
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/index.ts
new file mode 100644
index 0000000000..df2fed0c35
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/index.ts
@@ -0,0 +1,5 @@
+export * from './identity-role.service';
+export * from './identity-user-lookup.service';
+export * from './identity-user.service';
+export * from './models';
+export * from './profile.service';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/models.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/models.ts
new file mode 100644
index 0000000000..95f62fa77e
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/models.ts
@@ -0,0 +1,95 @@
+import type { ExtensibleEntityDto, ExtensibleFullAuditedEntityDto, ExtensibleObject, PagedAndSortedResultRequestDto } from '@abp/ng.core';
+
+export interface ChangePasswordInput {
+ currentPassword: string;
+ newPassword: string;
+}
+
+export interface GetIdentityUsersInput extends PagedAndSortedResultRequestDto {
+ filter: string;
+}
+
+// tslint:disable-next-line: no-empty-interface
+export interface IdentityRoleCreateDto extends IdentityRoleCreateOrUpdateDtoBase {
+}
+
+export interface IdentityRoleCreateOrUpdateDtoBase extends ExtensibleObject {
+ name: string;
+ isDefault: boolean;
+ isPublic: boolean;
+}
+
+export interface IdentityRoleDto extends ExtensibleEntityDto {
+ name: string;
+ isDefault: boolean;
+ isStatic: boolean;
+ isPublic: boolean;
+ concurrencyStamp: string;
+}
+
+export interface IdentityRoleUpdateDto extends IdentityRoleCreateOrUpdateDtoBase {
+ concurrencyStamp: string;
+}
+
+export interface IdentityUserCreateDto extends IdentityUserCreateOrUpdateDtoBase {
+ password: string;
+}
+
+export interface IdentityUserCreateOrUpdateDtoBase extends ExtensibleObject {
+ userName: string;
+ name: string;
+ surname: string;
+ email: string;
+ phoneNumber: string;
+ lockoutEnabled: boolean;
+ roleNames: string[];
+}
+
+export interface IdentityUserDto extends ExtensibleFullAuditedEntityDto {
+ tenantId?: string;
+ userName: string;
+ name: string;
+ surname: string;
+ email: string;
+ emailConfirmed: boolean;
+ phoneNumber: string;
+ phoneNumberConfirmed: boolean;
+ lockoutEnabled: boolean;
+ lockoutEnd?: string;
+ concurrencyStamp: string;
+}
+
+export interface IdentityUserUpdateDto extends IdentityUserCreateOrUpdateDtoBase {
+ password: string;
+ concurrencyStamp: string;
+}
+
+export interface IdentityUserUpdateRolesDto {
+ roleNames: string[];
+}
+
+export interface ProfileDto extends ExtensibleObject {
+ userName: string;
+ email: string;
+ name: string;
+ surname: string;
+ phoneNumber: string;
+ isExternal: boolean;
+ hasPassword: boolean;
+}
+
+export interface UpdateProfileDto extends ExtensibleObject {
+ userName: string;
+ email: string;
+ name: string;
+ surname: string;
+ phoneNumber: string;
+}
+
+export interface UserLookupCountInputDto {
+ filter: string;
+}
+
+export interface UserLookupSearchInputDto extends PagedAndSortedResultRequestDto {
+ filter: string;
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/profile.service.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/profile.service.ts
new file mode 100644
index 0000000000..4b8460d03b
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/identity/profile.service.ts
@@ -0,0 +1,35 @@
+import type { ChangePasswordInput, ProfileDto, UpdateProfileDto } from './models';
+import { RestService } from '@abp/ng.core';
+import { Injectable } from '@angular/core';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class ProfileService {
+ apiName = 'AbpIdentity';
+
+ changePassword = (input: ChangePasswordInput) =>
+ this.restService.request({
+ method: 'POST',
+ url: '/api/identity/my-profile/change-password',
+ body: input,
+ },
+ { apiName: this.apiName });
+
+ get = () =>
+ this.restService.request({
+ method: 'GET',
+ url: '/api/identity/my-profile',
+ },
+ { apiName: this.apiName });
+
+ update = (input: UpdateProfileDto) =>
+ this.restService.request({
+ method: 'PUT',
+ url: '/api/identity/my-profile',
+ body: input,
+ },
+ { apiName: this.apiName });
+
+ constructor(private restService: RestService) {}
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/users/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/users/index.ts
new file mode 100644
index 0000000000..e9644dae47
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/users/index.ts
@@ -0,0 +1 @@
+export * from './models';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/users/models.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/users/models.ts
new file mode 100644
index 0000000000..5201620e29
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/proxy/users/models.ts
@@ -0,0 +1,12 @@
+
+export interface UserData {
+ id: string;
+ tenantId?: string;
+ userName: string;
+ name: string;
+ surname: string;
+ email: string;
+ emailConfirmed: boolean;
+ phoneNumber: string;
+ phoneNumberConfirmed: boolean;
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/services/identity-state.service.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/services/identity-state.service.ts
new file mode 100644
index 0000000000..0fcb6d4014
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/services/identity-state.service.ts
@@ -0,0 +1,82 @@
+import { ABP } from '@abp/ng.core';
+import { Injectable } from '@angular/core';
+import { Store } from '@ngxs/store';
+import {
+ CreateRole,
+ CreateUser,
+ DeleteRole,
+ DeleteUser,
+ GetRoleById,
+ GetRoles,
+ GetUserById,
+ GetUsers,
+ UpdateRole,
+ UpdateUser,
+ GetUserRoles,
+} from '../actions/identity.actions';
+import { Identity } from '../models/identity';
+import { IdentityState } from '../states/identity.state';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class IdentityStateService {
+ constructor(private store: Store) {}
+
+ getRoles() {
+ return this.store.selectSnapshot(IdentityState.getRoles);
+ }
+ getRolesTotalCount() {
+ return this.store.selectSnapshot(IdentityState.getRolesTotalCount);
+ }
+ getUsers() {
+ return this.store.selectSnapshot(IdentityState.getUsers);
+ }
+ getUsersTotalCount() {
+ return this.store.selectSnapshot(IdentityState.getUsersTotalCount);
+ }
+
+ dispatchGetRoles(...args: ConstructorParameters) {
+ return this.store.dispatch(new GetRoles(...args));
+ }
+
+ dispatchGetRoleById(...args: ConstructorParameters) {
+ return this.store.dispatch(new GetRoleById(...args));
+ }
+
+ dispatchDeleteRole(...args: ConstructorParameters) {
+ return this.store.dispatch(new DeleteRole(...args));
+ }
+
+ dispatchCreateRole(...args: ConstructorParameters) {
+ return this.store.dispatch(new CreateRole(...args));
+ }
+
+ dispatchUpdateRole(...args: ConstructorParameters) {
+ return this.store.dispatch(new UpdateRole(...args));
+ }
+
+ dispatchGetUsers(...args: ConstructorParameters) {
+ return this.store.dispatch(new GetUsers(...args));
+ }
+
+ dispatchGetUserById(...args: ConstructorParameters) {
+ return this.store.dispatch(new GetUserById(...args));
+ }
+
+ dispatchDeleteUser(...args: ConstructorParameters) {
+ return this.store.dispatch(new DeleteUser(...args));
+ }
+
+ dispatchCreateUser(...args: ConstructorParameters) {
+ return this.store.dispatch(new CreateUser(...args));
+ }
+
+ dispatchUpdateUser(...args: ConstructorParameters) {
+ return this.store.dispatch(new UpdateUser(...args));
+ }
+
+ dispatchGetUserRoles(...args: ConstructorParameters) {
+ return this.store.dispatch(new GetUserRoles(...args));
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/services/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/services/index.ts
new file mode 100644
index 0000000000..d29e295c98
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/services/index.ts
@@ -0,0 +1 @@
+export * from './identity-state.service';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/states/identity.state.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/states/identity.state.ts
new file mode 100644
index 0000000000..f67661e0d1
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/states/identity.state.ts
@@ -0,0 +1,138 @@
+import { Injectable } from '@angular/core';
+import { Action, Selector, State, StateContext } from '@ngxs/store';
+import { pluck, tap } from 'rxjs/operators';
+import {
+ CreateRole,
+ CreateUser,
+ DeleteRole,
+ DeleteUser,
+ GetRoleById,
+ GetRoles,
+ GetUserById,
+ GetUserRoles,
+ GetUsers,
+ UpdateRole,
+ UpdateUser,
+} from '../actions/identity.actions';
+import { Identity } from '../models/identity';
+import { IdentityRoleService } from '../proxy/identity/identity-role.service';
+import { IdentityUserService } from '../proxy/identity/identity-user.service';
+import { IdentityRoleDto, IdentityUserDto } from '../proxy/identity/models';
+
+@State({
+ name: 'IdentityState',
+ defaults: { roles: {}, selectedRole: {}, users: {}, selectedUser: {} } as Identity.State,
+})
+@Injectable()
+export class IdentityState {
+ @Selector()
+ static getRoles({ roles }: Identity.State): IdentityRoleDto[] {
+ return roles.items || [];
+ }
+
+ @Selector()
+ static getRolesTotalCount({ roles }: Identity.State): number {
+ return roles.totalCount || 0;
+ }
+
+ @Selector()
+ static getUsers({ users }: Identity.State): IdentityUserDto[] {
+ return users.items || [];
+ }
+
+ @Selector()
+ static getUsersTotalCount({ users }: Identity.State): number {
+ return users.totalCount || 0;
+ }
+
+ constructor(
+ private identityUserService: IdentityUserService,
+ private identityRoleService: IdentityRoleService,
+ ) {}
+
+ @Action(GetRoles)
+ getRoles({ patchState }: StateContext, { payload }: GetRoles) {
+ return this.identityRoleService.getList(payload).pipe(
+ tap(roles =>
+ patchState({
+ roles,
+ }),
+ ),
+ );
+ }
+
+ @Action(GetRoleById)
+ getRole({ patchState }: StateContext, { payload }: GetRoleById) {
+ return this.identityRoleService.get(payload).pipe(
+ tap(selectedRole =>
+ patchState({
+ selectedRole,
+ }),
+ ),
+ );
+ }
+
+ @Action(DeleteRole)
+ deleteRole(_, { payload }: GetRoleById) {
+ return this.identityRoleService.delete(payload);
+ }
+
+ @Action(CreateRole)
+ addRole(_, { payload }: CreateRole) {
+ return this.identityRoleService.create(payload);
+ }
+
+ @Action(UpdateRole)
+ updateRole({ getState }: StateContext, { payload }: UpdateRole) {
+ return this.identityRoleService.update(payload.id, { ...getState().selectedRole, ...payload });
+ }
+
+ @Action(GetUsers)
+ getUsers({ patchState }: StateContext, { payload }: GetUsers) {
+ return this.identityUserService.getList(payload).pipe(
+ tap(users =>
+ patchState({
+ users,
+ }),
+ ),
+ );
+ }
+
+ @Action(GetUserById)
+ getUser({ patchState }: StateContext, { payload }: GetUserById) {
+ return this.identityUserService.get(payload).pipe(
+ tap(selectedUser =>
+ patchState({
+ selectedUser,
+ }),
+ ),
+ );
+ }
+
+ @Action(DeleteUser)
+ deleteUser(_, { payload }: GetUserById) {
+ return this.identityUserService.delete(payload);
+ }
+
+ @Action(CreateUser)
+ addUser(_, { payload }: CreateUser) {
+ return this.identityUserService.create(payload);
+ }
+
+ @Action(UpdateUser)
+ updateUser({ getState }: StateContext, { payload }: UpdateUser) {
+ return this.identityUserService.update(payload.id, { ...getState().selectedUser, ...payload });
+ }
+
+ @Action(GetUserRoles)
+ getUserRoles({ patchState }: StateContext, { payload }: GetUserRoles) {
+ return this.identityUserService.getRoles(payload).pipe(
+ pluck('items'),
+ tap(selectedUserRoles =>
+ patchState({
+ selectedUserRoles,
+ }),
+ ),
+ );
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/states/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/states/index.ts
new file mode 100644
index 0000000000..7dccd18456
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/states/index.ts
@@ -0,0 +1 @@
+export * from './identity.state';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/tests/identity-state.service.spec.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/tests/identity-state.service.spec.ts
new file mode 100644
index 0000000000..ac0952d9c0
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/tests/identity-state.service.spec.ts
@@ -0,0 +1,58 @@
+import { createServiceFactory, SpectatorService, SpyObject } from '@ngneat/spectator/jest';
+import { IdentityStateService } from '../services/identity-state.service';
+import { IdentityState } from '../states/identity.state';
+import { Store } from '@ngxs/store';
+import * as IdentityActions from '../actions/identity.actions';
+
+describe('IdentityStateService', () => {
+ let service: IdentityStateService;
+ let spectator: SpectatorService;
+ let store: SpyObject;
+
+ const createService = createServiceFactory({ service: IdentityStateService, mocks: [Store] });
+ beforeEach(() => {
+ spectator = createService();
+ service = spectator.service;
+ store = spectator.inject(Store);
+ });
+
+ test('should have the all IdentityState static methods', () => {
+ const reg = /(?<=static )(.*)(?=\()/gm;
+ IdentityState.toString()
+ .match(reg)
+ .forEach(fnName => {
+ expect(service[fnName]).toBeTruthy();
+
+ const spy = jest.spyOn(store, 'selectSnapshot');
+ spy.mockClear();
+
+ const isDynamicSelector = IdentityState[fnName].name !== 'memoized';
+
+ if (isDynamicSelector) {
+ IdentityState[fnName] = jest.fn((...args) => args);
+ service[fnName]('test', 0, {});
+ expect(IdentityState[fnName]).toHaveBeenCalledWith('test', 0, {});
+ } else {
+ service[fnName]();
+ expect(spy).toHaveBeenCalledWith(IdentityState[fnName]);
+ }
+ });
+ });
+
+ test('should have a dispatch method for every IdentityState action', () => {
+ const reg = /(?<=dispatch)(\w+)(?=\()/gm;
+ IdentityStateService.toString()
+ .match(reg)
+ .forEach(fnName => {
+ expect(IdentityActions[fnName]).toBeTruthy();
+
+ const spy = jest.spyOn(store, 'dispatch');
+ spy.mockClear();
+
+ const params = Array.from(new Array(IdentityActions[fnName].length));
+
+ service[`dispatch${fnName}`](...params);
+ expect(spy).toHaveBeenCalledWith(new IdentityActions[fnName](...params));
+ });
+ });
+});
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/tokens/extensions.token.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/tokens/extensions.token.ts
new file mode 100644
index 0000000000..14e506da0a
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/tokens/extensions.token.ts
@@ -0,0 +1,91 @@
+import {
+ CreateFormPropContributorCallback,
+ EditFormPropContributorCallback,
+ EntityActionContributorCallback,
+ EntityPropContributorCallback,
+ ToolbarActionContributorCallback,
+} from '@abp/ng.theme.shared/extensions';
+import { InjectionToken } from '@angular/core';
+import { DEFAULT_ROLES_ENTITY_ACTIONS } from '../defaults/default-roles-entity-actions';
+import { DEFAULT_ROLES_ENTITY_PROPS } from '../defaults/default-roles-entity-props';
+import {
+ DEFAULT_ROLES_CREATE_FORM_PROPS,
+ DEFAULT_ROLES_EDIT_FORM_PROPS,
+} from '../defaults/default-roles-form-props';
+import { DEFAULT_ROLES_TOOLBAR_ACTIONS } from '../defaults/default-roles-toolbar-actions';
+import { DEFAULT_USERS_ENTITY_ACTIONS } from '../defaults/default-users-entity-actions';
+import { DEFAULT_USERS_ENTITY_PROPS } from '../defaults/default-users-entity-props';
+import {
+ DEFAULT_USERS_CREATE_FORM_PROPS,
+ DEFAULT_USERS_EDIT_FORM_PROPS,
+} from '../defaults/default-users-form-props';
+import { DEFAULT_USERS_TOOLBAR_ACTIONS } from '../defaults/default-users-toolbar-actions';
+import { eIdentityComponents } from '../enums/components';
+import { IdentityRoleDto, IdentityUserDto } from '../proxy/identity/models';
+
+export const DEFAULT_IDENTITY_ENTITY_ACTIONS = {
+ [eIdentityComponents.Roles]: DEFAULT_ROLES_ENTITY_ACTIONS,
+ [eIdentityComponents.Users]: DEFAULT_USERS_ENTITY_ACTIONS,
+};
+
+export const DEFAULT_IDENTITY_TOOLBAR_ACTIONS = {
+ [eIdentityComponents.Roles]: DEFAULT_ROLES_TOOLBAR_ACTIONS,
+ [eIdentityComponents.Users]: DEFAULT_USERS_TOOLBAR_ACTIONS,
+};
+
+export const DEFAULT_IDENTITY_ENTITY_PROPS = {
+ [eIdentityComponents.Roles]: DEFAULT_ROLES_ENTITY_PROPS,
+ [eIdentityComponents.Users]: DEFAULT_USERS_ENTITY_PROPS,
+};
+
+export const DEFAULT_IDENTITY_CREATE_FORM_PROPS = {
+ [eIdentityComponents.Roles]: DEFAULT_ROLES_CREATE_FORM_PROPS,
+ [eIdentityComponents.Users]: DEFAULT_USERS_CREATE_FORM_PROPS,
+};
+
+export const DEFAULT_IDENTITY_EDIT_FORM_PROPS = {
+ [eIdentityComponents.Roles]: DEFAULT_ROLES_EDIT_FORM_PROPS,
+ [eIdentityComponents.Users]: DEFAULT_USERS_EDIT_FORM_PROPS,
+};
+
+export const IDENTITY_ENTITY_ACTION_CONTRIBUTORS = new InjectionToken(
+ 'IDENTITY_ENTITY_ACTION_CONTRIBUTORS',
+);
+
+export const IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS = new InjectionToken(
+ 'IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS',
+);
+
+export const IDENTITY_ENTITY_PROP_CONTRIBUTORS = new InjectionToken(
+ 'IDENTITY_ENTITY_PROP_CONTRIBUTORS',
+);
+
+export const IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS = new InjectionToken(
+ 'IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS',
+);
+
+export const IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS = new InjectionToken(
+ 'IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS',
+);
+
+// Fix for TS4023 -> https://github.com/microsoft/TypeScript/issues/9944#issuecomment-254693497
+type EntityActionContributors = Partial<{
+ [eIdentityComponents.Roles]: EntityActionContributorCallback[];
+ [eIdentityComponents.Users]: EntityActionContributorCallback[];
+}>;
+type ToolbarActionContributors = Partial<{
+ [eIdentityComponents.Roles]: ToolbarActionContributorCallback[];
+ [eIdentityComponents.Users]: ToolbarActionContributorCallback[];
+}>;
+type EntityPropContributors = Partial<{
+ [eIdentityComponents.Roles]: EntityPropContributorCallback[];
+ [eIdentityComponents.Users]: EntityPropContributorCallback[];
+}>;
+type CreateFormPropContributors = Partial<{
+ [eIdentityComponents.Roles]: CreateFormPropContributorCallback[];
+ [eIdentityComponents.Users]: CreateFormPropContributorCallback[];
+}>;
+type EditFormPropContributors = Partial<{
+ [eIdentityComponents.Roles]: EditFormPropContributorCallback[];
+ [eIdentityComponents.Users]: EditFormPropContributorCallback[];
+}>;
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/tokens/index.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/tokens/index.ts
new file mode 100644
index 0000000000..33233400a2
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/lib/tokens/index.ts
@@ -0,0 +1 @@
+export * from './extensions.token';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/public-api.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/public-api.ts
new file mode 100644
index 0000000000..9ba4a982db
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/public-api.ts
@@ -0,0 +1,11 @@
+export * from './lib/actions';
+export * from './lib/components';
+export * from './lib/enums';
+export * from './lib/guards';
+export * from './lib/identity.module';
+export * from './lib/models';
+export * from './lib/proxy/identity';
+export * from './lib/proxy/users';
+export * from './lib/services';
+export * from './lib/states';
+export * from './lib/tokens';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/src/test-setup.ts b/npm/ng-packs/nx/ng-packs/packages/identity/src/test-setup.ts
new file mode 100644
index 0000000000..1100b3e8a6
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/src/test-setup.ts
@@ -0,0 +1 @@
+import 'jest-preset-angular/setup-jest';
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.json b/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.json
new file mode 100644
index 0000000000..62ebbd9464
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "files": [],
+ "include": [],
+ "references": [
+ {
+ "path": "./tsconfig.lib.json"
+ },
+ {
+ "path": "./tsconfig.spec.json"
+ }
+ ]
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.lib.json b/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.lib.json
new file mode 100644
index 0000000000..bbcc12b1c7
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.lib.json
@@ -0,0 +1,14 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc",
+ "target": "es2015",
+ "declaration": true,
+ "declarationMap": true,
+ "inlineSources": true,
+ "types": [],
+ "lib": ["dom", "es2018"]
+ },
+ "exclude": ["src/test-setup.ts", "**/*.spec.ts"],
+ "include": ["**/*.ts"]
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.lib.prod.json b/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.lib.prod.json
new file mode 100644
index 0000000000..331d0ecb05
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.lib.prod.json
@@ -0,0 +1,11 @@
+/* To learn more about this file see: https://angular.io/config/tsconfig. */
+{
+ "extends": "./tsconfig.lib.json",
+ "compilerOptions": {
+ "declarationMap": false
+ },
+ "angularCompilerOptions": {
+ "compilationMode": "partial",
+ "enableIvy": false
+ }
+}
diff --git a/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.spec.json b/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.spec.json
new file mode 100644
index 0000000000..cfff29a544
--- /dev/null
+++ b/npm/ng-packs/nx/ng-packs/packages/identity/tsconfig.spec.json
@@ -0,0 +1,10 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../../dist/out-tsc",
+ "module": "commonjs",
+ "types": ["jest", "node"]
+ },
+ "files": ["src/test-setup.ts"],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
+}
diff --git a/npm/ng-packs/nx/ng-packs/tsconfig.base.json b/npm/ng-packs/nx/ng-packs/tsconfig.base.json
index b5476c8d32..dd1e858d7c 100644
--- a/npm/ng-packs/nx/ng-packs/tsconfig.base.json
+++ b/npm/ng-packs/nx/ng-packs/tsconfig.base.json
@@ -15,9 +15,11 @@
"skipDefaultLibCheck": true,
"baseUrl": ".",
"paths": {
+ "@abp/ng.identity": ["dist/packages/identity/"],
+ "@abp/ng.identity/config": ["dist/packages/identity/config"],
"@abp/ng.account": ["dist/packages/account"],
- "@abp/ng.account/config": ["dist/packages/account/config"],
"@abp/ng.account.core": ["dist/packages/account-core"],
+ "@abp/ng.account/config": ["dist/packages/account/config"],
"@abp/ng.components": ["dist/packages/components"],
"@abp/ng.components/page": ["dist/packages/components/page"],
"@abp/ng.components/tree": ["dist/packages/components/tree"],