@solidxai/core 0.1.9-beta.8 → 0.1.10-alpha.0
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/LICENSE +89 -0
- package/README.md +3 -1
- package/dist/commands/run-tests.command.d.ts +2 -0
- package/dist/commands/run-tests.command.d.ts.map +1 -1
- package/dist/commands/run-tests.command.js +49 -17
- package/dist/commands/run-tests.command.js.map +1 -1
- package/dist/controllers/action-metadata.controller.js +1 -1
- package/dist/controllers/action-metadata.controller.js.map +1 -1
- package/dist/controllers/facebook-authentication.controller.js +1 -1
- package/dist/controllers/facebook-authentication.controller.js.map +1 -1
- package/dist/controllers/google-authentication.controller.js +1 -1
- package/dist/controllers/google-authentication.controller.js.map +1 -1
- package/dist/controllers/menu-item-metadata.controller.js +1 -1
- package/dist/controllers/menu-item-metadata.controller.js.map +1 -1
- package/dist/controllers/microsoft-authentication.controller.js +1 -1
- package/dist/controllers/microsoft-authentication.controller.js.map +1 -1
- package/dist/controllers/mq-message-queue.controller.js +1 -1
- package/dist/controllers/mq-message-queue.controller.js.map +1 -1
- package/dist/controllers/mq-message.controller.js +1 -1
- package/dist/controllers/mq-message.controller.js.map +1 -1
- package/dist/controllers/user.controller.d.ts.map +1 -1
- package/dist/controllers/user.controller.js.map +1 -1
- package/dist/controllers/view-metadata.controller.js +1 -1
- package/dist/controllers/view-metadata.controller.js.map +1 -1
- package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
- package/dist/helpers/bootstrap.helper.js +2 -0
- package/dist/helpers/bootstrap.helper.js.map +1 -1
- package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
- package/dist/passport-strategies/facebook-oauth.strategy.d.ts +5 -3
- package/dist/passport-strategies/facebook-oauth.strategy.d.ts.map +1 -1
- package/dist/passport-strategies/facebook-oauth.strategy.js +41 -18
- package/dist/passport-strategies/facebook-oauth.strategy.js.map +1 -1
- package/dist/repository/security-rule.repository.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +14 -3
- package/dist/services/authentication.service.d.ts +12 -13
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +42 -18
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/csv.service.js.map +1 -1
- package/dist/services/dashboard.service.js.map +1 -1
- package/dist/services/database/database-bootstrap.service.js.map +1 -1
- package/dist/services/excel.service.js.map +1 -1
- package/dist/services/export-transaction.service.js.map +1 -1
- package/dist/services/field-metadata.service.js +2 -2
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/fixtures.service.js.map +1 -1
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +3 -13
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/queues/database-publisher.service.js +3 -3
- package/dist/services/queues/database-publisher.service.js.map +1 -1
- package/dist/services/queues/database-subscriber.service.js +3 -3
- package/dist/services/queues/database-subscriber.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-publisher.service.js +3 -3
- package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js +4 -4
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
- package/dist/services/queues/redis-publisher.service.d.ts.map +1 -1
- package/dist/services/queues/redis-publisher.service.js +4 -1
- package/dist/services/queues/redis-publisher.service.js.map +1 -1
- package/dist/services/queues/redis-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/redis-subscriber.service.js +4 -1
- package/dist/services/queues/redis-subscriber.service.js.map +1 -1
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +74 -8
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +96 -16
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/sms/TwilioSMSService.js.map +1 -1
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/user.service.d.ts +10 -8
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +85 -46
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +17 -2
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts +1 -0
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +1 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/subscribers/security-rule.subscriber.d.ts.map +1 -1
- package/dist/subscribers/security-rule.subscriber.js.map +1 -1
- package/dist/subscribers/view-metadata.subscriber.js.map +1 -1
- package/dist/testing/core/testing-engine.js.map +1 -1
- package/dist/testing/reporter/webhook-reporter.d.ts +54 -0
- package/dist/testing/reporter/webhook-reporter.d.ts.map +1 -0
- package/dist/testing/reporter/webhook-reporter.js +74 -0
- package/dist/testing/reporter/webhook-reporter.js.map +1 -0
- package/package.json +6 -2
- package/src/commands/run-tests.command.ts +45 -17
- package/src/controllers/action-metadata.controller.ts +1 -1
- package/src/controllers/facebook-authentication.controller.ts +1 -1
- package/src/controllers/google-authentication.controller.ts +1 -1
- package/src/controllers/menu-item-metadata.controller.ts +1 -1
- package/src/controllers/microsoft-authentication.controller.ts +1 -1
- package/src/controllers/mq-message-queue.controller.ts +1 -1
- package/src/controllers/mq-message.controller.ts +1 -1
- package/src/controllers/user.controller.ts +16 -16
- package/src/controllers/view-metadata.controller.ts +1 -1
- package/src/helpers/bootstrap.helper.ts +3 -0
- package/src/helpers/field-crud-managers/BigIntFieldCrudManager.ts +1 -1
- package/src/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.ts +1 -1
- package/src/helpers/module-metadata-helper.service.ts +1 -1
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +1 -1
- package/src/passport-strategies/facebook-oauth.strategy.ts +82 -31
- package/src/repository/security-rule.repository.ts +1 -1
- package/src/seeders/module-metadata-seeder.service.ts +4 -4
- package/src/seeders/permission-metadata-seeder.service.ts +1 -1
- package/src/seeders/seed-data/solid-core-metadata.json +14 -3
- package/src/services/authentication.service.ts +215 -151
- package/src/services/chatter-message.service.ts +1 -1
- package/src/services/crud.service.ts +3 -3
- package/src/services/csv.service.ts +1 -1
- package/src/services/dashboard.service.ts +1 -1
- package/src/services/database/database-bootstrap.service.ts +1 -1
- package/src/services/excel.service.ts +1 -1
- package/src/services/export-transaction.service.ts +2 -2
- package/src/services/field-metadata.service.ts +3 -3
- package/src/services/fixtures.service.ts +2 -2
- package/src/services/import-transaction.service.ts +2 -2
- package/src/services/list-of-values.service.ts +1 -1
- package/src/services/model-metadata.service.ts +22 -21
- package/src/services/module-metadata.service.ts +7 -7
- package/src/services/queues/database-publisher.service.ts +4 -4
- package/src/services/queues/database-subscriber.service.ts +7 -7
- package/src/services/queues/rabbitmq-publisher.service.ts +7 -7
- package/src/services/queues/rabbitmq-subscriber.service.ts +13 -13
- package/src/services/queues/redis-publisher.service.ts +7 -4
- package/src/services/queues/redis-subscriber.service.ts +9 -6
- package/src/services/role-metadata.service.ts +1 -1
- package/src/services/scheduled-jobs/scheduler.service.ts +5 -5
- package/src/services/settings/default-settings-provider.service.ts +101 -21
- package/src/services/sms/TwilioSMSService.ts +2 -2
- package/src/services/solid-introspect.service.ts +2 -2
- package/src/services/user-activity-history.service.ts +1 -1
- package/src/services/user.service.ts +149 -77
- package/src/services/view-metadata.service.ts +25 -8
- package/src/solid-core.module.ts +1 -0
- package/src/subscribers/computed-entity-field.subscriber.ts +1 -1
- package/src/subscribers/security-rule.subscriber.ts +8 -8
- package/src/subscribers/view-metadata.subscriber.ts +1 -1
- package/src/testing/core/testing-engine.ts +2 -2
- package/src/testing/reporter/webhook-reporter.ts +116 -0
- package/dev-grooming-docs/ozzy-prompts.txt +0 -70
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-metadata-seeder.service.js","sourceRoot":"","sources":["../../src/seeders/permission-metadata-seeder.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwE;AACxE,8DAA2D;AAC3D,iGAA6F;AAC7F,6EAAwE;AAGjE,IAAM,+BAA+B,uCAArC,MAAM,+BAA+B;IAG1C,YAGmB,cAA4C,EAC5C,aAA4B,EAE7C,WAAiD;QAHhC,mBAAc,GAAd,cAAc,CAA8B;QAC5C,kBAAa,GAAb,aAAa,CAAe;QAE5B,gBAAW,GAAX,WAAW,CAAqB;QARlC,WAAM,GAAG,IAAI,eAAM,CAAC,iCAA+B,CAAC,IAAI,CAAC,CAAC;IASvE,CAAC;IAEL,KAAK,CAAC,IAAI;QAER,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QAGxD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;gBAGnC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;gBACnC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;oBAE9C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBAChC,MAAM,cAAc,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;oBAE1D,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;wBAC3D,KAAK,EAAE;4BACL,IAAI,EAAE,cAAc;yBACrB;qBACF,CAAC,CAAC;oBAEH,IAAI,kBAAkB,EAAE,CAAC;wBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,cAAc,kBAAkB,CAAC,CAAC;oBAClE,CAAC;yBACI,CAAC;wBACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,cAAc,gCAAgC,CAAC,CAAC;wBAE9E,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;4BAC/C,IAAI,EAAE,cAAc;yBACrB,CAAC,CAAC;wBACH,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAEhD,CAAC;gBACH,CAAC;YAEH,CAAC;YAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"permission-metadata-seeder.service.js","sourceRoot":"","sources":["../../src/seeders/permission-metadata-seeder.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwE;AACxE,8DAA2D;AAC3D,iGAA6F;AAC7F,6EAAwE;AAGjE,IAAM,+BAA+B,uCAArC,MAAM,+BAA+B;IAG1C,YAGmB,cAA4C,EAC5C,aAA4B,EAE7C,WAAiD;QAHhC,mBAAc,GAAd,cAAc,CAA8B;QAC5C,kBAAa,GAAb,aAAa,CAAe;QAE5B,gBAAW,GAAX,WAAW,CAAqB;QARlC,WAAM,GAAG,IAAI,eAAM,CAAC,iCAA+B,CAAC,IAAI,CAAC,CAAC;IASvE,CAAC;IAEL,KAAK,CAAC,IAAI;QAER,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QAGxD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;gBAGnC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;gBACnC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;oBAE9C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBAChC,MAAM,cAAc,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;oBAE1D,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;wBAC3D,KAAK,EAAE;4BACL,IAAI,EAAE,cAAc;yBACrB;qBACF,CAAC,CAAC;oBAEH,IAAI,kBAAkB,EAAE,CAAC;wBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,cAAc,kBAAkB,CAAC,CAAC;oBAClE,CAAC;yBACI,CAAC;wBACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,cAAc,gCAAgC,CAAC,CAAC;wBAE9E,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;4BAC/C,IAAI,EAAE,cAAc;yBACrB,CAAC,CAAC;wBACH,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAEhD,CAAC;gBACH,CAAC;YAEH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAGD,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AAxDY,0EAA+B;0CAA/B,+BAA+B;IAD3C,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,2CAAmB,CAAC,CAAC,CAAA;qCAFb,6DAA4B;QAC7B,8BAAa;QAEf,2CAAmB;GATxC,+BAA+B,CAwD3C","sourcesContent":["import { forwardRef, Inject, Injectable, Logger } from '@nestjs/common';\nimport { SolidRegistry } from 'src/helpers/solid-registry';\nimport { PermissionMetadataRepository } from 'src/repository/permission-metadata.repository';\nimport { RoleMetadataService } from '../services/role-metadata.service';\n\n@Injectable()\nexport class PermissionMetadataSeederService {\n private readonly logger = new Logger(PermissionMetadataSeederService.name);\n\n constructor(\n // @InjectRepository(PermissionMetadata)\n // private readonly permissionRepo: Repository<PermissionMetadata>,\n private readonly permissionRepo: PermissionMetadataRepository,\n private readonly solidRegistry: SolidRegistry,\n @Inject(forwardRef(() => RoleMetadataService))\n private readonly roleService: RoleMetadataService,\n ) { }\n\n async seed() {\n\n const controllers = this.solidRegistry.getControllers();\n\n // Loop over the countries and create them.\n for (let id = 0; id < controllers.length; id++) {\n try {\n const controller = controllers[id];\n // this.logger.log(`Resolving controller: ${controller.name}`);\n\n const methods = controller.methods;\n for (let mId = 0; mId < methods.length; mId++) {\n\n const methodName = methods[mId];\n const permissionName = `${controller.name}.${methodName}`;\n\n const existingPermission = await this.permissionRepo.findOne({\n where: {\n name: permissionName\n }\n });\n\n if (existingPermission) {\n this.logger.log(`Permission ${permissionName} already exists.`);\n }\n else {\n this.logger.log(`Permission ${permissionName} does not exist, creating new.`);\n\n const newPermission = this.permissionRepo.create({\n name: permissionName\n });\n await this.permissionRepo.save(newPermission);\n\n }\n }\n\n } catch (error: any) {\n this.logger.error(error);\n }\n }\n\n // Associate the Admin role with all existing permissions. \n await this.roleService.addAllPermissionsToRole(\"Admin\");\n }\n}"]}
|
|
@@ -3900,7 +3900,7 @@
|
|
|
3900
3900
|
"type": "selectionStatic",
|
|
3901
3901
|
"defaultValue": "pending",
|
|
3902
3902
|
"length": 256,
|
|
3903
|
-
"required":
|
|
3903
|
+
"required": false,
|
|
3904
3904
|
"index": false,
|
|
3905
3905
|
"isSystem": false,
|
|
3906
3906
|
"selectionValueType": "string",
|
|
@@ -11552,7 +11552,7 @@
|
|
|
11552
11552
|
"enableGlobalSearch": true,
|
|
11553
11553
|
"create": true,
|
|
11554
11554
|
"edit": true,
|
|
11555
|
-
"delete":
|
|
11555
|
+
"delete": true
|
|
11556
11556
|
},
|
|
11557
11557
|
"children": [
|
|
11558
11558
|
{
|
|
@@ -11570,7 +11570,18 @@
|
|
|
11570
11570
|
"name": "name",
|
|
11571
11571
|
"label": "Name",
|
|
11572
11572
|
"sortable": true,
|
|
11573
|
-
"filterable": true
|
|
11573
|
+
"filterable": true,
|
|
11574
|
+
"isSearchable": true
|
|
11575
|
+
}
|
|
11576
|
+
},
|
|
11577
|
+
{
|
|
11578
|
+
"type": "field",
|
|
11579
|
+
"attrs": {
|
|
11580
|
+
"name": "description",
|
|
11581
|
+
"label": "Description",
|
|
11582
|
+
"sortable": true,
|
|
11583
|
+
"filterable": true,
|
|
11584
|
+
"isSearchable": true
|
|
11574
11585
|
}
|
|
11575
11586
|
}
|
|
11576
11587
|
]
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { HttpService } from "@nestjs/axios";
|
|
2
2
|
import { EventEmitter2 } from "@nestjs/event-emitter";
|
|
3
3
|
import { JwtService } from "@nestjs/jwt";
|
|
4
|
-
import { CreateUserDto } from "../dtos/create-user.dto";
|
|
5
4
|
import { MailFactory } from "../factories/mail.factory";
|
|
6
5
|
import { UserRepository } from "../repository/user.repository";
|
|
7
|
-
import { DataSource, Repository } from "typeorm";
|
|
6
|
+
import { DataSource, DeepPartial, Repository } from "typeorm";
|
|
8
7
|
import { ChangePasswordDto } from "../dtos/change-password.dto";
|
|
9
8
|
import { ConfirmForgotPasswordDto } from "../dtos/confirm-forgot-password.dto";
|
|
10
9
|
import { InitiateForgotPasswordDto } from "../dtos/initiate-forgot-password.dto";
|
|
@@ -15,16 +14,16 @@ import { RefreshTokenDto } from "../dtos/refresh-token.dto";
|
|
|
15
14
|
import { SignInDto } from "../dtos/sign-in.dto";
|
|
16
15
|
import { SignUpDto } from "../dtos/sign-up.dto";
|
|
17
16
|
import { User } from "../entities/user.entity";
|
|
18
|
-
import { ActiveUserData } from
|
|
19
|
-
import { HashingService } from
|
|
20
|
-
import { RefreshTokenIdsStorageService } from
|
|
21
|
-
import { SsoCodeStorageService } from
|
|
22
|
-
import { RoleMetadataService } from
|
|
23
|
-
import { SettingService } from
|
|
24
|
-
import { UserActivityHistoryService } from
|
|
25
|
-
import { UserService } from
|
|
26
|
-
import { SmsFactory } from
|
|
27
|
-
import { SolidRegistry } from
|
|
17
|
+
import { ActiveUserData } from "../interfaces/active-user-data.interface";
|
|
18
|
+
import { HashingService } from "./hashing.service";
|
|
19
|
+
import { RefreshTokenIdsStorageService } from "./refresh-token-ids-storage.service";
|
|
20
|
+
import { SsoCodeStorageService } from "./sso-code-storage.service";
|
|
21
|
+
import { RoleMetadataService } from "./role-metadata.service";
|
|
22
|
+
import { SettingService } from "./setting.service";
|
|
23
|
+
import { UserActivityHistoryService } from "./user-activity-history.service";
|
|
24
|
+
import { UserService } from "./user.service";
|
|
25
|
+
import { SmsFactory } from "../factories/sms.factory";
|
|
26
|
+
import { SolidRegistry } from "../helpers/solid-registry";
|
|
28
27
|
export declare class AuthenticationService {
|
|
29
28
|
private readonly userService;
|
|
30
29
|
private readonly userRepository;
|
|
@@ -52,7 +51,7 @@ export declare class AuthenticationService {
|
|
|
52
51
|
private static readonly SIGNUP_DTO_KEYS;
|
|
53
52
|
signUp(signUpDto: SignUpDto & Record<string, any>, activeUser?: ActiveUserData): Promise<User>;
|
|
54
53
|
private performSignUp;
|
|
55
|
-
signupForExtensionUser<T extends User
|
|
54
|
+
signupForExtensionUser<T extends User>(signUpDto: SignUpDto, extensionUserDto: DeepPartial<T>, extensionUserRepo: Repository<T>): Promise<T>;
|
|
56
55
|
private populateForSignup;
|
|
57
56
|
private handlePostSignup;
|
|
58
57
|
generatePassword(length?: number): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.service.d.ts","sourceRoot":"","sources":["../../src/services/authentication.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"authentication.service.d.ts","sourceRoot":"","sources":["../../src/services/authentication.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAO9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAEL,6BAA6B,EAC9B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAa3D,qBACa,qBAAqB;IAI9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc;IAG/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAtBhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;gBAG9C,WAAW,EAAE,WAAW,EAExB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,sBAAsB,EAAE,6BAA6B,EACrD,WAAW,EAAE,WAAW,EAExB,kBAAkB,EAAE,WAAW,EAE/B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,aAAa,EAC3B,cAAc,EAAE,cAAc,EAC9B,mBAAmB,EAAE,mBAAmB,EACxC,0BAA0B,EAAE,0BAA0B,EACtD,cAAc,EAAE,qBAAqB,EAGrC,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa;YAKjC,cAAc;IAItB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAS3C,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM;IAcrD,8BAA8B,CAAC,KAAK,EAAE,MAAM;YAOpC,4BAA4B;YAmB5B,wBAAwB;IAWtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAUpC;IAEG,MAAM,CACV,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1C,UAAU,GAAE,cAAqB,GAChC,OAAO,CAAC,IAAI,CAAC;YAsBF,aAAa;IAuCrB,sBAAsB,CAAC,CAAC,SAAS,IAAI,EACzC,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,EAChC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;YAKC,iBAAiB;YAmEjB,gBAAgB;IAkB9B,gBAAgB,CAAC,MAAM,GAAE,MAAU,GAAG,MAAM;YAiB9B,+BAA+B;YAkC/B,qBAAqB;YAQrB,mBAAmB;YAQnB,kBAAkB;IAwD1B,uBAAuB,CAAC,SAAS,EAAE,YAAY;;;IAkCrD,OAAO,CAAC,4BAA4B;YAsBtB,4BAA4B;IAa1C,OAAO,CAAC,mCAAmC;YAM7B,4CAA4C;IAuB1D,OAAO,CAAC,UAAU;YAWJ,qBAAqB;YAqCrB,mCAAmC;IA0D3C,sBAAsB,CAAC,gBAAgB,EAAE,gBAAgB;;;;YAoCjD,gCAAgC;IAe9C,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,wBAAwB;YAMlB,uDAAuD;YAwBvD,GAAG;IAWjB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,gBAAgB;IAclB,MAAM,CAAC,SAAS,EAAE,SAAS;;;;;;;;;;;;IA0BjC,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,UAAU;IAWZ,gBAAgB,CAAC,SAAS,EAAE,YAAY;;;;;;;;;;IAmB9C,OAAO,CAAC,gBAAgB;YA2BV,gBAAgB;YAsBhB,cAAc;IAsB5B,OAAO,CAAC,qBAAqB;YAcf,6BAA6B;IAqDrC,eAAe,CAAC,gBAAgB,EAAE,gBAAgB;;;;;;;;;;;;IA2CxD,OAAO,CAAC,gBAAgB;YAqBV,aAAa;IA2B3B,OAAO,CAAC,gBAAgB;YAMV,uBAAuB;IAK/B,cAAc,CAClB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,cAAc;YA0Dd,2BAA2B;IAiBnC,sBAAsB,CAC1B,yBAAyB,EAAE,yBAAyB;;;;;;;;;;;YAsDxC,0BAA0B;IA8DlC,qBAAqB,CACzB,wBAAwB,EAAE,wBAAwB;;;;;;;YA+DtC,2BAA2B;IA8DnC,cAAc,CAAC,IAAI,EAAE,IAAI;;;;IAYzB,mBAAmB,CAAC,IAAI,EAAE,IAAI;IAe9B,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,EAAE,MAAM;IAkB9D,aAAa,CAAC,eAAe,EAAE,eAAe;;;;YA4DtC,SAAS;IAuBjB,uBAAuB,CAAC,IAAI,EAAE,IAAI;IAyBlC,iBAAiB,CAAC,UAAU,EAAE,MAAM;;;;;;;;;;;IAqCpC,yBAAyB,CAAC,IAAI,EAAE,IAAI;IAiCpC,mBAAmB,CAAC,UAAU,EAAE,MAAM;;;;;;;;;;;IAoCtC,0BAA0B,CAAC,IAAI,EAAE,IAAI;IA0BrC,oBAAoB,CAAC,UAAU,EAAE,MAAM;;;;;;;;;;;IAoCvC,gBAAgB,CAAC,UAAU,EAAE,MAAM;;;;;;;;;;;YAkC3B,iCAAiC;IAO/C,OAAO,CAAC,mBAAmB;YAab,uBAAuB;YAQvB,mBAAmB;IAa3B,MAAM,CAAC,YAAY,EAAE,MAAM;;;IAuC3B,YAAY,CAAC,MAAM,EAAE,MAAM;IAS3B,EAAE,CAAC,UAAU,EAAE,cAAc;;;;;;;;;;IA+B7B,eAAe,CACnB,UAAU,EAAE,cAAc,EAC1B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBzB,eAAe,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;CAYnC"}
|
|
@@ -111,11 +111,11 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
async signUp(signUpDto, activeUser = null) {
|
|
114
|
-
const hasExtensionFields = Object.keys(signUpDto).some(k => !AuthenticationService_1.SIGNUP_DTO_KEYS.has(k));
|
|
114
|
+
const hasExtensionFields = Object.keys(signUpDto).some((k) => !AuthenticationService_1.SIGNUP_DTO_KEYS.has(k));
|
|
115
115
|
if (hasExtensionFields) {
|
|
116
116
|
const provider = this.solidRegistry.getExtensionUserCreationProvider();
|
|
117
117
|
if (!provider) {
|
|
118
|
-
throw new common_1.InternalServerErrorException(
|
|
118
|
+
throw new common_1.InternalServerErrorException("No ExtensionUserCreationProvider registered. Register one to handle extension user creation.");
|
|
119
119
|
}
|
|
120
120
|
const entity = await provider.buildExtensionEntity(signUpDto);
|
|
121
121
|
const effectiveDto = { ...signUpDto, roles: provider.roles(signUpDto) };
|
|
@@ -125,9 +125,9 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
125
125
|
}
|
|
126
126
|
async performSignUp(signUpDto, entity, repo) {
|
|
127
127
|
try {
|
|
128
|
-
const onForcePasswordChange = this.settingService.getConfigValue(
|
|
129
|
-
const activateUserOnRegistration = this.settingService.getConfigValue(
|
|
130
|
-
const defaultRole = this.settingService.getConfigValue(
|
|
128
|
+
const onForcePasswordChange = this.settingService.getConfigValue("forceChangePasswordOnFirstLogin");
|
|
129
|
+
const activateUserOnRegistration = this.settingService.getConfigValue("activateUserOnRegistration");
|
|
130
|
+
const defaultRole = this.settingService.getConfigValue("defaultRole");
|
|
131
131
|
var { user, pwd, autoGeneratedPwd } = await this.populateForSignup(entity, signUpDto, activateUserOnRegistration, onForcePasswordChange);
|
|
132
132
|
const privateDto = signUpDto;
|
|
133
133
|
if (privateDto.isAllowedToGenerateApiKeys !== undefined) {
|
|
@@ -135,14 +135,14 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
135
135
|
}
|
|
136
136
|
const savedUser = await repo.save(user);
|
|
137
137
|
const userRoles = signUpDto.roles ?? [];
|
|
138
|
-
if ((signUpDto.roles?.length ?? 0) === 0 && signUpDto.username !==
|
|
138
|
+
if ((signUpDto.roles?.length ?? 0) === 0 && signUpDto.username !== "sa" && defaultRole) {
|
|
139
139
|
userRoles.push(defaultRole);
|
|
140
140
|
}
|
|
141
141
|
await this.handlePostSignup(savedUser, userRoles, pwd, autoGeneratedPwd);
|
|
142
142
|
return savedUser;
|
|
143
143
|
}
|
|
144
144
|
catch (err) {
|
|
145
|
-
const pgUniqueViolationErrorCode =
|
|
145
|
+
const pgUniqueViolationErrorCode = "23505";
|
|
146
146
|
if (err.code === pgUniqueViolationErrorCode) {
|
|
147
147
|
throw new common_1.ConflictException(parseUniqueConstraintError(err.detail || error_messages_1.ERROR_MESSAGES.UNIQUE_CONSTRAINT_VIOLATION));
|
|
148
148
|
}
|
|
@@ -150,7 +150,7 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
async signupForExtensionUser(signUpDto, extensionUserDto, extensionUserRepo) {
|
|
153
|
-
const entity = extensionUserRepo.
|
|
153
|
+
const entity = extensionUserRepo.create(extensionUserDto);
|
|
154
154
|
return this.performSignUp(signUpDto, entity, extensionUserRepo);
|
|
155
155
|
}
|
|
156
156
|
async populateForSignup(user, signUpDto, isUserActive = true, onForcePasswordChange) {
|
|
@@ -312,7 +312,7 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
312
312
|
user.active = false;
|
|
313
313
|
await this.assignRegistrationOtp(validationSource, user);
|
|
314
314
|
await this.userRepository.save(user);
|
|
315
|
-
await this.userService.addRoleToUser(user.username, this.settingService.getConfigValue(
|
|
315
|
+
await this.userService.addRoleToUser(user.username, this.settingService.getConfigValue("defaultRole"));
|
|
316
316
|
}
|
|
317
317
|
else {
|
|
318
318
|
await this.assignRegistrationOtp(validationSource, user);
|
|
@@ -825,11 +825,11 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
825
825
|
return this.dataSource.transaction(async (m) => {
|
|
826
826
|
const user = await this.resolveUserByVerificationToken(confirmForgotPasswordDto.verificationToken);
|
|
827
827
|
if (!user)
|
|
828
|
-
throw new common_1.UnauthorizedException(
|
|
828
|
+
throw new common_1.UnauthorizedException("Invalid verification token");
|
|
829
829
|
if (user.lastLoginProvider !== "local")
|
|
830
830
|
throw new common_1.UnauthorizedException(error_messages_1.ERROR_MESSAGES.INVALID_CREDENTIALS);
|
|
831
831
|
if (!user.active)
|
|
832
|
-
throw new common_1.UnauthorizedException(
|
|
832
|
+
throw new common_1.UnauthorizedException("User is inactive");
|
|
833
833
|
const { affected } = await m
|
|
834
834
|
.createQueryBuilder()
|
|
835
835
|
.update(user_entity_1.User)
|
|
@@ -1018,8 +1018,16 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
1018
1018
|
};
|
|
1019
1019
|
}
|
|
1020
1020
|
async validateUserUsingFacebook(user) {
|
|
1021
|
+
if (!user.facebookAccessToken || !user.facebookId) {
|
|
1022
|
+
throw new common_1.UnauthorizedException(error_messages_1.ERROR_MESSAGES.USER_NOT_FOUND);
|
|
1023
|
+
}
|
|
1021
1024
|
try {
|
|
1022
|
-
const response = await this.httpService.axiosRef.get(`https://graph.facebook.com/me
|
|
1025
|
+
const response = await this.httpService.axiosRef.get(`https://graph.facebook.com/me`, {
|
|
1026
|
+
params: { fields: "id,name,email" },
|
|
1027
|
+
headers: {
|
|
1028
|
+
Authorization: `Bearer ${user.facebookAccessToken}`,
|
|
1029
|
+
},
|
|
1030
|
+
});
|
|
1023
1031
|
const userProfile = response.data;
|
|
1024
1032
|
if (userProfile.id === user.facebookId &&
|
|
1025
1033
|
(!user.email || !userProfile.email || userProfile.email === user.email)) {
|
|
@@ -1030,7 +1038,10 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
1030
1038
|
}
|
|
1031
1039
|
}
|
|
1032
1040
|
catch (error) {
|
|
1033
|
-
|
|
1041
|
+
if (error instanceof common_1.UnauthorizedException) {
|
|
1042
|
+
throw error;
|
|
1043
|
+
}
|
|
1044
|
+
throw new common_1.UnauthorizedException(error_messages_1.ERROR_MESSAGES.USER_NOT_FOUND);
|
|
1034
1045
|
}
|
|
1035
1046
|
}
|
|
1036
1047
|
async signInUsingFacebook(accessCode) {
|
|
@@ -1216,7 +1227,7 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
1216
1227
|
mobile: user.mobile,
|
|
1217
1228
|
username: user.username,
|
|
1218
1229
|
id: user.id,
|
|
1219
|
-
roles: user.roles.map((role) => role.name)
|
|
1230
|
+
roles: user.roles.map((role) => role.name),
|
|
1220
1231
|
},
|
|
1221
1232
|
refreshToken: refreshTokenState.currentRefreshToken,
|
|
1222
1233
|
};
|
|
@@ -1225,22 +1236,35 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
1225
1236
|
async generateSsoCode(activeUser, rawAccessToken) {
|
|
1226
1237
|
const refreshTokenState = await this.refreshTokenIdsStorage.getCurrentRefreshTokenState(activeUser.sub);
|
|
1227
1238
|
if (!refreshTokenState?.currentRefreshToken) {
|
|
1228
|
-
throw new common_1.UnauthorizedException(
|
|
1239
|
+
throw new common_1.UnauthorizedException("No active session found");
|
|
1229
1240
|
}
|
|
1230
1241
|
const ssoCode = await this.ssoCodeStorage.generateCode(activeUser.sub, rawAccessToken, refreshTokenState.currentRefreshToken);
|
|
1231
1242
|
return { ssoCode };
|
|
1232
1243
|
}
|
|
1233
1244
|
async exchangeSsoCode(code) {
|
|
1234
1245
|
const { userId, accessToken, refreshToken } = await this.ssoCodeStorage.consumeCode(code);
|
|
1235
|
-
const user = await this.userRepository.findOne({
|
|
1246
|
+
const user = await this.userRepository.findOne({
|
|
1247
|
+
where: { id: userId },
|
|
1248
|
+
relations: { roles: true },
|
|
1249
|
+
});
|
|
1236
1250
|
if (!user) {
|
|
1237
|
-
throw new common_1.UnauthorizedException(
|
|
1251
|
+
throw new common_1.UnauthorizedException("User not found");
|
|
1238
1252
|
}
|
|
1239
1253
|
return { accessToken, refreshToken, user: this.buildUserPayload(user) };
|
|
1240
1254
|
}
|
|
1241
1255
|
};
|
|
1242
1256
|
exports.AuthenticationService = AuthenticationService;
|
|
1243
|
-
AuthenticationService.SIGNUP_DTO_KEYS = new Set([
|
|
1257
|
+
AuthenticationService.SIGNUP_DTO_KEYS = new Set([
|
|
1258
|
+
"username",
|
|
1259
|
+
"email",
|
|
1260
|
+
"password",
|
|
1261
|
+
"fullName",
|
|
1262
|
+
"mobile",
|
|
1263
|
+
"roles",
|
|
1264
|
+
"forcePasswordChange",
|
|
1265
|
+
"isAllowedToGenerateApiKeys",
|
|
1266
|
+
"failedLoginAttempts",
|
|
1267
|
+
]);
|
|
1244
1268
|
exports.AuthenticationService = AuthenticationService = AuthenticationService_1 = __decorate([
|
|
1245
1269
|
(0, common_1.Injectable)(),
|
|
1246
1270
|
__param(13, (0, typeorm_1.InjectDataSource)()),
|