@drax/identity-back 0.33.1 → 0.34.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.
Files changed (212) hide show
  1. package/dist/config/IdentityConfig.js +0 -0
  2. package/dist/controllers/RoleController.js +0 -0
  3. package/dist/controllers/TenantController.js +0 -0
  4. package/dist/controllers/UserApiKeyController.js +0 -0
  5. package/dist/controllers/UserController.js +1 -1
  6. package/dist/errors/BadCredentialsError.js +0 -0
  7. package/dist/factory/RoleServiceFactory.js +0 -0
  8. package/dist/factory/TenantServiceFactory.js +0 -0
  9. package/dist/factory/UserApiKeyServiceFactory.js +0 -0
  10. package/dist/factory/UserRegistryServiceFactory.js +24 -0
  11. package/dist/factory/UserServiceFactory.js +0 -0
  12. package/dist/graphql/index.js +0 -0
  13. package/dist/graphql/resolvers/role.resolvers.js +0 -0
  14. package/dist/graphql/resolvers/tenant.resolvers.js +0 -0
  15. package/dist/graphql/resolvers/user-api-key.resolvers.js +0 -0
  16. package/dist/graphql/resolvers/user.resolvers.js +0 -0
  17. package/dist/index.js +0 -0
  18. package/dist/interfaces/IRbac.js +1 -0
  19. package/dist/interfaces/IRoleRepository.js +0 -0
  20. package/dist/interfaces/ITenantRepository.js +0 -0
  21. package/dist/interfaces/IUserApiKeyRepository.js +0 -0
  22. package/dist/interfaces/IUserRepository.js +0 -0
  23. package/dist/middleware/apiKeyMiddleware.js +0 -0
  24. package/dist/middleware/jwtMiddleware.js +0 -0
  25. package/dist/middleware/rbacMiddleware.js +0 -0
  26. package/dist/models/RoleModel.js +0 -0
  27. package/dist/models/TenantModel.js +0 -0
  28. package/dist/models/UserApiKeyModel.js +0 -0
  29. package/dist/models/UserGroupModel.js +0 -0
  30. package/dist/models/UserModel.js +0 -0
  31. package/dist/permissions/IdentityPermissions.js +0 -0
  32. package/dist/permissions/RolePermissions.js +0 -0
  33. package/dist/permissions/TenantPermissions.js +0 -0
  34. package/dist/permissions/UserApiKeyPermissions.js +0 -0
  35. package/dist/permissions/UserPermissions.js +0 -0
  36. package/dist/permissions/index.js +0 -0
  37. package/dist/rbac/Rbac.js +0 -0
  38. package/dist/repository/mongo/RoleMongoRepository.js +0 -0
  39. package/dist/repository/mongo/TenantMongoRepository.js +0 -0
  40. package/dist/repository/mongo/UserApiKeyMongoRepository.js +0 -0
  41. package/dist/repository/mongo/UserMongoRepository.js +0 -0
  42. package/dist/repository/sqlite/RoleSqliteRepository.js +0 -0
  43. package/dist/repository/sqlite/TenantSqliteRepository.js +0 -0
  44. package/dist/repository/sqlite/UserApiKeySqliteRepository.js +0 -0
  45. package/dist/repository/sqlite/UserSqliteRepository.js +0 -0
  46. package/dist/routes/RoleRoutes.js +0 -0
  47. package/dist/routes/TenantRoutes.js +0 -0
  48. package/dist/routes/UserApiKeyRoutes.js +0 -0
  49. package/dist/routes/UserAvatarRoutes.js +70 -0
  50. package/dist/routes/UserRoutes.js +0 -0
  51. package/dist/schemas/TenantSchema.js +1 -1
  52. package/dist/services/PermissionService.js +0 -0
  53. package/dist/services/RoleService.js +0 -0
  54. package/dist/services/TenantService.js +0 -0
  55. package/dist/services/UserApiKeyService.js +0 -0
  56. package/dist/services/UserService.js +0 -0
  57. package/dist/setup/CreateOrUpdateRole.js +0 -0
  58. package/dist/setup/CreateUserIfNotExist.js +0 -0
  59. package/dist/setup/LoadIdentityConfigFromEnv.js +0 -0
  60. package/dist/setup/LoadPermissions.js +0 -0
  61. package/dist/setup/RecoveryUserPassword.js +0 -0
  62. package/dist/utils/AuthUtils.js +0 -0
  63. package/dist/zod/EndpointZod.js +9 -0
  64. package/dist/zod/RoleZod.js +8 -0
  65. package/dist/zod/TenantSchema.js +12 -0
  66. package/dist/zod/TenantZod.js +10 -0
  67. package/dist/zod/UserApiKeyZod.js +13 -0
  68. package/dist/zod/UserZod.js +18 -0
  69. package/package.json +7 -7
  70. package/src/controllers/UserController.ts +1 -1
  71. package/src/schemas/TenantSchema.ts +1 -1
  72. package/test.db +0 -0
  73. package/tsconfig.tsbuildinfo +1 -1
  74. package/types/config/IdentityConfig.d.ts +0 -0
  75. package/types/config/IdentityConfig.d.ts.map +0 -0
  76. package/types/controllers/RoleController.d.ts +0 -0
  77. package/types/controllers/RoleController.d.ts.map +0 -0
  78. package/types/controllers/TenantController.d.ts +0 -0
  79. package/types/controllers/TenantController.d.ts.map +0 -0
  80. package/types/controllers/UserApiKeyController.d.ts +0 -0
  81. package/types/controllers/UserApiKeyController.d.ts.map +0 -0
  82. package/types/controllers/UserController.d.ts +0 -0
  83. package/types/controllers/UserController.d.ts.map +0 -0
  84. package/types/errors/BadCredentialsError.d.ts +0 -0
  85. package/types/errors/BadCredentialsError.d.ts.map +0 -0
  86. package/types/factory/RoleServiceFactory.d.ts +0 -0
  87. package/types/factory/RoleServiceFactory.d.ts.map +0 -0
  88. package/types/factory/TenantServiceFactory.d.ts +0 -0
  89. package/types/factory/TenantServiceFactory.d.ts.map +0 -0
  90. package/types/factory/UserApiKeyServiceFactory.d.ts +1 -1
  91. package/types/factory/UserApiKeyServiceFactory.d.ts.map +0 -0
  92. package/types/factory/UserRegistryServiceFactory.d.ts +4 -0
  93. package/types/factory/UserRegistryServiceFactory.d.ts.map +1 -0
  94. package/types/factory/UserServiceFactory.d.ts +0 -0
  95. package/types/factory/UserServiceFactory.d.ts.map +0 -0
  96. package/types/graphql/index.d.ts +0 -0
  97. package/types/graphql/index.d.ts.map +0 -0
  98. package/types/graphql/resolvers/role.resolvers.d.ts +0 -0
  99. package/types/graphql/resolvers/role.resolvers.d.ts.map +0 -0
  100. package/types/graphql/resolvers/tenant.resolvers.d.ts +0 -0
  101. package/types/graphql/resolvers/tenant.resolvers.d.ts.map +0 -0
  102. package/types/graphql/resolvers/user-api-key.resolvers.d.ts +0 -0
  103. package/types/graphql/resolvers/user-api-key.resolvers.d.ts.map +0 -0
  104. package/types/graphql/resolvers/user.resolvers.d.ts +0 -0
  105. package/types/graphql/resolvers/user.resolvers.d.ts.map +0 -0
  106. package/types/index.d.ts +0 -0
  107. package/types/index.d.ts.map +0 -0
  108. package/types/interfaces/IRbac.d.ts +16 -0
  109. package/types/interfaces/IRbac.d.ts.map +1 -0
  110. package/types/interfaces/IRoleRepository.d.ts +0 -0
  111. package/types/interfaces/IRoleRepository.d.ts.map +0 -0
  112. package/types/interfaces/ITenantRepository.d.ts +0 -0
  113. package/types/interfaces/ITenantRepository.d.ts.map +0 -0
  114. package/types/interfaces/IUserApiKeyRepository.d.ts +0 -0
  115. package/types/interfaces/IUserApiKeyRepository.d.ts.map +0 -0
  116. package/types/interfaces/IUserRepository.d.ts +0 -0
  117. package/types/interfaces/IUserRepository.d.ts.map +0 -0
  118. package/types/middleware/apiKeyMiddleware.d.ts +0 -0
  119. package/types/middleware/apiKeyMiddleware.d.ts.map +0 -0
  120. package/types/middleware/jwtMiddleware.d.ts +0 -0
  121. package/types/middleware/jwtMiddleware.d.ts.map +0 -0
  122. package/types/middleware/rbacMiddleware.d.ts +0 -0
  123. package/types/middleware/rbacMiddleware.d.ts.map +0 -0
  124. package/types/models/RoleModel.d.ts +0 -0
  125. package/types/models/RoleModel.d.ts.map +0 -0
  126. package/types/models/TenantModel.d.ts +0 -0
  127. package/types/models/TenantModel.d.ts.map +0 -0
  128. package/types/models/UserApiKeyModel.d.ts +0 -0
  129. package/types/models/UserApiKeyModel.d.ts.map +0 -0
  130. package/types/models/UserGroupModel.d.ts +0 -0
  131. package/types/models/UserGroupModel.d.ts.map +0 -0
  132. package/types/models/UserModel.d.ts +0 -0
  133. package/types/models/UserModel.d.ts.map +0 -0
  134. package/types/permissions/IdentityPermissions.d.ts +0 -0
  135. package/types/permissions/IdentityPermissions.d.ts.map +0 -0
  136. package/types/permissions/RolePermissions.d.ts +0 -0
  137. package/types/permissions/RolePermissions.d.ts.map +0 -0
  138. package/types/permissions/TenantPermissions.d.ts +0 -0
  139. package/types/permissions/TenantPermissions.d.ts.map +0 -0
  140. package/types/permissions/UserApiKeyPermissions.d.ts +0 -0
  141. package/types/permissions/UserApiKeyPermissions.d.ts.map +0 -0
  142. package/types/permissions/UserPermissions.d.ts +0 -0
  143. package/types/permissions/UserPermissions.d.ts.map +0 -0
  144. package/types/permissions/index.d.ts +0 -0
  145. package/types/permissions/index.d.ts.map +0 -0
  146. package/types/rbac/Rbac.d.ts +0 -0
  147. package/types/rbac/Rbac.d.ts.map +0 -0
  148. package/types/repository/mongo/RoleMongoRepository.d.ts +0 -0
  149. package/types/repository/mongo/RoleMongoRepository.d.ts.map +0 -0
  150. package/types/repository/mongo/TenantMongoRepository.d.ts +0 -0
  151. package/types/repository/mongo/TenantMongoRepository.d.ts.map +0 -0
  152. package/types/repository/mongo/UserApiKeyMongoRepository.d.ts +0 -0
  153. package/types/repository/mongo/UserApiKeyMongoRepository.d.ts.map +0 -0
  154. package/types/repository/mongo/UserMongoRepository.d.ts +0 -0
  155. package/types/repository/mongo/UserMongoRepository.d.ts.map +0 -0
  156. package/types/repository/sqlite/RoleSqliteRepository.d.ts +0 -0
  157. package/types/repository/sqlite/RoleSqliteRepository.d.ts.map +0 -0
  158. package/types/repository/sqlite/TenantSqliteRepository.d.ts +0 -0
  159. package/types/repository/sqlite/TenantSqliteRepository.d.ts.map +0 -0
  160. package/types/repository/sqlite/UserApiKeySqliteRepository.d.ts +0 -0
  161. package/types/repository/sqlite/UserApiKeySqliteRepository.d.ts.map +0 -0
  162. package/types/repository/sqlite/UserSqliteRepository.d.ts +0 -0
  163. package/types/repository/sqlite/UserSqliteRepository.d.ts.map +0 -0
  164. package/types/routes/RoleRoutes.d.ts +0 -0
  165. package/types/routes/RoleRoutes.d.ts.map +0 -0
  166. package/types/routes/TenantRoutes.d.ts +0 -0
  167. package/types/routes/TenantRoutes.d.ts.map +0 -0
  168. package/types/routes/UserApiKeyRoutes.d.ts +0 -0
  169. package/types/routes/UserApiKeyRoutes.d.ts.map +0 -0
  170. package/types/routes/UserAvatarRoutes.d.ts +4 -0
  171. package/types/routes/UserAvatarRoutes.d.ts.map +1 -0
  172. package/types/routes/UserRoutes.d.ts +0 -0
  173. package/types/routes/UserRoutes.d.ts.map +0 -0
  174. package/types/schemas/RegisterSchema.d.ts +4 -4
  175. package/types/schemas/RoleSchema.d.ts +6 -6
  176. package/types/schemas/TenantSchema.d.ts +4 -4
  177. package/types/schemas/UserApiKeySchema.d.ts +4 -4
  178. package/types/schemas/UserSchema.d.ts +21 -21
  179. package/types/services/PermissionService.d.ts +0 -0
  180. package/types/services/PermissionService.d.ts.map +0 -0
  181. package/types/services/RoleService.d.ts +0 -0
  182. package/types/services/RoleService.d.ts.map +0 -0
  183. package/types/services/TenantService.d.ts +0 -0
  184. package/types/services/TenantService.d.ts.map +0 -0
  185. package/types/services/UserApiKeyService.d.ts +0 -0
  186. package/types/services/UserApiKeyService.d.ts.map +0 -0
  187. package/types/services/UserService.d.ts +0 -0
  188. package/types/services/UserService.d.ts.map +0 -0
  189. package/types/setup/CreateOrUpdateRole.d.ts +0 -0
  190. package/types/setup/CreateOrUpdateRole.d.ts.map +0 -0
  191. package/types/setup/CreateUserIfNotExist.d.ts +0 -0
  192. package/types/setup/CreateUserIfNotExist.d.ts.map +0 -0
  193. package/types/setup/LoadIdentityConfigFromEnv.d.ts +0 -0
  194. package/types/setup/LoadIdentityConfigFromEnv.d.ts.map +0 -0
  195. package/types/setup/LoadPermissions.d.ts +0 -0
  196. package/types/setup/LoadPermissions.d.ts.map +0 -0
  197. package/types/setup/RecoveryUserPassword.d.ts +0 -0
  198. package/types/setup/RecoveryUserPassword.d.ts.map +0 -0
  199. package/types/utils/AuthUtils.d.ts +0 -0
  200. package/types/utils/AuthUtils.d.ts.map +0 -0
  201. package/types/zod/EndpointZod.d.ts +20 -0
  202. package/types/zod/EndpointZod.d.ts.map +1 -0
  203. package/types/zod/RoleZod.d.ts +10 -0
  204. package/types/zod/RoleZod.d.ts.map +1 -0
  205. package/types/zod/TenantSchema.d.ts +26 -0
  206. package/types/zod/TenantSchema.d.ts.map +1 -0
  207. package/types/zod/TenantZod.d.ts +20 -0
  208. package/types/zod/TenantZod.d.ts.map +1 -0
  209. package/types/zod/UserApiKeyZod.d.ts +36 -0
  210. package/types/zod/UserApiKeyZod.d.ts.map +1 -0
  211. package/types/zod/UserZod.d.ts +53 -0
  212. package/types/zod/UserZod.d.ts.map +1 -0
