@drax/identity-back 2.11.0 → 3.1.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/dist/index.js CHANGED
@@ -26,6 +26,7 @@ import { apiKeyMiddleware } from "./middleware/apiKeyMiddleware.js";
26
26
  import IdentityConfig from "./config/IdentityConfig.js";
27
27
  import BadCredentialsError from "./errors/BadCredentialsError.js";
28
28
  import CreateUserIfNotExist from "./setup/CreateUserIfNotExist.js";
29
+ import CreateTenantIfNotExist from "./setup/CreateTenantIfNotExist.js";
29
30
  import CreateOrUpdateRole from "./setup/CreateOrUpdateRole.js";
30
31
  import LoadPermissions from "./setup/LoadPermissions.js";
31
32
  import LoadIdentityConfigFromEnv from "./setup/LoadIdentityConfigFromEnv.js";
@@ -89,4 +90,4 @@ IdentityConfig,
89
90
  //Errors
90
91
  BadCredentialsError,
91
92
  //Setup
92
- LoadIdentityConfigFromEnv, LoadPermissions, CreateOrUpdateRole, CreateUserIfNotExist, RecoveryUserPassword };
93
+ LoadIdentityConfigFromEnv, LoadPermissions, CreateOrUpdateRole, CreateUserIfNotExist, CreateTenantIfNotExist, RecoveryUserPassword };
package/dist/rbac/Rbac.js CHANGED
@@ -41,6 +41,9 @@ class Rbac {
41
41
  get roleName() {
42
42
  return this?.authUser?.roleName;
43
43
  }
44
+ get hasTenant() {
45
+ return !!this?.authUser?.tenantId;
46
+ }
44
47
  get tenantId() {
45
48
  return this?.authUser?.tenantId?.toString();
46
49
  }
@@ -0,0 +1,12 @@
1
+ import TenantServiceFactory from "../factory/TenantServiceFactory.js";
2
+ async function CreateTenantIfNotExist(tenantData) {
3
+ const tenantService = TenantServiceFactory();
4
+ const tenant = await tenantService.findByName(tenantData.name);
5
+ if (!tenant) {
6
+ const r = await tenantService.create(tenantData);
7
+ console.log("Tenant Created. Name: " + tenantData.name);
8
+ return r;
9
+ }
10
+ }
11
+ export default CreateTenantIfNotExist;
12
+ export { CreateTenantIfNotExist };
@@ -1,8 +1,10 @@
1
1
  import RoleServiceFactory from "../factory/RoleServiceFactory.js";
2
2
  import UserServiceFactory from "../factory/UserServiceFactory.js";
3
+ import TenantServiceFactory from "../factory/TenantServiceFactory.js";
3
4
  async function CreateUserIfNotExist(userData) {
4
5
  const userService = UserServiceFactory();
5
6
  const roleService = RoleServiceFactory();
7
+ const tenantService = TenantServiceFactory();
6
8
  const user = await userService.findByUsername(userData.username);
7
9
  if (user) {
8
10
  return user;
@@ -10,6 +12,10 @@ async function CreateUserIfNotExist(userData) {
10
12
  else {
11
13
  const role = await roleService.findByName(userData.role);
12
14
  userData.role = role._id.toString();
15
+ if (userData.tenant) {
16
+ const tenant = await tenantService.findByName(userData.tenant);
17
+ userData.tenant = tenant._id.toString();
18
+ }
13
19
  const r = await userService.create(userData);
14
20
  console.log("User Created. Username: " + userData.username);
15
21
  return r;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "2.11.0",
6
+ "version": "3.1.0",
7
7
  "description": "Identity module for user management, authentication and authorization.",
8
8
  "main": "dist/index.js",
9
9
  "types": "types/index.d.ts",
@@ -28,11 +28,11 @@
28
28
  "author": "Cristian Incarnato & Drax Team",
29
29
  "license": "ISC",
30
30
  "dependencies": {
31
- "@drax/common-back": "^2.11.0",
32
- "@drax/crud-back": "^2.11.0",
33
- "@drax/crud-share": "^2.11.0",
34
- "@drax/email-back": "^2.0.0",
35
- "@drax/identity-share": "^2.0.0",
31
+ "@drax/common-back": "^3.0.0",
32
+ "@drax/crud-back": "^3.1.0",
33
+ "@drax/crud-share": "^3.1.0",
34
+ "@drax/email-back": "^3.1.0",
35
+ "@drax/identity-share": "^3.0.0",
36
36
  "bcryptjs": "^2.4.3",
37
37
  "graphql": "^16.8.2",
38
38
  "jsonwebtoken": "^9.0.2"
@@ -63,5 +63,5 @@
63
63
  "debug": "0"
64
64
  }
65
65
  },
66
- "gitHead": "8919d31d4d9512e48ac461b0876dc85a5849daea"
66
+ "gitHead": "262ea8f861c84ca1ad4d555545c5a94b95dbf25e"
67
67
  }
package/src/index.ts CHANGED
@@ -32,6 +32,7 @@ import IdentityConfig from "./config/IdentityConfig.js";
32
32
  import BadCredentialsError from "./errors/BadCredentialsError.js";
33
33
 
34
34
  import CreateUserIfNotExist from "./setup/CreateUserIfNotExist.js";
35
+ import CreateTenantIfNotExist from "./setup/CreateTenantIfNotExist.js";
35
36
  import CreateOrUpdateRole from "./setup/CreateOrUpdateRole.js";
36
37
  import LoadPermissions from "./setup/LoadPermissions.js";
37
38
  import LoadIdentityConfigFromEnv from "./setup/LoadIdentityConfigFromEnv.js";
@@ -197,6 +198,7 @@ export {
197
198
  LoadPermissions,
198
199
  CreateOrUpdateRole,
199
200
  CreateUserIfNotExist,
201
+ CreateTenantIfNotExist,
200
202
  RecoveryUserPassword
201
203
  }
202
204
 
package/src/rbac/Rbac.ts CHANGED
@@ -56,6 +56,10 @@ class Rbac implements IRbac{
56
56
  return this?.authUser?.roleName
57
57
  }
58
58
 
59
+ get hasTenant(): boolean {
60
+ return !!this?.authUser?.tenantId;
61
+ }
62
+
59
63
  get tenantId(): string | undefined {
60
64
  return this?.authUser?.tenantId?.toString();
61
65
  }
@@ -0,0 +1,18 @@
1
+ import type {ITenantBase, ITenant} from "@drax/identity-share"
2
+ import TenantServiceFactory from "../factory/TenantServiceFactory.js"
3
+
4
+ async function CreateTenantIfNotExist(tenantData: ITenantBase):Promise<ITenant> {
5
+ const tenantService = TenantServiceFactory()
6
+ const tenant = await tenantService.findByName(tenantData.name)
7
+
8
+ if(!tenant){
9
+ const r = await tenantService.create(tenantData)
10
+ console.log("Tenant Created. Name: "+ tenantData.name)
11
+ return r
12
+ }
13
+ }
14
+
15
+ export default CreateTenantIfNotExist
16
+ export {
17
+ CreateTenantIfNotExist
18
+ }
@@ -1,16 +1,24 @@
1
1
  import RoleServiceFactory from "../factory/RoleServiceFactory.js"
2
2
  import UserServiceFactory from "../factory/UserServiceFactory.js"
3
+ import TenantServiceFactory from "../factory/TenantServiceFactory.js"
3
4
  import {IUserCreate, IUser} from "@drax/identity-share";
4
5
 
5
6
  async function CreateUserIfNotExist(userData: IUserCreate): Promise<IUser> {
6
7
  const userService = UserServiceFactory()
7
8
  const roleService = RoleServiceFactory()
9
+ const tenantService = TenantServiceFactory()
8
10
  const user = await userService.findByUsername(userData.username)
9
11
  if (user) {
10
12
  return user
11
13
  } else {
12
14
  const role = await roleService.findByName(userData.role as string)
13
15
  userData.role = role._id.toString()
16
+
17
+ if(userData.tenant){
18
+ const tenant = await tenantService.findByName(userData.tenant as string)
19
+ userData.tenant = tenant._id.toString()
20
+ }
21
+
14
22
  const r = await userService.create(userData)
15
23
  console.log("User Created. Username: " + userData.username)
16
24
  return r