@acorex/modules 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/index.d.ts +1 -0
- package/auth/lib/account/account.module.d.ts +1 -1
- package/auth/lib/account/app-chooser/app-chooser-slot.component.d.ts +1 -1
- package/auth/lib/account/app-chooser/app-chooser.component.d.ts +1 -1
- package/auth/lib/account/profile/profile-slot.component.d.ts +6 -1
- package/auth/lib/account/tenant-chooser/tenant-chooser-dropdown.component.d.ts +1 -1
- package/auth/lib/auth.config.d.ts +5 -5
- package/auth/lib/error-handler.d.ts +1 -1
- package/auth/lib/login/password/password.component.d.ts +1 -1
- package/backend/index.d.ts +2 -0
- package/backend/lib/auth/oidc/application.loader.d.ts +2 -2
- package/backend/lib/auth/oidc/configuration.service.d.ts +60 -0
- package/backend/lib/auth/oidc/feature.loader.d.ts +1 -0
- package/backend/lib/auth/oidc/index.d.ts +3 -0
- package/backend/lib/auth/oidc/oidc.strategy.d.ts +5 -3
- package/backend/lib/auth/oidc/permission.loader.d.ts +11 -2
- package/backend/lib/auth/oidc/signincallback.component.d.ts +1 -0
- package/backend/lib/auth/oidc/tenant.loader.d.ts +2 -2
- package/backend/lib/auth/oidc/usermanager.service.d.ts +4 -1
- package/backend/lib/backend.configs.d.ts +0 -5
- package/backend/lib/data/api/data-provider.d.ts +4 -0
- package/backend/lib/data/index.d.ts +3 -0
- package/backend/lib/data/local/data-Conditioner.d.ts +6 -0
- package/backend/lib/data/local/local-data-provider.d.ts +23 -0
- package/esm2022/auth/index.mjs +2 -1
- package/esm2022/auth/lib/account/account.module.mjs +12 -12
- package/esm2022/auth/lib/account/app-chooser/app-chooser-list.component.mjs +6 -6
- package/esm2022/auth/lib/account/app-chooser/app-chooser-slot.component.mjs +7 -6
- package/esm2022/auth/lib/account/app-chooser/app-chooser.component.mjs +7 -6
- package/esm2022/auth/lib/account/profile/profile-slot.component.mjs +45 -18
- package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser-dropdown.component.mjs +6 -5
- package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser.component.mjs +7 -7
- package/esm2022/auth/lib/auth.config.mjs +7 -6
- package/esm2022/auth/lib/auth.module.mjs +4 -4
- package/esm2022/auth/lib/auth.routes.mjs +7 -6
- package/esm2022/auth/lib/error-handler.mjs +14 -7
- package/esm2022/auth/lib/forgot/password/password.component.mjs +4 -4
- package/esm2022/auth/lib/login/login.module.mjs +5 -6
- package/esm2022/auth/lib/login/password/password.component.mjs +26 -11
- package/esm2022/auth/lib/shared/layouts/blank/blank.layout.mjs +3 -3
- package/esm2022/auth/lib/shared/layouts/master/master.layout.mjs +8 -7
- package/esm2022/auth/lib/shared/services/idle.service.mjs +3 -3
- package/esm2022/auth/lib/store/auth.effects.mjs +3 -3
- package/esm2022/auth/lib/two-factor/two-factor-code/two-factor-code.component.mjs +4 -4
- package/esm2022/auth/lib/two-factor/two-factor.module.mjs +4 -4
- package/esm2022/backend/index.mjs +3 -1
- package/esm2022/backend/lib/auth/oidc/application.loader.mjs +15 -13
- package/esm2022/backend/lib/auth/oidc/configuration.service.mjs +53 -0
- package/esm2022/backend/lib/auth/oidc/feature.loader.mjs +16 -2
- package/esm2022/backend/lib/auth/oidc/index.mjs +4 -1
- package/esm2022/backend/lib/auth/oidc/oidc.strategy.mjs +59 -39
- package/esm2022/backend/lib/auth/oidc/permission.loader.mjs +31 -4
- package/esm2022/backend/lib/auth/oidc/signincallback.component.mjs +27 -7
- package/esm2022/backend/lib/auth/oidc/tenant.loader.mjs +16 -14
- package/esm2022/backend/lib/auth/oidc/usermanager.service.mjs +8 -6
- package/esm2022/backend/lib/backend.configs.mjs +2 -3
- package/esm2022/backend/lib/backend.module.mjs +9 -23
- package/esm2022/backend/lib/data/api/data-provider.mjs +49 -13
- package/esm2022/backend/lib/data/index.mjs +4 -0
- package/esm2022/backend/lib/data/local/data-Conditioner.mjs +76 -0
- package/esm2022/backend/lib/data/local/local-data-provider.mjs +84 -0
- package/esm2022/log-management/acorex-modules-log-management.mjs +5 -0
- package/esm2022/log-management/index.mjs +3 -0
- package/esm2022/log-management/lib/audit-logs.entity.mjs +392 -0
- package/esm2022/log-management/lib/log-management.module.mjs +16 -0
- package/esm2022/notification/index.mjs +3 -1
- package/esm2022/notification/lib/notification.module.mjs +4 -4
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-3tiGzryz.mjs → acorex-modules-auth-acorex-modules-auth-jEqtVhBE.mjs} +143 -109
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-jEqtVhBE.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth-app-chooser.component-BbtMSwfI.mjs +72 -0
- package/fesm2022/acorex-modules-auth-app-chooser.component-BbtMSwfI.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-blank.layout-0xNRyD5z.mjs → acorex-modules-auth-blank.layout-BOdRxDNv.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-blank.layout-0xNRyD5z.mjs.map → acorex-modules-auth-blank.layout-BOdRxDNv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-lGs54nBU.mjs → acorex-modules-auth-login.module-Drm4fC1I.mjs} +13 -12
- package/fesm2022/acorex-modules-auth-login.module-Drm4fC1I.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-master.layout-ytopPv2z.mjs → acorex-modules-auth-master.layout-cAm6TYeA.mjs} +12 -10
- package/fesm2022/acorex-modules-auth-master.layout-cAm6TYeA.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-password.component-Q9Me4kkK.mjs → acorex-modules-auth-password.component-Ch2Wqi2W.mjs} +12 -10
- package/fesm2022/{acorex-modules-auth-password.component-Q9Me4kkK.mjs.map → acorex-modules-auth-password.component-Ch2Wqi2W.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-password.component-D4CkGaq0.mjs +127 -0
- package/fesm2022/acorex-modules-auth-password.component-D4CkGaq0.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-jgo2XGe0.mjs → acorex-modules-auth-routes-DyjibH6l.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-jgo2XGe0.mjs.map → acorex-modules-auth-routes-DyjibH6l.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-CJu2Lfbf.mjs +84 -0
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-CJu2Lfbf.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-fP6CLq9T.mjs → acorex-modules-auth-two-factor-code.component-B41iXHoT.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-fP6CLq9T.mjs.map → acorex-modules-auth-two-factor-code.component-B41iXHoT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module--fcoNW-s.mjs → acorex-modules-auth-two-factor.module-A0hevYO2.mjs} +12 -10
- package/fesm2022/acorex-modules-auth-two-factor.module-A0hevYO2.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth.mjs +7 -5
- package/fesm2022/acorex-modules-auth.mjs.map +1 -1
- package/fesm2022/acorex-modules-backend.mjs +432 -227
- package/fesm2022/acorex-modules-backend.mjs.map +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +415 -0
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification.mjs +7 -4
- package/fesm2022/acorex-modules-notification.mjs.map +1 -1
- package/log-management/README.md +4 -0
- package/log-management/index.d.ts +2 -0
- package/log-management/lib/audit-logs.entity.d.ts +3 -0
- package/log-management/lib/log-management.module.d.ts +6 -0
- package/package.json +7 -1
- package/auth/lib/register/email/email.component.d.ts +0 -5
- package/auth/lib/register/register.module.d.ts +0 -7
- package/auth/lib/register/result/result.component.d.ts +0 -5
- package/backend/lib/auth/userpass/application.loader.d.ts +0 -6
- package/backend/lib/auth/userpass/index.d.ts +0 -4
- package/backend/lib/auth/userpass/permission.loader.d.ts +0 -5
- package/backend/lib/auth/userpass/tenant.loader.d.ts +0 -6
- package/backend/lib/auth/userpass/userpass.strategy.d.ts +0 -12
- package/esm2022/auth/lib/register/email/email.component.mjs +0 -42
- package/esm2022/auth/lib/register/register.module.mjs +0 -59
- package/esm2022/auth/lib/register/result/result.component.mjs +0 -33
- package/esm2022/backend/lib/auth/userpass/application.loader.mjs +0 -30
- package/esm2022/backend/lib/auth/userpass/index.mjs +0 -5
- package/esm2022/backend/lib/auth/userpass/permission.loader.mjs +0 -12
- package/esm2022/backend/lib/auth/userpass/tenant.loader.mjs +0 -26
- package/esm2022/backend/lib/auth/userpass/userpass.strategy.mjs +0 -40
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-3tiGzryz.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-app-chooser.component-Hh2T5orM.mjs +0 -70
- package/fesm2022/acorex-modules-auth-app-chooser.component-Hh2T5orM.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-email.component-ZbTwT8iu.mjs +0 -45
- package/fesm2022/acorex-modules-auth-email.component-ZbTwT8iu.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-login.module-lGs54nBU.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-master.layout-ytopPv2z.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-p1Ks9S5q.mjs +0 -110
- package/fesm2022/acorex-modules-auth-password.component-p1Ks9S5q.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-register.module-ckbVm-yf.mjs +0 -77
- package/fesm2022/acorex-modules-auth-register.module-ckbVm-yf.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-result.component-ORUU7lkV.mjs +0 -36
- package/fesm2022/acorex-modules-auth-result.component-ORUU7lkV.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-PeGg21Im.mjs +0 -84
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-PeGg21Im.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-two-factor.module--fcoNW-s.mjs.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-backend.mjs","sources":["../../../../libs/modules/backend/src/lib/backend.configs.ts","../../../../libs/modules/backend/src/lib/data/api/data-provider.ts","../../../../libs/modules/backend/src/lib/auth/oidc/application.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/feature.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/usermanager.service.ts","../../../../libs/modules/backend/src/lib/auth/oidc/oidc.strategy.ts","../../../../libs/modules/backend/src/lib/auth/oidc/permission.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/tenant.loader.ts","../../../../libs/modules/backend/src/lib/auth/userpass/application.loader.ts","../../../../libs/modules/backend/src/lib/auth/userpass/permission.loader.ts","../../../../libs/modules/backend/src/lib/auth/userpass/tenant.loader.ts","../../../../libs/modules/backend/src/lib/auth/userpass/userpass.strategy.ts","../../../../libs/modules/backend/src/lib/auth/oidc/signincallback.component.ts","../../../../libs/modules/backend/src/lib/backend.module.ts","../../../../libs/modules/backend/src/acorex-modules-backend.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const AXM_BACKEND_CONFIG_TOKEN = new InjectionToken<AXMBackendConfigs>('AXM_BACKEND_CONFIG_TOKEN');\n\nexport interface AXMBackendConfigs {\n baseUrl: string;\n}\n\nexport interface LocalizationValues {\n Default?: any;\n AbpLocalization?: {\n DisplayName: string;\n Description: string;\n };\n AbpTiming?: {\n DisplayName: string;\n Description: string;\n };\n // ... Other properties of LocalizationValues\n}\n\nexport interface CurrentCulture {\n displayName: string;\n englishName: string;\n threeLetterIsoLanguageName: string;\n twoLetterIsoLanguageName: string;\n isRightToLeft: boolean;\n cultureName: string;\n name: string;\n nativeName: string;\n dateTimeFormat: {\n calendarAlgorithmType: string;\n dateTimeFormatLong: string;\n shortDatePattern: string;\n fullDateTimePattern: string;\n dateSeparator: string;\n shortTimePattern: string;\n longTimePattern: string;\n };\n}\n\nexport interface SettingValues {\n 'Abp.Localization.DefaultLanguage': string;\n 'Abp.Timing.TimeZone': string;\n // ... Other properties of SettingValues\n}\n\nexport interface User {\n isAuthenticated: boolean;\n id: string | null;\n tenantId: string | null;\n // ... Other properties of User\n}\n\nexport interface FeaturesValues {\n [key: string]: string;\n}\n\nexport interface Tenant {\n id: string | null;\n name: string | null;\n isAvailable: boolean;\n}\n\nexport interface TimeZone {\n iana: {\n timeZoneName: string;\n };\n windows: {\n timeZoneId: string;\n };\n}\n\nexport interface RootObject {\n localization: {\n values: LocalizationValues;\n resources: any;\n languages: any[];\n currentCulture: CurrentCulture;\n defaultResourceName: string | null;\n languagesMap: any;\n languageFilesMap: any;\n };\n auth: {\n grantedPolicies: any;\n };\n setting: {\n values: SettingValues;\n };\n currentUser: User;\n features: {\n values: FeaturesValues;\n };\n globalFeatures: {\n enabledFeatures: any[];\n };\n multiTenancy: {\n isEnabled: boolean;\n };\n currentTenant: Tenant;\n timing: {\n timeZone: TimeZone;\n };\n clock: {\n kind: string;\n };\n objectExtensions: {\n modules: any;\n enums: any;\n };\n extraProperties: any;\n}\n","import { AXM_BACKEND_CONFIG_TOKEN } from '../../backend.configs';\nimport { AXPDataProvider } from '@acorex/platform/common';\nimport { AXPEntityConfig } from '@acorex/platform/layouts';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMBackendDataProvider implements AXPDataProvider {\n private configs = inject(AXM_BACKEND_CONFIG_TOKEN);\n private mainUrl = this.configs.baseUrl;\n\n constructor(private http: HttpClient) {}\n\n insertOne(entity: AXPEntityConfig, entityItem: any): Promise<any> {\n console.log('inserting....', entity.name, entityItem);\n const url = `${this.mainUrl}/${entity.module}/${entity.name}`;\n return firstValueFrom(this.http.post(url, entityItem));\n }\n\n insertMany(entity: AXPEntityConfig, entityList: any): Promise<any> {\n const promises = entityList.map((entity: any) => {\n const url = `${this.mainUrl}/${entity.module}/${entity.name}`;\n return firstValueFrom(this.http.post(url, entity));\n });\n return Promise.all(promises);\n }\n\n getOne(entity: AXPEntityConfig, id: string): Promise<any> {\n const url = `${this.mainUrl}/${entity.module}/${entity.name}/${id}`;\n return firstValueFrom(this.http.get(url));\n }\n\n getMany(entity: AXPEntityConfig, params?: any): Promise<any> {\n console.log('@REMOTE getMany', entity.name, params);\n\n let httpParams = new HttpParams()\n .set('Skip', params?.skip?.toString() ?? '0')\n .set('Take', params?.take?.toString() ?? '10');\n\n if (params?.sort && params?.sort.length > 0) {\n const sortParam = params?.sort.map((sort: any) => `${sort.field}:${sort.dir}`).join(',');\n httpParams = httpParams.set('$orderby', sortParam);\n }\n\n return firstValueFrom(\n this.http.get<any>(`${this.mainUrl}/${entity.module}/${entity.name}`, { params: httpParams })\n ).then((response) => {\n return {\n total: response.totalCount,\n items: response.items,\n };\n });\n }\n\n updateOne(entity: AXPEntityConfig, id: string, data: { [key: string]: any }): Promise<any> {\n const url = `${this.mainUrl}/${entity.module}/${entity.name}/${id}`;\n return firstValueFrom(this.http.put(url, data));\n }\n\n deleteOne(entity: AXPEntityConfig, id: string): Promise<any> {\n console.log('deleteOne', entity.name, id);\n const url = `${this.mainUrl}/${entity.module}/${entity.name}/${id}`;\n return firstValueFrom(this.http.delete(url));\n }\n\n getFirst(entity: AXPEntityConfig): Promise<any> {\n // return this.getMany(entity.name).then((res) => res.items[0]);\n return new Promise((resolve) => resolve(true));\n }\n}\n","import { AXM_AUTH_CONFIG_TOKEN } from '@acorex/modules/auth';\nimport { AXPApplication, AXPApplicationLoader, AXPTokens } from '@acorex/platform/auth';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\n\n@Injectable()\nexport class AXMOidcApplicationLoader implements AXPApplicationLoader {\n private configs = inject(AXM_AUTH_CONFIG_TOKEN);\n private apiGetApps = `${this.configs.apiResourceUrl}/applications/GetListByTenantId`;\n private apiSetApp = `${this.configs.apiResourceUrl}/SetApplication`;\n constructor(private http: HttpClient) {}\n\n getList(): Observable<AXPApplication[]> {\n return this.http.get<{ items: any[] }>(this.apiGetApps).pipe(\n map((response) => {\n console.log('response', response);\n return response.items.map((item) => this.mapToAXPApplication(item));\n })\n );\n }\n\n set(application: AXPApplication): Observable<AXPTokens> {\n return this.http.post<any>(this.apiSetApp, { applicationId: application.id }).pipe(\n map((response) => {\n return {\n accessToken: response.token,\n refreshToken: response.token,\n };\n })\n );\n }\n\n private mapToAXPApplication(item: any): AXPApplication {\n console.log('mapToAXPApplication', item);\n return {\n id: item.id,\n name: item.name || 'defaultName',\n title: item.name || 'defaultTitle',\n version: item.version || '1.0.0',\n description: item.description,\n logo: item.logo, // Assuming logo is of type AXPLogoConfig or undefined\n editionName: item.editionName,\n // features: item.features || [],\n };\n }\n}\n","import { AXPFeature, AXPFeatureLoader } from '@acorex/platform/auth';\nimport { Observable, delay, of } from 'rxjs';\n\nexport class AXMOidcFeatureLoader implements AXPFeatureLoader {\n getList(): Observable<AXPFeature[]> {\n return of([]).pipe(delay(0));\n }\n}\n","import { AXMAuthConfigs, AXM_AUTH_CONFIG_TOKEN } from '@acorex/modules/auth';\nimport { Inject, Injectable } from '@angular/core';\nimport { UserManager, WebStorageStateStore } from 'oidc-client-ts';\n// Other imports...\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMOidcUserManagerService {\n private userManager: UserManager;\n\n constructor(@Inject(AXM_AUTH_CONFIG_TOKEN) private authConfig: AXMAuthConfigs) {\n if (!authConfig.oidc_settings) {\n throw new Error('OIDC configuration is missing');\n }\n\n this.userManager = new UserManager({\n ...authConfig.oidc_settings,\n userStore: new WebStorageStateStore({ store: window.localStorage }),\n });\n }\n\n getUserManager(): UserManager {\n return this.userManager;\n }\n\n completeAuthentication() {\n this.userManager.signinSilentCallback();\n }\n}\n","import { AXPAuthStrategy, AXPBaseCredentials, AXPTokens, AXPUser } from '@acorex/platform/auth';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { UserManager } from 'oidc-client-ts';\nimport { AXMOidcUserManagerService } from './usermanager.service';\n\nexport interface AXPUserPassCredentials extends AXPBaseCredentials {\n username: string;\n password: string;\n}\n\n@Injectable()\nexport class AXMOidcStrategy implements AXPAuthStrategy {\n private userManagerService: AXMOidcUserManagerService;\n private userManager: UserManager;\n private injector: Injector = inject(Injector);\n\n constructor() {\n this.userManagerService = this.injector.get(AXMOidcUserManagerService);\n this.userManager = this.userManagerService.getUserManager();\n }\n\n get name(): string {\n return 'oidc';\n }\n\n async signin(credentials: AXPUserPassCredentials): Promise<AXPTokens> {\n const currentUser = await this.userManager.getUser();\n if (currentUser && !currentUser.expired && currentUser.profile.name == credentials.username) {\n console.log('user alredy signed in', currentUser);\n const user: AXPUser = {\n id: currentUser.id_token ?? '1',\n name: currentUser.profile.name ?? credentials.username,\n title: currentUser.profile.given_name ?? 'no Name!',\n avatar: currentUser.profile.picture ?? 'https://i.pravatar.cc/150?img=52',\n };\n const accessToken = currentUser.access_token;\n const refreshToken = currentUser.refresh_token ?? '';\n return { user, accessToken, refreshToken };\n }\n await this.userManager.removeUser();\n await this.userManager.clearStaleState();\n\n const oidcUser = await this.userManager.signinSilent({\n extraQueryParams: {\n identity_provider: 'Local',\n hardcoded_identity_id: '1',\n username: credentials.username,\n password: credentials.password,\n },\n });\n console.log('here is oidcUser', oidcUser);\n if (oidcUser) {\n const user: AXPUser = {\n id: oidcUser.id_token ?? '1',\n name: oidcUser.profile.name ?? credentials.username,\n title: oidcUser.profile.given_name ?? 'no Name!',\n avatar: oidcUser.profile.picture ?? 'https://i.pravatar.cc/150?img=52',\n };\n const accessToken = oidcUser.access_token;\n const refreshToken = oidcUser.refresh_token ?? '';\n return { user, accessToken, refreshToken };\n }\n\n throw new Error('Invalid credentials');\n }\n\n async signout(): Promise<void> {\n console.log('User signed out');\n this.userManager.removeUser();\n this.userManager.clearStaleState();\n this.userManager.signoutSilent();\n }\n\n async refreshToken(refreshToken: string): Promise<AXPTokens> {\n const user: AXPUser = {\n id: '1',\n name: 'admin',\n title: 'Arash',\n avatar: 'https://i.pravatar.cc/150?img=52',\n };\n\n const accessToken = this.generateAccessToken();\n const newRefreshToken = this.generateAccessToken();\n\n return { user, accessToken, refreshToken: newRefreshToken };\n }\n\n private generateAccessToken(): string {\n return 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE3MDU5MjE4ODUsImV4cCI6MTczNzQ1Nzg4NSwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsImlkIjoiMTAiLCJ0aXRsZSI6IkFyYXNoIiwiRW1haWwiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl0sIm5hbWUiOiJhZG1pbiJ9.IgJL7uvJNBd9yBvWS4aTms5XjBI4VDyT01KhMSESXdQ';\n }\n}\n","import { AXPPermission, AXPPermissionLoader } from '@acorex/platform/auth';\nimport { Observable, delay, of } from 'rxjs';\n\nexport class AXMOidcPermissionLoader implements AXPPermissionLoader {\n getList(): Observable<AXPPermission[]> {\n return of(['asc.admin.message', 'asc.admin.settings']).pipe(delay(0));\n }\n}\n","import { AXM_AUTH_CONFIG_TOKEN } from '@acorex/modules/auth';\nimport { AXPTenant, AXPTenantLoader, AXPTokens } from '@acorex/platform/auth';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\n\n@Injectable()\nexport class AXMOidcTenantLoader implements AXPTenantLoader {\n private configs = inject(AXM_AUTH_CONFIG_TOKEN);\n private apiGetTenants = `${this.configs.apiResourceUrl}/user-tenants/Tenants `;\n private apiSetTenant = `${this.configs.apiResourceUrl}/SetTenant`;\n constructor(private http: HttpClient) {}\n\n getList(): Observable<AXPTenant[]> {\n return this.http\n .get<{ items: any[] }>(this.apiGetTenants)\n .pipe(map((response) => response.items.map((item) => this.mapToAXPTenant(item))));\n }\n\n set(tenant: AXPTenant): Observable<AXPTokens> {\n return this.http.post<any>(this.apiSetTenant, { tenantId: tenant.id }).pipe(\n map((response) => {\n return {\n accessToken: response.token,\n refreshToken: response.token,\n };\n })\n );\n }\n\n private mapToAXPTenant(item: any): AXPTenant {\n return {\n id: item.id,\n name: item.name || 'defaultName',\n title: item.name || 'defaultTitle',\n // Add other fields and defaults as needed, and handle the logo if applicable\n };\n }\n}\n","import { AXPApplication, AXPApplicationLoader, AXPTokens } from '@acorex/platform/auth';\nimport { AXPTextLogoConfig, AXPFontIconLogoConfig } from '@acorex/platform/common';\nimport { Observable, delay, of } from 'rxjs';\n\nexport class ASCApplicationLoader implements AXPApplicationLoader {\n getList(): Observable<AXPApplication[]> {\n const app: AXPApplication = {\n id: '0',\n name: 'asc',\n title: 'Adelide Soaring Club',\n logo: new AXPTextLogoConfig('ASC'),\n version: '1.0.1',\n editionName: 'Standard',\n };\n const app2: AXPApplication = {\n id: '1',\n name: 'asc1',\n title: 'Application 2',\n logo: new AXPTextLogoConfig('ASC'),\n version: '1.0.1',\n editionName: 'Standard',\n };\n return of<AXPApplication[]>([app]).pipe(delay(0));\n }\n\n set(application: AXPApplication): Observable<AXPTokens> {\n return of<AXPTokens>({\n accessToken:\n 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE3MDU5MjE4ODUsImV4cCI6MTczNzQ1Nzg4NSwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsImlkIjoiMTAiLCJ0aXRsZSI6IkFyYXNoIiwiRW1haWwiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl0sIm5hbWUiOiJhZG1pbiJ9.IgJL7uvJNBd9yBvWS4aTms5XjBI4VDyT01KhMSESXdQ',\n refreshToken:\n 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE3MDU5MjE4ODUsImV4cCI6MTczNzQ1Nzg4NSwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsImlkIjoiMTAiLCJ0aXRsZSI6IkFyYXNoIiwiRW1haWwiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl0sIm5hbWUiOiJhZG1pbiJ9.IgJL7uvJNBd9yBvWS4aTms5XjBI4VDyT01KhMSESXdQ',\n }).pipe(delay(500));\n }\n}\n","import { AXPPermission, AXPPermissionLoader } from \"@acorex/platform/auth\";\nimport { Observable, delay, of } from \"rxjs\";\n\nexport class ASCPermissionLoader implements AXPPermissionLoader {\n\n getList(): Observable<AXPPermission[]> {\n return of(\n [\n 'asc.admin.message',\n 'asc.admin.settings',\n 'asc.admin.gliding',\n ])\n .pipe(delay(0));\n }\n}","import { AXPTenant, AXPTenantLoader, AXPTokens } from '@acorex/platform/auth';\nimport { AXPTextLogoConfig } from '@acorex/platform/common';\nimport { Observable, delay, of } from 'rxjs';\n\nexport class ASCTenantLoader implements AXPTenantLoader {\n getList(): Observable<AXPTenant[]> {\n const tenant: AXPTenant = {\n id: '0',\n name: 'asc',\n title: 'Adelide Soaring Club',\n logo: new AXPTextLogoConfig('ASC'),\n };\n const tenant2: AXPTenant = {\n id: '1',\n name: 'asc1',\n title: 'Adelide Soaring Club',\n logo: new AXPTextLogoConfig('ASC'),\n };\n return of<AXPTenant[]>([tenant]).pipe(delay(0));\n }\n\n set(tenant: AXPTenant): Observable<AXPTokens> {\n return of<AXPTokens>({\n accessToken:\n 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE3MDU5MjE4ODUsImV4cCI6MTczNzQ1Nzg4NSwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsImlkIjoiMTAiLCJ0aXRsZSI6IkFyYXNoIiwiRW1haWwiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl0sIm5hbWUiOiJhZG1pbiJ9.IgJL7uvJNBd9yBvWS4aTms5XjBI4VDyT01KhMSESXdQ',\n refreshToken:\n 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE3MDU5MjE4ODUsImV4cCI6MTczNzQ1Nzg4NSwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsImlkIjoiMTAiLCJ0aXRsZSI6IkFyYXNoIiwiRW1haWwiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl0sIm5hbWUiOiJhZG1pbiJ9.IgJL7uvJNBd9yBvWS4aTms5XjBI4VDyT01KhMSESXdQ',\n }).pipe(delay(0));\n }\n}\n","import { AXPAuthStrategy, AXPBaseCredentials, AXPTokens, AXPUser } from '@acorex/platform/auth';\n\nexport interface AXPUserPassCredentials extends AXPBaseCredentials {\n username: string;\n password: string;\n}\n\nexport class ASCUserPassStrategy implements AXPAuthStrategy {\n get name(): string {\n return 'userpass';\n }\n\n async signin(credentials: AXPUserPassCredentials): Promise<AXPTokens> {\n const result = credentials.username == 'admin' && credentials.password == '123';\n if (result) {\n const user: AXPUser = {\n id: '1',\n name: credentials.username,\n title: 'Admin',\n avatar: 'https://i.pravatar.cc/150?img=52',\n };\n const accessToken = this.generateAccessToken();\n const refreshToken = this.generateAccessToken();\n return { user, accessToken, refreshToken };\n } else {\n throw new Error('Invalid credentials');\n }\n }\n\n async signout(): Promise<void> {\n console.log('User signed out');\n }\n\n async refreshToken(refreshToken: string): Promise<AXPTokens> {\n const user: AXPUser = {\n id: '1',\n name: 'admin',\n title: 'Arash',\n avatar: 'https://i.pravatar.cc/150?img=52',\n };\n const accessToken = this.generateAccessToken();\n const newRefreshToken = this.generateAccessToken();\n\n return { user, accessToken, refreshToken: newRefreshToken };\n }\n\n private generateAccessToken(): string {\n return 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE3MDU5MjE4ODUsImV4cCI6MTczNzQ1Nzg4NSwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsImlkIjoiMTAiLCJ0aXRsZSI6IkFyYXNoIiwiRW1haWwiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl0sIm5hbWUiOiJhZG1pbiJ9.IgJL7uvJNBd9yBvWS4aTms5XjBI4VDyT01KhMSESXdQ';\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AXMOidcUserManagerService } from './usermanager.service';\n\n@Component({\n template: '',\n providers: [],\n})\nexport class SignincallbackComponent implements OnInit {\n constructor(\n private userManagerService: AXMOidcUserManagerService,\n private router: Router,\n private route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.userManagerService.completeAuthentication();\n }\n}\n","import { AXMAuthModule } from '@acorex/modules/auth';\nimport {\n AXPAuthModule,\n AXP_APPLICATION_LOADER,\n AXP_FEATURE_LOADER,\n AXP_PERMISSION_LOADER,\n AXP_TENANT_LOADER,\n} from '@acorex/platform/auth';\nimport { AXPDataProvider } from '@acorex/platform/common';\nimport { NgModule } from '@angular/core';\nimport { ROUTES, Routes } from '@angular/router';\n\n//-----------------------------------------------------------------\n\n// import { AXMLocalDataProvider } from './data/local/local-data-provider';\nimport { AXMBackendDataProvider } from './data/api/data-provider';\n\n// import { AXMOidcStrategy } from './auth/oidc';\nimport {\n AXMOidcApplicationLoader,\n AXMOidcFeatureLoader,\n AXMOidcPermissionLoader,\n AXMOidcStrategy,\n AXMOidcTenantLoader,\n} from './auth/oidc';\n\nimport { ASCUserPassStrategy } from './auth/userpass';\n// import { ASCApplicationLoader, ASCPermissionLoader, ASCTenantLoader, ASCUserPassStrategy } from './auth/userpass';\n\n//-----------------------------------------------------------------\n\nimport { SignincallbackComponent } from './auth/oidc/signincallback.component';\n\nfunction routesFactory() {\n const routes: Routes = [{ path: 'auth/signincallback', component: SignincallbackComponent }];\n return routes;\n}\n\n@NgModule({\n imports: [\n AXMAuthModule.forRoot(),\n AXPAuthModule.forRoot({\n strategies: [AXMOidcStrategy, ASCUserPassStrategy],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXPDataProvider,\n // useClass: AXMLocalDataProvider,\n useClass: AXMBackendDataProvider,\n },\n {\n provide: AXP_TENANT_LOADER,\n // useClass: ASCTenantLoader,\n useClass: AXMOidcTenantLoader,\n },\n {\n provide: AXP_APPLICATION_LOADER,\n // useClass: ASCApplicationLoader,\n useClass: AXMOidcApplicationLoader,\n },\n {\n provide: AXP_PERMISSION_LOADER,\n // useClass: ASCPermissionLoader,\n useClass: AXMOidcPermissionLoader,\n },\n {\n provide: AXP_FEATURE_LOADER,\n // useClass: ASCFeatureLoader, //TODO: not implimented\n useClass: AXMOidcFeatureLoader,\n },\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFactory,\n },\n ],\n})\nexport class AXMBackendModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXMOidcUserManagerService","i1","i2"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-modules-backend.mjs","sources":["../../../../libs/modules/backend/src/lib/data/api/data-provider.ts","../../../../libs/modules/backend/src/lib/auth/oidc/application.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/configuration.service.ts","../../../../libs/modules/backend/src/lib/auth/oidc/feature.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/usermanager.service.ts","../../../../libs/modules/backend/src/lib/auth/oidc/oidc.strategy.ts","../../../../libs/modules/backend/src/lib/auth/oidc/permission.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/signincallback.component.ts","../../../../libs/modules/backend/src/lib/auth/oidc/tenant.loader.ts","../../../../libs/modules/backend/src/lib/backend.module.ts","../../../../libs/modules/backend/src/lib/data/local/data-Conditioner.ts","../../../../libs/modules/backend/src/lib/data/local/local-data-provider.ts","../../../../libs/modules/backend/src/acorex-modules-backend.ts"],"sourcesContent":["import { AXPDataProvider } from '@acorex/platform/common';\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/core';\nimport { AXPEntityConfig } from '@acorex/platform/layouts';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMBackendDataProvider implements AXPDataProvider {\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\n private mainUrl = this.configs.baseUrl;\n\n constructor(private http: HttpClient) {}\n\n insertOne(entity: AXPEntityConfig, entityItem: any): Promise<any> {\n const url = `${this.mainUrl}/${entity.module}/${entity.name}`;\n return firstValueFrom(this.http.post(url, entityItem));\n }\n\n insertMany(entity: AXPEntityConfig, entityList: any): Promise<any> {\n const promises = entityList.map((entity: any) => {\n const url = `${this.mainUrl}/${entity.module}/${entity.name}`;\n return firstValueFrom(this.http.post(url, entity));\n });\n return Promise.all(promises);\n }\n\n getOne(entity: AXPEntityConfig, id: string): Promise<any> {\n const url = `${this.mainUrl}/${entity.module}/${entity.name}/${id}`;\n return firstValueFrom(this.http.get(url));\n }\n\n getMany(entity: AXPEntityConfig, params?: any): Promise<any> {\n let httpParams = new HttpParams().set('Skip', params?.skip?.toString() ?? '0').set('Take', params?.take?.toString() ?? '10');\n\n if (params?.sort && params?.sort.length > 0) {\n const sortParam = params?.sort.map((sort: any) => `${sort.field}:${sort.dir}`).join(',');\n httpParams = httpParams.set('$orderby', sortParam);\n }\n\n let filterString = params?.customFilter ? params.customFilter : '';\n if (params?.filter) {\n const filters = params.filter.filters;\n if (filters && filters.length > 0) {\n // Construct filter string from provided filters\n const dynamicFilters = filters\n .map((f: any) => {\n return `${f.field} ${f.operator.type} ${f.value}`;\n })\n .join(',');\n\n // Append dynamic filters to custom filter, if both exist\n filterString = filterString ? `${filterString},${dynamicFilters}` : dynamicFilters;\n }\n }\n // Set the $filter parameter if there are any filters\n if (filterString) {\n httpParams = httpParams.set('$filter', filterString);\n }\n\n return firstValueFrom(\n this.http.get<any>(\n `${this.mainUrl}/${entity.module}/${params.costumGetter ? params.costumGetter : entity.name}/${params?.sub ? params.sub : ''}`,\n { params: httpParams }\n )\n ).then((response) => {\n return {\n total: response.totalCount,\n items: response.items,\n };\n });\n }\n\n updateOne(entity: AXPEntityConfig, id: string, data: { [key: string]: any }): Promise<any> {\n const url = `${this.mainUrl}/${entity.module}/${entity.name}/${id}`;\n return firstValueFrom(this.http.put(url, data));\n }\n\n deleteOne(entity: AXPEntityConfig, id: string): Promise<any> {\n const url = `${this.mainUrl}/${entity.module}/${entity.name}/${id}`;\n return firstValueFrom(this.http.delete(url));\n }\n\n getFirst(entity: AXPEntityConfig): Promise<any> {\n // return this.getMany(entity.name).then((res) => res.items[0]);\n return new Promise((resolve) => resolve(true));\n }\n\n // File uploader function\n uploadFile(file: File, title: string): Promise<string> {\n const url = `${this.mainUrl}/common/files`;\n const formData: FormData = new FormData();\n formData.append('File', file);\n formData.append('Title', title);\n\n return firstValueFrom(this.http.post<string>(url, formData));\n }\n\n // Function to upload multiple files\n uploadMultipleFiles(files: File[], title: string): Promise<string[]> {\n const uploadPromises = files.map((file) => this.uploadFile(file, title));\n return Promise.all(uploadPromises);\n }\n\n // Function to view a file\n viewFile(id: string, name: string): Promise<Blob> {\n const url = `${this.mainUrl}/common/files/${id}/View/${name}`;\n return firstValueFrom(this.http.get(url, { responseType: 'blob' }));\n }\n\n // Function to download a file\n downloadFile(id: string, name: string): Promise<Blob> {\n const url = `${this.mainUrl}/common/files/${id}/Download/${name}`;\n return firstValueFrom(this.http.get(url, { responseType: 'blob' }));\n }\n}\n","import { AXPApplication, AXPApplicationLoader, AXPRefreshTokenResult } from '@acorex/platform/auth';\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\n\n@Injectable()\nexport class AXMOidcApplicationLoader implements AXPApplicationLoader {\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\n private apiGetApps = `${this.configs.baseUrl}/applications/GetListByTenantId`;\n private apiSetApp = `${this.configs.baseUrl}/SetApplication`;\n constructor(private http: HttpClient) { }\n\n getList(): Observable<AXPApplication[]> {\n return this.http.get<{ items: any[] }>(this.apiGetApps).pipe(\n map((response) => {\n return response.items.map((item) => this.mapToAXPApplication(item));\n })\n );\n }\n\n //TODO: shoud be removed\n set(application: AXPApplication): Observable<AXPRefreshTokenResult> {\n return this.http.post<any>(this.apiSetApp, { applicationId: application.id }).pipe(\n map((response) => {\n return {\n succeed: true,\n data: {\n accessToken: response.token,\n refreshToken: response.token,\n }\n };\n })\n );\n }\n\n private mapToAXPApplication(item: any): AXPApplication {\n return {\n id: item.id,\n name: item.name || 'defaultName',\n title: item.title || 'defaultTitle',\n version: item.version || '1.0.0',\n description: item.description,\n logo: item.logo, // Assuming logo is of type AXPLogoConfig or undefined\n editionName: item.editionName,\n // features: item.features || [],\n };\n }\n}\n","import { AXM_AUTH_CONFIG_TOKEN } from '@acorex/modules/auth';\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, filter, of, switchMap, take, tap } from 'rxjs';\n\nexport interface Localization {\n values: Record<string, Record<string, string>>;\n resources: Record<string, Resource>;\n languages: Language[];\n currentCulture: Culture;\n defaultResourceName: string;\n languagesMap: Record<string, NameValue[]>;\n languageFilesMap: Record<string, NameValue[]>;\n}\n\nexport interface Resource {\n texts: Record<string, string>;\n baseResources: string[];\n}\n\nexport interface Language {\n cultureName: string;\n uiCultureName: string;\n displayName: string;\n twoLetterISOLanguageName: string;\n flagIcon: string;\n}\n\nexport interface Culture {\n displayName: string;\n // ... other properties\n}\n\nexport interface NameValue {\n name: string;\n value: string;\n}\n\n// Repeat similar patterns for 'auth', 'setting', 'currentUser', etc.\nexport interface Auth {\n grantedPolicies: Record<string, boolean>;\n}\n\n// Main configuration interface\nexport interface ApplicationConfiguration {\n localization: Localization;\n auth: Auth;\n setting: Record<string, any>;\n currentUser: any;\n features: Record<string, any>;\n globalFeatures: Record<string, any>;\n multiTenancy: Record<string, any>;\n currentCulture: Culture;\n timing: Record<string, any>;\n clock: Record<string, any>;\n objectExtensions: Record<string, any>;\n extraProperties: Record<string, any>;\n\n // ... other properties\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMConfigurationService {\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\n private applicationConfig: ApplicationConfiguration | null = null;\n private apiGetConfig = `${this.configs.baseUrl}/abp/application-configuration`;\n private fetchInProgress: boolean = false;\n private configSubject: BehaviorSubject<ApplicationConfiguration | null> = new BehaviorSubject<ApplicationConfiguration | null>(null);\n\n constructor(private http: HttpClient) {\n this.init().subscribe(); // Automatically trigger configuration load on service instantiation\n }\n\n public init(): Observable<ApplicationConfiguration> {\n if (!this.fetchInProgress) {\n this.fetchInProgress = true;\n return this.http.get<ApplicationConfiguration>(this.apiGetConfig).pipe(\n tap((response) => {\n console.log('%cGranted ', 'background: #03fc9d; color: #000;', response);\n this.applicationConfig = response;\n this.configSubject.next(this.applicationConfig);\n this.fetchInProgress = false;\n })\n );\n } else {\n // Adjusted approach to handle TypeScript's type safety requirements\n return this.configSubject.asObservable().pipe(\n filter((config): config is ApplicationConfiguration => config !== null),\n take(1) // Ensures it completes after emitting the first non-null value\n );\n }\n }\n\n getConfig(): Observable<ApplicationConfiguration> {\n if (this.applicationConfig) {\n // If the config is already loaded, return it immediately\n return of(this.applicationConfig);\n } else {\n // If the config is not loaded, initiate loading\n return this.configSubject.asObservable().pipe(\n filter((config) => config !== null),\n take(1), // Ensure it only emits the first non-null value and completes\n switchMap(() => of(this.applicationConfig!))\n );\n }\n }\n}\n","import { AXPFeature, AXPFeatureLoader } from '@acorex/platform/auth';\nimport { Observable, delay, of } from 'rxjs';\n\nexport class AXMOidcFeatureLoader implements AXPFeatureLoader {\n\n private list: AXPFeature[] = [\n {\n name: 'axp-entity-list-custom-view',\n title: 'Custom View',\n value: false\n },\n {\n name: 'axp-entity-list-quick-search',\n title: 'Custom View',\n value: false\n }\n ]\n\n getList(): Observable<AXPFeature[]> {\n return of(this.list).pipe(delay(0));\n }\n}\n","import { AXMAuthConfigs, AXM_AUTH_CONFIG_TOKEN } from '@acorex/modules/auth';\nimport { AXPApplication, AXPTenant } from '@acorex/platform/auth';\nimport { Inject, Injectable } from '@angular/core';\nimport { UserManager, WebStorageStateStore } from 'oidc-client-ts';\n// Other imports...\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMOidcUserManagerService {\n private userManager: UserManager;\n public selectedTenant: AXPTenant | null = null;\n public selectedApplication: AXPApplication | null = null;\n\n constructor(@Inject(AXM_AUTH_CONFIG_TOKEN) private authConfig: AXMAuthConfigs) {\n if (!authConfig.oidc_settings) {\n throw new Error('OIDC configuration is missing');\n }\n\n this.userManager = new UserManager({\n ...authConfig.oidc_settings,\n userStore: new WebStorageStateStore({ store: window.localStorage }),\n });\n }\n\n getUserManager(): UserManager {\n return this.userManager;\n }\n\n async signinSilentCallback() {\n await this.userManager.signinSilentCallback();\n }\n}\n","import { AXPAuthStrategy, AXPBaseCredentials, AXPRefreshTokenResult, AXPSignInResult, AXPUser } from '@acorex/platform/auth';\nimport { AXPDataProvider } from '@acorex/platform/common';\nimport { MockDataService } from '@acorex/platform/mocks';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { UserManager } from 'oidc-client-ts';\nimport { AXMOidcUserManagerService } from './usermanager.service';\n\nexport interface AXPUserPassCredentials extends AXPBaseCredentials {\n username: string;\n password: string;\n}\n\n@Injectable()\nexport class AXMOidcStrategy implements AXPAuthStrategy {\n private userManagerService: AXMOidcUserManagerService;\n private userManager: UserManager;\n private injector: Injector = inject(Injector);\n private mockerService = inject(MockDataService);\n private dataService = inject(AXPDataProvider);\n\n constructor() {\n this.userManagerService = this.injector.get(AXMOidcUserManagerService);\n this.userManager = this.userManagerService.getUserManager();\n }\n\n get name(): string {\n return 'user-pass';\n }\n\n async signin(credentials: AXPUserPassCredentials): Promise<AXPSignInResult> {\n try {\n const currentUser = await this.userManager.getUser();\n\n if (currentUser && !currentUser.expired && currentUser.profile.name === credentials.username) {\n const user: AXPUser = {\n id: currentUser.profile.sub,\n name: currentUser.profile.name ?? credentials.username,\n title: currentUser.profile.given_name ?? 'no Name!',\n avatar: currentUser.profile.picture,\n };\n const accessToken = currentUser.access_token;\n const refreshToken = currentUser.refresh_token ?? '';\n return {\n succeed: true,\n data: { user, accessToken, refreshToken },\n };\n }\n\n await this.userManager.removeUser();\n await this.userManager.clearStaleState();\n\n const oidcUser = await this.userManager.signinSilent({\n extraQueryParams: {\n username: credentials.username,\n password: credentials.password,\n },\n });\n if (oidcUser) {\n const profile = oidcUser.profile; // Cast to any to access deeply nested properties\n const user: AXPUser = {\n id: profile.sub,\n name: `${profile.email}`,\n title: `${profile.name}`,\n avatar: `${profile.picture}`,\n };\n const accessToken = oidcUser.access_token;\n const refreshToken = oidcUser.refresh_token ?? '';\n\n return {\n succeed: true,\n data: { user, accessToken, refreshToken },\n };\n }\n\n return {\n succeed: false,\n };\n } catch (error: any) {\n if (error?.message) throw new Error(error.message);\n // Depending on the error type, you might want to throw a specific error\n throw new Error('Network or server error occurred');\n }\n }\n\n async signout(): Promise<void> {\n console.log('User signed out');\n this.userManager.removeUser();\n this.userManager.clearStaleState();\n this.userManager.signoutSilent();\n }\n\n async refreshToken(refreshToken: string): Promise<AXPRefreshTokenResult> {\n const user: AXPUser = {\n id: '1',\n name: 'admin',\n title: 'Arash',\n avatar: 'https://i.pravatar.cc/150?img=52',\n };\n\n const accessToken = this.generateAccessToken();\n const newRefreshToken = this.generateAccessToken();\n\n return {\n succeed: true,\n data: { accessToken, refreshToken: newRefreshToken },\n };\n }\n\n private generateAccessToken(): string {\n return 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE3MDU5MjE4ODUsImV4cCI6MTczNzQ1Nzg4NSwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsImlkIjoiMTAiLCJ0aXRsZSI6IkFyYXNoIiwiRW1haWwiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl0sIm5hbWUiOiJhZG1pbiJ9.IgJL7uvJNBd9yBvWS4aTms5XjBI4VDyT01KhMSESXdQ';\n }\n}\n","import { AXPPermission, AXPPermissionLoader, AXPSessionContext } from '@acorex/platform/auth';\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\n\n@Injectable()\nexport class AXMOidcPermissionLoader implements AXPPermissionLoader {\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\n private apiGetConfig = `${this.configs.baseUrl}/abp/application-configuration`;\n\n constructor(private http: HttpClient) {}\n\n getList(context: AXPSessionContext): Observable<AXPPermission[]> {\n return this.http.get<{ items: any }>(this.apiGetConfig).pipe(map((response) => this.mapTo(response)));\n // debugger\n // if (context.user == null)\n // return of([]);\n // else if (context.user.name.toLowerCase() == 'admin')\n // return of(['axp.admin.console', 'asc.admin.message', 'asc.admin.settings', 'asc.admin.gliding', 'asc.user.gliding']);\n // else\n // return of(['asc.user.gliding']);\n }\n\n mapTo(jsonObj: any): string[] {\n const policies = jsonObj.auth.grantedPolicies;\n const truePolicies = Object.keys(policies).filter((key) => policies[key] === true);\n return truePolicies;\n }\n}\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { Component, OnInit, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AXMOidcUserManagerService } from './usermanager.service';\n\n@Component({\n template: '',\n})\nexport class SignincallbackComponent implements OnInit {\n private sessionService = inject(AXPSessionService);\n constructor(\n private userManagerService: AXMOidcUserManagerService,\n private router: Router,\n private route: ActivatedRoute,\n\n ) { }\n\n ngOnInit() {\n const queryParams = this.route.snapshot.queryParams;\n if (queryParams['tenantid']) {\n const selectedTenant = {\n id: queryParams['tenantid'],\n name: queryParams['tenantname'],\n title: queryParams['tenanttitle'],\n };\n this.sessionService.setTenant(selectedTenant);\n }\n if (queryParams['applicationid']) {\n const selectedApplication = {\n id: queryParams['applicationid'],\n name: queryParams['applicationname'],\n title: queryParams['applicationtitle'],\n version: '1',\n editionName: queryParams['editionname'],\n };\n this.sessionService.setApplication(selectedApplication);\n }\n this.userManagerService.signinSilentCallback();\n }\n}\n","import { AXPRefreshTokenResult, AXPTenant, AXPTenantLoader } from '@acorex/platform/auth';\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\n\n@Injectable()\nexport class AXMOidcTenantLoader implements AXPTenantLoader {\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\n private apiGetTenants = `${this.configs.baseUrl}/user-tenants/Tenants`;\n private apiSetTenant = `${this.configs.baseUrl}/SetTenant`;\n constructor(private http: HttpClient) { }\n\n getList(): Observable<AXPTenant[]> {\n return this.http.get<{ items: any[] }>(this.apiGetTenants).pipe(map((response) => response.items.map((item) => this.mapToAXPTenant(item))));\n }\n\n //TODO: shoud be removed\n set(tenant: AXPTenant): Observable<AXPRefreshTokenResult> {\n return this.http.post<any>(this.apiSetTenant, { tenantId: tenant.id }).pipe(\n map((response) => {\n return {\n succeed: true,\n data: {\n accessToken: response.token,\n refreshToken: response.token,\n },\n };\n })\n );\n }\n\n private mapToAXPTenant(item: any): AXPTenant {\n return {\n id: item.id,\n name: item.name || 'defaultName',\n title: item.title || 'defaultTitle',\n // Add other fields and defaults as needed, and handle the logo if applicable\n };\n }\n}\n","import { AXMAuthModule } from '@acorex/modules/auth';\nimport { AXPAuthModule, AXP_APPLICATION_LOADER, AXP_FEATURE_LOADER, AXP_PERMISSION_LOADER, AXP_TENANT_LOADER } from '@acorex/platform/auth';\nimport { AXPDataProvider } from '@acorex/platform/common';\nimport { NgModule } from '@angular/core';\nimport { ROUTES, Routes } from '@angular/router';\n\n//-----------------------------------------------------------------\nimport { AXMBackendDataProvider } from './data/api/data-provider';\nimport { AXMOidcApplicationLoader, AXMOidcFeatureLoader, AXMOidcPermissionLoader, AXMOidcStrategy, AXMOidcTenantLoader } from './auth/oidc';\n//-----------------------------------------------------------------\n\nimport { SignincallbackComponent } from './auth/oidc/signincallback.component';\n\nfunction routesFactory() {\n const routes: Routes = [{ path: 'auth/signincallback', component: SignincallbackComponent }];\n return routes;\n}\n\n@NgModule({\n imports: [\n AXMAuthModule.forRoot(),\n AXPAuthModule.forRoot({\n strategies: [AXMOidcStrategy],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXPDataProvider,\n useClass: AXMBackendDataProvider,\n },\n {\n provide: AXP_TENANT_LOADER,\n useClass: AXMOidcTenantLoader,\n },\n {\n provide: AXP_APPLICATION_LOADER,\n useClass: AXMOidcApplicationLoader,\n },\n {\n provide: AXP_PERMISSION_LOADER,\n useClass: AXMOidcPermissionLoader,\n },\n {\n provide: AXP_FEATURE_LOADER,\n useClass: AXMOidcFeatureLoader,\n },\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFactory,\n },\n ],\n})\nexport class AXMBackendModule { }\n","import { AXDataSourceFilterOption } from '@acorex/components/common';\nimport { endsWith, every, gt, gte, includes, isEmpty, isEqual, lt, lte, orderBy, some, startsWith } from 'lodash-es';\n\nfunction applyCondition(item: any, condition: any) {\n const itemValue =\n typeof item[condition.field] == 'string'\n ? item[condition.field].toLowerCase()\n : Array.isArray(item[condition.field])\n ? JSON.stringify(item[condition.field])\n : item[condition.field];\n const conditionValue = typeof condition.value == 'string' ? condition.value.toLowerCase() : condition.value;\n switch (condition.operator.type) {\n case 'equal':\n return isEqual(itemValue, conditionValue);\n case 'notEqual':\n return !isEqual(itemValue, conditionValue);\n case 'greaterThan':\n return gt(itemValue, conditionValue);\n case 'lessThan':\n return lt(itemValue, conditionValue);\n case 'greaterThanOrEqual':\n return gte(itemValue, conditionValue);\n case 'lessThanOrEqual':\n return lte(itemValue, conditionValue);\n case 'contains':\n if (!Array.isArray(conditionValue)) {\n return includes(itemValue, conditionValue);\n } else return every(conditionValue, (element) => includes(itemValue, element));\n case 'notContains':\n if (!Array.isArray(conditionValue)) {\n return !includes(itemValue, conditionValue);\n } else return !some(conditionValue, (element) => includes(itemValue, element));\n case 'startsWith':\n return startsWith(itemValue, conditionValue);\n case 'endsWith':\n return endsWith(itemValue, conditionValue);\n case 'isEmpty':\n return isEmpty(itemValue);\n case 'isNotEmpty':\n return !isEmpty(itemValue);\n case 'between':\n return itemValue >= conditionValue.from && itemValue <= conditionValue.to;\n default:\n return true;\n }\n}\n\nexport function applyFilterArray(\n dataArray: any,\n filters?: AXDataSourceFilterOption[],\n logic: 'and' | 'or' = 'and'\n): any[] {\n if (filters && filters.length) {\n return dataArray?.filter((item: any) => {\n if (logic === 'and') {\n return filters.every((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f as any);\n });\n } else {\n // logic === 'or'\n return filters.some((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f as any);\n });\n }\n });\n } else return dataArray;\n}\n\nexport function applySortArray(dataArray: any, sorts: { field: string; dir: 'asc' | 'desc' }[]) {\n if (sorts && sorts.length > 0) {\n const sortFields = sorts.map((s) => s.field);\n const sortOrders = sorts.map((s) => s.dir);\n return orderBy(dataArray, sortFields, sortOrders);\n } else return dataArray;\n}\n","import { AXPDataProvider } from '@acorex/platform/common';\nimport { AXPEntityConfig } from '@acorex/platform/layouts';\nimport { AXPStorageMockService } from '@acorex/platform/mocks';\nimport { Injectable } from '@angular/core';\nimport { applyFilterArray, applySortArray } from './data-Conditioner';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMLocalDataProvider implements AXPDataProvider {\n constructor(private storageService: AXPStorageMockService) {}\n\n insertOne(entity: AXPEntityConfig, entityItem: any): Promise<any> {\n return this.storageService.insertOrupdateOne(entity.name, entityItem);\n }\n\n insertMany(entity: AXPEntityConfig, entityList: any): Promise<any> {\n return this.storageService.insertMany(entity.name, entityList);\n }\n\n async getOne(entity: AXPEntityConfig, id: string): Promise<any> {\n console.log('@LOACAL getOne', entity.name, id);\n return this.storageService.getOne(entity.name, id);\n }\n\n async getMany(entity: AXPEntityConfig, params?: any): Promise<any> {\n console.log('@LOACAL getMany', entity.name, params);\n const result = await this.storageService.getMany(entity.name, params);\n const sortedItems = applySortArray(result, params?.sort);\n const filteredItems = applyFilterArray(sortedItems, params?.filter?.filters);\n return new Promise((resolve) => {\n resolve({\n items: params ? filteredItems?.slice(params.skip, (params.skip ?? 0) + (params.take ?? 20)) : filteredItems,\n total: filteredItems?.length ?? 0,\n });\n });\n }\n\n updateOne(entity: AXPEntityConfig, id: string, data: { [key: string]: any }): Promise<any> {\n return this.storageService.updateOne(entity.name, id, data);\n }\n\n deleteOne(entity: AXPEntityConfig, id: string): Promise<any> {\n return this.storageService.deleteOne(entity.name, id);\n }\n\n getFirst(entity: AXPEntityConfig): Promise<any> {\n return this.getMany(entity).then((res) => {\n return res.items ? res.items[0] : null;\n });\n }\n\n // Mock file uploader function\n uploadFile(file: File, title: string): Promise<string> {\n return new Promise((resolve) => {\n // Mock file ID generation\n const fileId = `mock-file-id-${Math.random().toString(36).substr(2, 9)}`;\n const fileRecord = { id: fileId, title, file };\n this.storageService.insertOrupdateOne('files', fileRecord).then(() => {\n resolve(fileId);\n });\n });\n }\n\n // Mock function to upload multiple files\n uploadMultipleFiles(files: File[], title: string): Promise<string[]> {\n const uploadPromises = files.map((file) => this.uploadFile(file, title));\n return Promise.all(uploadPromises);\n }\n\n // Mock function to view a file\n viewFile(id: string, name: string): Promise<Blob> {\n return new Promise(async (resolve, reject) => {\n const fileRecord = await this.storageService.getOne('files', id);\n if (fileRecord && fileRecord.file) {\n resolve(fileRecord.file);\n } else {\n reject('File not found');\n }\n });\n }\n\n // Mock function to download a file\n downloadFile(id: string, name: string): Promise<Blob> {\n return this.viewFile(id, name);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXMOidcUserManagerService","i1","i2"],"mappings":"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"}
|
@@ -0,0 +1,415 @@
|
|
1
|
+
import { AXPDataProvider } from '@acorex/platform/common';
|
2
|
+
import { widgetSchemas, convertPropertiesToColumns } from '@acorex/platform/layouts';
|
3
|
+
import * as i0 from '@angular/core';
|
4
|
+
import { NgModule } from '@angular/core';
|
5
|
+
|
6
|
+
const properties = [
|
7
|
+
{
|
8
|
+
name: 'executionTime',
|
9
|
+
title: 'Execution Time',
|
10
|
+
schema: widgetSchemas.dateTime,
|
11
|
+
canEdit: false,
|
12
|
+
canInsert: true,
|
13
|
+
formats: {
|
14
|
+
default: 'HH:mm:ss dd MMM YYYY',
|
15
|
+
},
|
16
|
+
canInlineFilter: true,
|
17
|
+
validationRules: [],
|
18
|
+
},
|
19
|
+
{
|
20
|
+
name: 'httpMethod',
|
21
|
+
title: 'HTTP Method',
|
22
|
+
schema: widgetSchemas.text,
|
23
|
+
canEdit: false,
|
24
|
+
canInsert: true,
|
25
|
+
canInlineFilter: true,
|
26
|
+
validationRules: [],
|
27
|
+
},
|
28
|
+
{
|
29
|
+
name: 'url',
|
30
|
+
title: 'URL',
|
31
|
+
schema: widgetSchemas.text,
|
32
|
+
canEdit: false,
|
33
|
+
canInsert: true,
|
34
|
+
canInlineFilter: true,
|
35
|
+
validationRules: [],
|
36
|
+
},
|
37
|
+
{
|
38
|
+
name: 'httpStatusCode',
|
39
|
+
title: 'HTTP Status Code',
|
40
|
+
schema: widgetSchemas.number,
|
41
|
+
canEdit: false,
|
42
|
+
canInsert: true,
|
43
|
+
canInlineFilter: true,
|
44
|
+
validationRules: [],
|
45
|
+
},
|
46
|
+
{
|
47
|
+
name: 'exceptions',
|
48
|
+
title: 'Exceptions',
|
49
|
+
schema: widgetSchemas.largetext,
|
50
|
+
canEdit: false,
|
51
|
+
canInsert: true,
|
52
|
+
canInlineFilter: true,
|
53
|
+
validationRules: [],
|
54
|
+
},
|
55
|
+
{
|
56
|
+
name: 'browserInfo',
|
57
|
+
title: 'Browser Info',
|
58
|
+
schema: widgetSchemas.text,
|
59
|
+
canEdit: false,
|
60
|
+
canInsert: true,
|
61
|
+
canInlineFilter: true,
|
62
|
+
validationRules: [],
|
63
|
+
},
|
64
|
+
{
|
65
|
+
name: 'comments',
|
66
|
+
title: 'Comments',
|
67
|
+
schema: widgetSchemas.text,
|
68
|
+
canEdit: true,
|
69
|
+
canInsert: true,
|
70
|
+
canInlineFilter: true,
|
71
|
+
validationRules: [],
|
72
|
+
},
|
73
|
+
{
|
74
|
+
name: 'applicationName',
|
75
|
+
title: 'Application Name',
|
76
|
+
schema: widgetSchemas.text,
|
77
|
+
canEdit: true,
|
78
|
+
canInsert: true,
|
79
|
+
canInlineFilter: true,
|
80
|
+
validationRules: [],
|
81
|
+
},
|
82
|
+
{
|
83
|
+
name: 'axApplicationName',
|
84
|
+
title: 'AX Application Name',
|
85
|
+
schema: widgetSchemas.text,
|
86
|
+
canEdit: true,
|
87
|
+
canInsert: true,
|
88
|
+
canInlineFilter: true,
|
89
|
+
validationRules: [],
|
90
|
+
},
|
91
|
+
{
|
92
|
+
name: 'executionDuration',
|
93
|
+
title: 'Execution Duration',
|
94
|
+
schema: widgetSchemas.number,
|
95
|
+
canEdit: false,
|
96
|
+
canInsert: true,
|
97
|
+
canInlineFilter: true,
|
98
|
+
validationRules: [],
|
99
|
+
},
|
100
|
+
{
|
101
|
+
name: 'clientIpAddress',
|
102
|
+
title: 'Client IP Address',
|
103
|
+
schema: widgetSchemas.text,
|
104
|
+
canEdit: false,
|
105
|
+
canInsert: true,
|
106
|
+
canInlineFilter: true,
|
107
|
+
validationRules: [],
|
108
|
+
},
|
109
|
+
{
|
110
|
+
name: 'correlationId',
|
111
|
+
title: 'Correlation ID',
|
112
|
+
schema: widgetSchemas.text,
|
113
|
+
canEdit: false,
|
114
|
+
canInsert: true,
|
115
|
+
canInlineFilter: true,
|
116
|
+
validationRules: [],
|
117
|
+
},
|
118
|
+
{
|
119
|
+
name: 'entityChanges',
|
120
|
+
title: 'Entity Changes',
|
121
|
+
schema: widgetSchemas.richText,
|
122
|
+
canEdit: true,
|
123
|
+
canInsert: true,
|
124
|
+
canInlineFilter: true,
|
125
|
+
validationRules: [],
|
126
|
+
component: {
|
127
|
+
common: {
|
128
|
+
options: {
|
129
|
+
reference: 'entityChanges',
|
130
|
+
referenceField: 'entityChangeId',
|
131
|
+
textField: 'changeType',
|
132
|
+
valueField: 'id',
|
133
|
+
multiple: true,
|
134
|
+
},
|
135
|
+
},
|
136
|
+
},
|
137
|
+
},
|
138
|
+
{
|
139
|
+
name: 'actions',
|
140
|
+
title: 'Actions',
|
141
|
+
schema: widgetSchemas.richText,
|
142
|
+
canEdit: true,
|
143
|
+
canInsert: true,
|
144
|
+
canInlineFilter: true,
|
145
|
+
validationRules: [],
|
146
|
+
component: {
|
147
|
+
common: {
|
148
|
+
options: {
|
149
|
+
reference: 'actions',
|
150
|
+
referenceField: 'actionId',
|
151
|
+
textField: 'methodName',
|
152
|
+
valueField: 'id',
|
153
|
+
multiple: true,
|
154
|
+
},
|
155
|
+
},
|
156
|
+
},
|
157
|
+
},
|
158
|
+
{
|
159
|
+
name: 'userId',
|
160
|
+
title: 'User ID',
|
161
|
+
schema: widgetSchemas.text,
|
162
|
+
canEdit: false,
|
163
|
+
canInsert: false,
|
164
|
+
canInlineFilter: true,
|
165
|
+
validationRules: [],
|
166
|
+
},
|
167
|
+
{
|
168
|
+
name: 'userName',
|
169
|
+
title: 'Username',
|
170
|
+
schema: widgetSchemas.text,
|
171
|
+
canEdit: false,
|
172
|
+
canInsert: true,
|
173
|
+
canInlineFilter: true,
|
174
|
+
validationRules: [
|
175
|
+
{
|
176
|
+
rule: 'required',
|
177
|
+
},
|
178
|
+
],
|
179
|
+
},
|
180
|
+
{
|
181
|
+
name: 'tenantId',
|
182
|
+
title: 'Tenant ID',
|
183
|
+
schema: widgetSchemas.text,
|
184
|
+
canEdit: false,
|
185
|
+
canInsert: false,
|
186
|
+
canInlineFilter: true,
|
187
|
+
validationRules: [],
|
188
|
+
},
|
189
|
+
{
|
190
|
+
name: 'tenantName',
|
191
|
+
title: 'Tenant Name',
|
192
|
+
schema: widgetSchemas.text,
|
193
|
+
canEdit: true,
|
194
|
+
canInsert: true,
|
195
|
+
canInlineFilter: true,
|
196
|
+
validationRules: [],
|
197
|
+
},
|
198
|
+
{
|
199
|
+
name: 'impersonatorUserId',
|
200
|
+
title: 'Impersonator User ID',
|
201
|
+
schema: widgetSchemas.text,
|
202
|
+
canEdit: false,
|
203
|
+
canInsert: false,
|
204
|
+
canInlineFilter: true,
|
205
|
+
validationRules: [],
|
206
|
+
},
|
207
|
+
{
|
208
|
+
name: 'impersonatorUserName',
|
209
|
+
title: 'Impersonator Username',
|
210
|
+
schema: widgetSchemas.text,
|
211
|
+
canEdit: false,
|
212
|
+
canInsert: true,
|
213
|
+
canInlineFilter: true,
|
214
|
+
validationRules: [],
|
215
|
+
},
|
216
|
+
{
|
217
|
+
name: 'impersonatorTenantId',
|
218
|
+
title: 'Impersonator Tenant ID',
|
219
|
+
schema: widgetSchemas.text,
|
220
|
+
canEdit: false,
|
221
|
+
canInsert: false,
|
222
|
+
canInlineFilter: true,
|
223
|
+
validationRules: [],
|
224
|
+
},
|
225
|
+
{
|
226
|
+
name: 'impersonatorTenantName',
|
227
|
+
title: 'Impersonator Tenant Name',
|
228
|
+
schema: widgetSchemas.text,
|
229
|
+
canEdit: true,
|
230
|
+
canInsert: true,
|
231
|
+
canInlineFilter: true,
|
232
|
+
validationRules: [],
|
233
|
+
},
|
234
|
+
{
|
235
|
+
name: 'clientName',
|
236
|
+
title: 'Client Name',
|
237
|
+
schema: widgetSchemas.text,
|
238
|
+
canEdit: false,
|
239
|
+
canInsert: true,
|
240
|
+
canInlineFilter: true,
|
241
|
+
validationRules: [],
|
242
|
+
},
|
243
|
+
{
|
244
|
+
name: 'clientId',
|
245
|
+
title: 'Client ID',
|
246
|
+
schema: widgetSchemas.text,
|
247
|
+
canEdit: false,
|
248
|
+
canInsert: true,
|
249
|
+
canInlineFilter: true,
|
250
|
+
validationRules: [],
|
251
|
+
},
|
252
|
+
{
|
253
|
+
name: 'id',
|
254
|
+
title: 'ID',
|
255
|
+
schema: widgetSchemas.text,
|
256
|
+
canEdit: false,
|
257
|
+
canInsert: false,
|
258
|
+
canInlineFilter: true,
|
259
|
+
validationRules: [],
|
260
|
+
},
|
261
|
+
];
|
262
|
+
const columns = convertPropertiesToColumns(...properties);
|
263
|
+
const entityName = 'logs';
|
264
|
+
async function entityFactory(injector) {
|
265
|
+
const dataService = injector.get(AXPDataProvider);
|
266
|
+
const entity = {
|
267
|
+
module: 'log-management',
|
268
|
+
name: entityName,
|
269
|
+
title: 'Logs',
|
270
|
+
properties: properties,
|
271
|
+
editOptions: {
|
272
|
+
create: false,
|
273
|
+
delete: false,
|
274
|
+
update: false,
|
275
|
+
},
|
276
|
+
formats: {
|
277
|
+
default: 'Log Information',
|
278
|
+
},
|
279
|
+
dataSource: {
|
280
|
+
key: 'id',
|
281
|
+
pageSize: 20,
|
282
|
+
load: async (e) => {
|
283
|
+
return dataService.getMany(entity, e);
|
284
|
+
},
|
285
|
+
byKey: async (id) => {
|
286
|
+
return dataService.getOne(entity, id);
|
287
|
+
},
|
288
|
+
},
|
289
|
+
views: {
|
290
|
+
list: {
|
291
|
+
title: 'Audit Logs',
|
292
|
+
views: [
|
293
|
+
{
|
294
|
+
name: 'all',
|
295
|
+
title: 'All Items',
|
296
|
+
fixed: true,
|
297
|
+
sorts: [
|
298
|
+
{
|
299
|
+
name: 'executionTime',
|
300
|
+
dir: 'asc',
|
301
|
+
},
|
302
|
+
],
|
303
|
+
columns: columns.slice(0, 6),
|
304
|
+
conditions: [],
|
305
|
+
},
|
306
|
+
],
|
307
|
+
},
|
308
|
+
quickView: {
|
309
|
+
root: {
|
310
|
+
properties: [],
|
311
|
+
sections: [
|
312
|
+
{
|
313
|
+
title: 'Execution Details',
|
314
|
+
name: 'executionDetails',
|
315
|
+
properties: properties.slice(0, 5).map((c) => c.name),
|
316
|
+
},
|
317
|
+
{
|
318
|
+
title: 'Client Info',
|
319
|
+
name: 'clientInfo',
|
320
|
+
properties: properties.slice(5, 10).map((c) => c.name),
|
321
|
+
},
|
322
|
+
],
|
323
|
+
},
|
324
|
+
},
|
325
|
+
detailView: {
|
326
|
+
root: {
|
327
|
+
properties: [],
|
328
|
+
sections: [
|
329
|
+
{
|
330
|
+
title: 'General Information',
|
331
|
+
name: 'generalInformation',
|
332
|
+
properties: [],
|
333
|
+
sections: [
|
334
|
+
{
|
335
|
+
title: 'Identifier',
|
336
|
+
name: 'identifier',
|
337
|
+
properties: ['id'],
|
338
|
+
},
|
339
|
+
{
|
340
|
+
title: 'Execution Details',
|
341
|
+
description: 'Details about the execution of the audit log.',
|
342
|
+
name: 'executionDetails',
|
343
|
+
properties: ['executionTime', 'httpMethod', 'url', 'httpStatusCode', 'exceptions'],
|
344
|
+
},
|
345
|
+
{
|
346
|
+
title: 'Client Info',
|
347
|
+
description: 'Information about the client involved in the audit.',
|
348
|
+
name: 'clientInfo',
|
349
|
+
properties: ['browserInfo', 'comments', 'clientIpAddress', 'clientName', 'clientId'],
|
350
|
+
},
|
351
|
+
{
|
352
|
+
title: 'Application Info',
|
353
|
+
name: 'applicationInfo',
|
354
|
+
properties: ['applicationName', 'axApplicationName'],
|
355
|
+
},
|
356
|
+
{
|
357
|
+
title: 'Execution Metrics',
|
358
|
+
name: 'executionMetrics',
|
359
|
+
properties: ['executionDuration', 'correlationId'],
|
360
|
+
},
|
361
|
+
{
|
362
|
+
title: 'User Info',
|
363
|
+
name: 'userInfo',
|
364
|
+
properties: ['userId', 'userName', 'tenantId', 'tenantName'],
|
365
|
+
},
|
366
|
+
{
|
367
|
+
title: 'Impersonator Info',
|
368
|
+
name: 'impersonatorInfo',
|
369
|
+
properties: ['impersonatorUserId', 'impersonatorUserName', 'impersonatorTenantId', 'impersonatorTenantName'],
|
370
|
+
},
|
371
|
+
{
|
372
|
+
title: 'Entity Changes',
|
373
|
+
name: 'entityChanges',
|
374
|
+
properties: ['entityChanges'],
|
375
|
+
},
|
376
|
+
{
|
377
|
+
title: 'Actions',
|
378
|
+
name: 'actions',
|
379
|
+
properties: ['actions'],
|
380
|
+
},
|
381
|
+
],
|
382
|
+
},
|
383
|
+
],
|
384
|
+
},
|
385
|
+
},
|
386
|
+
createView: {
|
387
|
+
root: {
|
388
|
+
properties: properties.map((c) => c.name),
|
389
|
+
},
|
390
|
+
},
|
391
|
+
},
|
392
|
+
};
|
393
|
+
return entity;
|
394
|
+
}
|
395
|
+
|
396
|
+
class AXMLogManagementModule {
|
397
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMLogManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
398
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXMLogManagementModule }); }
|
399
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMLogManagementModule }); }
|
400
|
+
}
|
401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXMLogManagementModule, decorators: [{
|
402
|
+
type: NgModule,
|
403
|
+
args: [{
|
404
|
+
imports: [],
|
405
|
+
exports: [],
|
406
|
+
declarations: [],
|
407
|
+
}]
|
408
|
+
}] });
|
409
|
+
|
410
|
+
/**
|
411
|
+
* Generated bundle index. Do not edit.
|
412
|
+
*/
|
413
|
+
|
414
|
+
export { AXMLogManagementModule, entityFactory };
|
415
|
+
//# sourceMappingURL=acorex-modules-log-management.mjs.map
|