File without changes
File without changes
File without changes
File without changes
@@ -301,7 +301,7 @@ class UserController extends AbstractFastifyController {
301
301
  }
302
302
  async changePassword(request, reply) {
303
303
  try {
304
- request.rbac.assertPermission(UserPermissions.Update);
304
+ request.rbac.assertPermission(UserPermissions.ChangePassword);
305
305
  const userId = request.params.id;
306
306
  if (!userId) {
307
307
  throw new UnauthorizedError();
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,24 @@
1
+ import UserRegistryService from "../services/UserRegistryService.js";
2
+ import { COMMON, CommonConfig, DraxConfig } from "@drax/common-back";
3
+ import UserRegistrySqliteRepository from "../repository/sqlite/UserRegistrySqliteRepository.js";
4
+ import UserRegistryMongoRepository from "../repository/mongo/UserRegistryMongoRepository.js";
5
+ let userRegistryService;
6
+ const UserRegistryServiceFactory = (verbose = false) => {
7
+ if (!userRegistryService) {
8
+ let repository;
9
+ switch (DraxConfig.getOrLoad(CommonConfig.DbEngine)) {
10
+ case COMMON.DB_ENGINES.MONGODB:
11
+ repository = new UserRegistryMongoRepository();
12
+ break;
13
+ case COMMON.DB_ENGINES.SQLITE:
14
+ const dbFile = DraxConfig.getOrLoad(CommonConfig.SqliteDbFile);
15
+ repository = new UserRegistrySqliteRepository(dbFile, verbose);
16
+ break;
17
+ default:
18
+ throw new Error("DraxConfig.DB_ENGINE must be one of " + Object.values(COMMON.DB_ENGINES).join(", "));
19
+ }
20
+ userRegistryService = new UserRegistryService(repository);
21
+ }
22
+ return userRegistryService;
23
+ };
24
+ export default UserRegistryServiceFactory;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/index.js CHANGED
File without changes
@@ -0,0 +1 @@
1
+ export {};
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/rbac/Rbac.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,70 @@
1
+ import { join } from "path";
2
+ import { StoreManager, UploadFileError, DraxConfig, CommonConfig, UnauthorizedError } from "@drax/common-back";
3
+ import UserServiceFactory from "../factory/UserServiceFactory.js";
4
+ import IdentityConfig from "../config/IdentityConfig.js";
5
+ const BASE_FILE_DIR = DraxConfig.getOrLoad(CommonConfig.FileDir) || 'files';
6
+ const AVATAR_DIR = DraxConfig.getOrLoad(IdentityConfig.AvatarDir) || 'avatar';
7
+ const BASE_URL = DraxConfig.getOrLoad(CommonConfig.BaseUrl) ? DraxConfig.get(CommonConfig.BaseUrl).replace(/\/$/, '') : '';
8
+ async function UserAvatarRoutes(fastify, options) {
9
+ fastify.post('/api/user/avatar', async (request, reply) => {
10
+ try {
11
+ request.rbac.assertAuthenticated();
12
+ const userId = request.rbac.getAuthUser.id;
13
+ const data = await request.file();
14
+ const file = {
15
+ filename: data.filename,
16
+ fileStream: data.file,
17
+ mimetype: data.mimetype
18
+ };
19
+ const destinationPath = join(BASE_FILE_DIR, AVATAR_DIR);
20
+ const storedFile = await StoreManager.saveFile(file, destinationPath);
21
+ const urlFile = BASE_URL + '/api/user/avatar/' + storedFile.filename;
22
+ //Save into DB
23
+ const userService = UserServiceFactory();
24
+ await userService.changeAvatar(userId, urlFile);
25
+ return {
26
+ filename: storedFile.filename,
27
+ size: storedFile.size,
28
+ mimetype: storedFile.mimetype,
29
+ url: urlFile,
30
+ };
31
+ }
32
+ catch (e) {
33
+ console.error(e);
34
+ if (e instanceof UploadFileError) {
35
+ reply.statusCode = e.statusCode;
36
+ reply.send({ error: e.message });
37
+ }
38
+ else if (e instanceof UnauthorizedError) {
39
+ reply.statusCode = e.statusCode;
40
+ reply.send({ error: e.message });
41
+ }
42
+ else {
43
+ reply.statusCode = 500;
44
+ reply.send({ error: 'INTERNAL_SERVER_ERROR' });
45
+ }
46
+ }
47
+ });
48
+ fastify.get('/api/user/avatar/:filename', async (request, reply) => {
49
+ try {
50
+ const filename = request.params.filename;
51
+ const subPath = 'avatar';
52
+ const fileDir = join(BASE_FILE_DIR, subPath);
53
+ console.log("FILE_DIR: ", fileDir, " FILENAME:", filename);
54
+ return reply.sendFile(filename, fileDir);
55
+ }
56
+ catch (e) {
57
+ console.error(e);
58
+ if (e instanceof UnauthorizedError) {
59
+ reply.statusCode = e.statusCode;
60
+ reply.send({ error: e.message });
61
+ }
62
+ else {
63
+ reply.statusCode = 500;
64
+ reply.send({ error: 'INTERNAL_SERVER_ERROR' });
65
+ }
66
+ }
67
+ });
68
+ }
69
+ export default UserAvatarRoutes;
70
+ export { UserAvatarRoutes };
File without changes
@@ -2,7 +2,7 @@ import { object, string, date, record, any } from "zod";
2
2
  const TenantBaseSchema = object({
3
3
  name: string({ required_error: "validation.required" })
4
4
  .min(1, "validation.required")
5
- .regex(/^[A-Z]/, "validation.startWithUpperCase"),
5
+ //.regex(/^[A-Z]/, "validation.startWithUpperCase"),
6
6
  });
7
7
  const TenantSchema = TenantBaseSchema.extend({
8
8
  _id: string(),
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,9 @@
1
+ import z from "zod";
2
+ const loginBodyRequestSchema = z.object({
3
+ username: z.string(),
4
+ password: z.string(),
5
+ });
6
+ const loginBodyResponseSchema = z.object({
7
+ accessToken: z.string()
8
+ });
9
+ export { loginBodyRequestSchema, loginBodyResponseSchema };
@@ -0,0 +1,8 @@
1
+ import { object, string } from "zod";
2
+ const roleSchema = object({
3
+ name: string({ required_error: "validation.required" })
4
+ .min(1, "validation.required")
5
+ .regex(/^[A-Z]/, "validation.startWithUpperCase"),
6
+ });
7
+ export default roleSchema;
8
+ export { roleSchema };
@@ -0,0 +1,12 @@
1
+ import { object, string, date } from "zod";
2
+ const TenantBaseSchema = object({
3
+ name: string({ required_error: "validation.required" })
4
+ .min(1, "validation.required")
5
+ .regex(/^[A-Z]/, "validation.startWithUpperCase"),
6
+ });
7
+ const TenantSchema = TenantBaseSchema.extend({
8
+ id: string(),
9
+ createdAt: date(),
10
+ updatedAt: date()
11
+ });
12
+ export { TenantSchema, TenantBaseSchema };
@@ -0,0 +1,10 @@
1
+ import { object, string } from "zod";
2
+ const TenantBaseSchema = object({
3
+ name: string({ required_error: "validation.required" })
4
+ .min(1, "validation.required")
5
+ .regex(/^[A-Z]/, "validation.startWithUpperCase"),
6
+ });
7
+ const TenantSchema = TenantBaseSchema.extend({
8
+ id: string(),
9
+ });
10
+ export { TenantSchema, TenantBaseSchema };
@@ -0,0 +1,13 @@
1
+ import { array, object, string } from "zod";
2
+ const userApiKeyBaseSchema = object({
3
+ name: string({ required_error: "validation.required" })
4
+ .min(1, "validation.required"),
5
+ ipv4: array(string().ip({ version: "v4", message: 'validation.invalidIpv4' })),
6
+ ipv6: array(string().ip({ version: "v6", message: 'validation.invalidIpv6' })),
7
+ });
8
+ const userApiKeySchema = userApiKeyBaseSchema.extend({
9
+ id: string(),
10
+ createdBy: string(),
11
+ });
12
+ export default userApiKeyBaseSchema;
13
+ export { userApiKeyBaseSchema, userApiKeySchema };
@@ -0,0 +1,18 @@
1
+ import { object, string } from "zod";
2
+ export const userBaseSchema = object({
3
+ name: string({ required_error: "validation.required" })
4
+ .min(1, "validation.required"),
5
+ username: string({ required_error: "validation.required" })
6
+ .min(1, "validation.required"),
7
+ email: string({ required_error: "validation.required" })
8
+ .email("validation.email.invalid"),
9
+ role: string({ required_error: "validation.required" })
10
+ .min(1, "validation.required")
11
+ });
12
+ export const createUserSchema = userBaseSchema.extend({
13
+ password: string({ required_error: "validation.required" })
14
+ .min(1, "validation.required")
15
+ .min(8, "validation.password.min8")
16
+ .max(64, "validation.password.max64"),
17
+ });
18
+ export const editUserSchema = userBaseSchema.extend({});
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.33.1",
6
+ "version": "0.34.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": "^0.33.0",
32
- "@drax/crud-back": "^0.33.1",
33
- "@drax/crud-share": "^0.33.0",
34
- "@drax/email-back": "^0.33.0",
35
- "@drax/identity-share": "^0.33.0",
31
+ "@drax/common-back": "^0.34.0",
32
+ "@drax/crud-back": "^0.34.0",
33
+ "@drax/crud-share": "^0.34.0",
34
+ "@drax/email-back": "^0.34.0",
35
+ "@drax/identity-share": "^0.34.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": "bb0468049ef3388a464c991fa170226739a6f2d2"
66
+ "gitHead": "3a121099fcdd0814fd232d90aeac0b2086e2e625"
67
67
  }
@@ -346,7 +346,7 @@ class UserController extends AbstractFastifyController<IUser, IUserCreate, IUser
346
346
 
347
347
  async changePassword(request, reply) {
348
348
  try {
349
- request.rbac.assertPermission(UserPermissions.Update)
349
+ request.rbac.assertPermission(UserPermissions.ChangePassword)
350
350
  const userId = request.params.id
351
351
  if (!userId) {
352
352
  throw new UnauthorizedError()
@@ -3,7 +3,7 @@ import { object, string, date, record, any } from "zod"
3
3
  const TenantBaseSchema = object({
4
4
  name: string({ required_error: "validation.required" })
5
5
  .min(1, "validation.required")
6
- .regex(/^[A-Z]/, "validation.startWithUpperCase"),
6
+ //.regex(/^[A-Z]/, "validation.startWithUpperCase"),
7
7
  })
8
8
 
9
9
 
package/test.db ADDED
Binary file