@drax/identity-back 0.30.0 → 0.33.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/config/IdentityConfig.js +0 -0
- package/dist/controllers/RoleController.js +1 -1
- package/dist/controllers/TenantController.js +0 -0
- package/dist/controllers/UserApiKeyController.js +0 -0
- package/dist/controllers/UserController.js +0 -0
- package/dist/errors/BadCredentialsError.js +0 -0
- package/dist/factory/RoleServiceFactory.js +0 -0
- package/dist/factory/TenantServiceFactory.js +0 -0
- package/dist/factory/UserApiKeyServiceFactory.js +0 -0
- package/dist/factory/UserServiceFactory.js +0 -0
- package/dist/graphql/index.js +0 -0
- package/dist/graphql/resolvers/role.resolvers.js +0 -0
- package/dist/graphql/resolvers/tenant.resolvers.js +0 -0
- package/dist/graphql/resolvers/user-api-key.resolvers.js +0 -0
- package/dist/graphql/resolvers/user.resolvers.js +0 -0
- package/dist/index.js +0 -0
- package/dist/interfaces/IRoleRepository.js +0 -0
- package/dist/interfaces/ITenantRepository.js +0 -0
- package/dist/interfaces/IUserApiKeyRepository.js +0 -0
- package/dist/interfaces/IUserRepository.js +0 -0
- package/dist/middleware/apiKeyMiddleware.js +0 -0
- package/dist/middleware/jwtMiddleware.js +5 -1
- package/dist/middleware/rbacMiddleware.js +0 -0
- package/dist/models/RoleModel.js +0 -0
- package/dist/models/TenantModel.js +0 -0
- package/dist/models/UserApiKeyModel.js +0 -0
- package/dist/models/UserGroupModel.js +0 -0
- package/dist/models/UserModel.js +0 -0
- package/dist/permissions/IdentityPermissions.js +0 -0
- package/dist/permissions/RolePermissions.js +0 -0
- package/dist/permissions/TenantPermissions.js +0 -0
- package/dist/permissions/UserApiKeyPermissions.js +0 -0
- package/dist/permissions/UserPermissions.js +1 -0
- package/dist/permissions/index.js +0 -0
- package/dist/rbac/Rbac.js +0 -0
- package/dist/repository/mongo/RoleMongoRepository.js +0 -0
- package/dist/repository/mongo/TenantMongoRepository.js +0 -0
- package/dist/repository/mongo/UserApiKeyMongoRepository.js +0 -0
- package/dist/repository/mongo/UserMongoRepository.js +4 -1
- package/dist/repository/sqlite/RoleSqliteRepository.js +0 -0
- package/dist/repository/sqlite/TenantSqliteRepository.js +0 -0
- package/dist/repository/sqlite/UserApiKeySqliteRepository.js +0 -0
- package/dist/repository/sqlite/UserSqliteRepository.js +0 -0
- package/dist/routes/RoleRoutes.js +0 -0
- package/dist/routes/TenantRoutes.js +0 -0
- package/dist/routes/UserApiKeyRoutes.js +0 -0
- package/dist/routes/UserRoutes.js +0 -0
- package/dist/schemas/UserSchema.js +2 -1
- package/dist/services/PermissionService.js +0 -0
- package/dist/services/RoleService.js +0 -0
- package/dist/services/TenantService.js +0 -0
- package/dist/services/UserApiKeyService.js +0 -0
- package/dist/services/UserService.js +0 -0
- package/dist/setup/CreateOrUpdateRole.js +0 -0
- package/dist/setup/CreateUserIfNotExist.js +0 -0
- package/dist/setup/LoadIdentityConfigFromEnv.js +0 -0
- package/dist/setup/LoadPermissions.js +0 -0
- package/dist/setup/RecoveryUserPassword.js +0 -0
- package/dist/utils/AuthUtils.js +0 -0
- package/package.json +7 -7
- package/src/controllers/RoleController.ts +1 -1
- package/src/middleware/jwtMiddleware.ts +6 -1
- package/src/permissions/UserPermissions.ts +1 -0
- package/src/repository/mongo/UserMongoRepository.ts +4 -1
- package/src/schemas/UserSchema.ts +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/types/config/IdentityConfig.d.ts +0 -0
- package/types/config/IdentityConfig.d.ts.map +0 -0
- package/types/controllers/RoleController.d.ts +0 -0
- package/types/controllers/RoleController.d.ts.map +0 -0
- package/types/controllers/TenantController.d.ts +0 -0
- package/types/controllers/TenantController.d.ts.map +0 -0
- package/types/controllers/UserApiKeyController.d.ts +0 -0
- package/types/controllers/UserApiKeyController.d.ts.map +0 -0
- package/types/controllers/UserController.d.ts +0 -0
- package/types/controllers/UserController.d.ts.map +0 -0
- package/types/errors/BadCredentialsError.d.ts +0 -0
- package/types/errors/BadCredentialsError.d.ts.map +0 -0
- package/types/factory/RoleServiceFactory.d.ts +0 -0
- package/types/factory/RoleServiceFactory.d.ts.map +0 -0
- package/types/factory/TenantServiceFactory.d.ts +0 -0
- package/types/factory/TenantServiceFactory.d.ts.map +0 -0
- package/types/factory/UserApiKeyServiceFactory.d.ts +1 -1
- package/types/factory/UserApiKeyServiceFactory.d.ts.map +0 -0
- package/types/factory/UserServiceFactory.d.ts +0 -0
- package/types/factory/UserServiceFactory.d.ts.map +0 -0
- package/types/graphql/index.d.ts +0 -0
- package/types/graphql/index.d.ts.map +0 -0
- package/types/graphql/resolvers/role.resolvers.d.ts +0 -0
- package/types/graphql/resolvers/role.resolvers.d.ts.map +0 -0
- package/types/graphql/resolvers/tenant.resolvers.d.ts +0 -0
- package/types/graphql/resolvers/tenant.resolvers.d.ts.map +0 -0
- package/types/graphql/resolvers/user-api-key.resolvers.d.ts +0 -0
- package/types/graphql/resolvers/user-api-key.resolvers.d.ts.map +0 -0
- package/types/graphql/resolvers/user.resolvers.d.ts +0 -0
- package/types/graphql/resolvers/user.resolvers.d.ts.map +0 -0
- package/types/index.d.ts +0 -0
- package/types/index.d.ts.map +0 -0
- package/types/interfaces/IRoleRepository.d.ts +0 -0
- package/types/interfaces/IRoleRepository.d.ts.map +0 -0
- package/types/interfaces/ITenantRepository.d.ts +0 -0
- package/types/interfaces/ITenantRepository.d.ts.map +0 -0
- package/types/interfaces/IUserApiKeyRepository.d.ts +0 -0
- package/types/interfaces/IUserApiKeyRepository.d.ts.map +0 -0
- package/types/interfaces/IUserRepository.d.ts +0 -0
- package/types/interfaces/IUserRepository.d.ts.map +0 -0
- package/types/middleware/apiKeyMiddleware.d.ts +0 -0
- package/types/middleware/apiKeyMiddleware.d.ts.map +0 -0
- package/types/middleware/jwtMiddleware.d.ts +0 -0
- package/types/middleware/jwtMiddleware.d.ts.map +1 -1
- package/types/middleware/rbacMiddleware.d.ts +0 -0
- package/types/middleware/rbacMiddleware.d.ts.map +0 -0
- package/types/models/RoleModel.d.ts +0 -0
- package/types/models/RoleModel.d.ts.map +0 -0
- package/types/models/TenantModel.d.ts +0 -0
- package/types/models/TenantModel.d.ts.map +0 -0
- package/types/models/UserApiKeyModel.d.ts +0 -0
- package/types/models/UserApiKeyModel.d.ts.map +0 -0
- package/types/models/UserGroupModel.d.ts +0 -0
- package/types/models/UserGroupModel.d.ts.map +0 -0
- package/types/models/UserModel.d.ts +0 -0
- package/types/models/UserModel.d.ts.map +0 -0
- package/types/permissions/IdentityPermissions.d.ts +0 -0
- package/types/permissions/IdentityPermissions.d.ts.map +0 -0
- package/types/permissions/RolePermissions.d.ts +0 -0
- package/types/permissions/RolePermissions.d.ts.map +0 -0
- package/types/permissions/TenantPermissions.d.ts +0 -0
- package/types/permissions/TenantPermissions.d.ts.map +0 -0
- package/types/permissions/UserApiKeyPermissions.d.ts +0 -0
- package/types/permissions/UserApiKeyPermissions.d.ts.map +0 -0
- package/types/permissions/UserPermissions.d.ts +1 -0
- package/types/permissions/UserPermissions.d.ts.map +1 -1
- package/types/permissions/index.d.ts +1 -0
- package/types/permissions/index.d.ts.map +1 -1
- package/types/rbac/Rbac.d.ts +0 -0
- package/types/rbac/Rbac.d.ts.map +0 -0
- package/types/repository/mongo/RoleMongoRepository.d.ts +0 -0
- package/types/repository/mongo/RoleMongoRepository.d.ts.map +0 -0
- package/types/repository/mongo/TenantMongoRepository.d.ts +0 -0
- package/types/repository/mongo/TenantMongoRepository.d.ts.map +0 -0
- package/types/repository/mongo/UserApiKeyMongoRepository.d.ts +0 -0
- package/types/repository/mongo/UserApiKeyMongoRepository.d.ts.map +0 -0
- package/types/repository/mongo/UserMongoRepository.d.ts +9 -1
- package/types/repository/mongo/UserMongoRepository.d.ts.map +1 -1
- package/types/repository/sqlite/RoleSqliteRepository.d.ts +0 -0
- package/types/repository/sqlite/RoleSqliteRepository.d.ts.map +0 -0
- package/types/repository/sqlite/TenantSqliteRepository.d.ts +0 -0
- package/types/repository/sqlite/TenantSqliteRepository.d.ts.map +0 -0
- package/types/repository/sqlite/UserApiKeySqliteRepository.d.ts +0 -0
- package/types/repository/sqlite/UserApiKeySqliteRepository.d.ts.map +0 -0
- package/types/repository/sqlite/UserSqliteRepository.d.ts +0 -0
- package/types/repository/sqlite/UserSqliteRepository.d.ts.map +0 -0
- package/types/routes/RoleRoutes.d.ts +0 -0
- package/types/routes/RoleRoutes.d.ts.map +0 -0
- package/types/routes/TenantRoutes.d.ts +0 -0
- package/types/routes/TenantRoutes.d.ts.map +0 -0
- package/types/routes/UserApiKeyRoutes.d.ts +0 -0
- package/types/routes/UserApiKeyRoutes.d.ts.map +0 -0
- package/types/routes/UserRoutes.d.ts +0 -0
- package/types/routes/UserRoutes.d.ts.map +0 -0
- package/types/schemas/RegisterSchema.d.ts +4 -4
- package/types/schemas/RoleSchema.d.ts +6 -6
- package/types/schemas/TenantSchema.d.ts +4 -4
- package/types/schemas/UserApiKeySchema.d.ts +4 -4
- package/types/schemas/UserSchema.d.ts +32 -6
- package/types/schemas/UserSchema.d.ts.map +1 -1
- package/types/services/PermissionService.d.ts +0 -0
- package/types/services/PermissionService.d.ts.map +0 -0
- package/types/services/RoleService.d.ts +0 -0
- package/types/services/RoleService.d.ts.map +0 -0
- package/types/services/TenantService.d.ts +0 -0
- package/types/services/TenantService.d.ts.map +0 -0
- package/types/services/UserApiKeyService.d.ts +0 -0
- package/types/services/UserApiKeyService.d.ts.map +0 -0
- package/types/services/UserService.d.ts +0 -0
- package/types/services/UserService.d.ts.map +0 -0
- package/types/setup/CreateOrUpdateRole.d.ts +0 -0
- package/types/setup/CreateOrUpdateRole.d.ts.map +0 -0
- package/types/setup/CreateUserIfNotExist.d.ts +0 -0
- package/types/setup/CreateUserIfNotExist.d.ts.map +0 -0
- package/types/setup/LoadIdentityConfigFromEnv.d.ts +0 -0
- package/types/setup/LoadIdentityConfigFromEnv.d.ts.map +0 -0
- package/types/setup/LoadPermissions.d.ts +0 -0
- package/types/setup/LoadPermissions.d.ts.map +0 -0
- package/types/setup/RecoveryUserPassword.d.ts +0 -0
- package/types/setup/RecoveryUserPassword.d.ts.map +0 -0
- package/types/utils/AuthUtils.d.ts +0 -0
- package/types/utils/AuthUtils.d.ts.map +0 -0
- package/dist/factory/UserRegistryServiceFactory.js +0 -24
- package/dist/interfaces/IRbac.js +0 -1
- package/dist/routes/UserAvatarRoutes.js +0 -70
- package/dist/zod/EndpointZod.js +0 -9
- package/dist/zod/RoleZod.js +0 -8
- package/dist/zod/TenantSchema.js +0 -12
- package/dist/zod/TenantZod.js +0 -10
- package/dist/zod/UserApiKeyZod.js +0 -13
- package/dist/zod/UserZod.js +0 -18
- package/test.db +0 -0
- package/types/factory/UserRegistryServiceFactory.d.ts +0 -4
- package/types/factory/UserRegistryServiceFactory.d.ts.map +0 -1
- package/types/interfaces/IRbac.d.ts +0 -16
- package/types/interfaces/IRbac.d.ts.map +0 -1
- package/types/routes/UserAvatarRoutes.d.ts +0 -4
- package/types/routes/UserAvatarRoutes.d.ts.map +0 -1
- package/types/zod/EndpointZod.d.ts +0 -20
- package/types/zod/EndpointZod.d.ts.map +0 -1
- package/types/zod/RoleZod.d.ts +0 -10
- package/types/zod/RoleZod.d.ts.map +0 -1
- package/types/zod/TenantSchema.d.ts +0 -26
- package/types/zod/TenantSchema.d.ts.map +0 -1
- package/types/zod/TenantZod.d.ts +0 -20
- package/types/zod/TenantZod.d.ts.map +0 -1
- package/types/zod/UserApiKeyZod.d.ts +0 -36
- package/types/zod/UserApiKeyZod.d.ts.map +0 -1
- package/types/zod/UserZod.d.ts +0 -53
- package/types/zod/UserZod.d.ts.map +0 -1
|
File without changes
|
|
@@ -28,7 +28,7 @@ class RoleController extends AbstractFastifyController {
|
|
|
28
28
|
const roleService = RoleServiceFactory();
|
|
29
29
|
let roles = await roleService.fetchAll();
|
|
30
30
|
if (request.rbac.getRole?.childRoles?.length > 0) {
|
|
31
|
-
return roles.filter(role => request.rbac.getRole.childRoles.some(childRole => childRole._id === role._id));
|
|
31
|
+
return roles.filter(role => request.rbac.getRole.childRoles.some(childRole => childRole._id?.toString() === role._id?.toString()));
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
34
|
return roles;
|
|
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/graphql/index.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/index.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -6,7 +6,8 @@ function jwtMiddleware(request, reply, done) {
|
|
|
6
6
|
if (request.headers['authorization'] && bearerRegExp.test(request.headers['authorization'])) {
|
|
7
7
|
token = request.headers?.authorization?.replace(/Bearer /i, "");
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
const routerPath = request.url;
|
|
10
|
+
if (routerPath != '/api/auth/login' && token) {
|
|
10
11
|
const authUser = AuthUtils.verifyToken(token);
|
|
11
12
|
if (authUser) {
|
|
12
13
|
request.authUser = authUser;
|
|
@@ -17,6 +18,9 @@ function jwtMiddleware(request, reply, done) {
|
|
|
17
18
|
}
|
|
18
19
|
catch (e) {
|
|
19
20
|
console.error(e);
|
|
21
|
+
if (e.name === 'TokenExpiredError') {
|
|
22
|
+
reply.code(498).send({ error: 'JWT expirado' });
|
|
23
|
+
}
|
|
20
24
|
reply.code(401).send({ error: 'Token JWT inválido' });
|
|
21
25
|
}
|
|
22
26
|
}
|
|
File without changes
|
package/dist/models/RoleModel.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/models/UserModel.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -5,6 +5,7 @@ var UserPermissions;
|
|
|
5
5
|
UserPermissions["Delete"] = "user:delete";
|
|
6
6
|
UserPermissions["View"] = "user:view";
|
|
7
7
|
UserPermissions["Manage"] = "user:manage";
|
|
8
|
+
UserPermissions["ChangePassword"] = "user:changePassword";
|
|
8
9
|
UserPermissions["SwitchTenant"] = "user:switchTenant";
|
|
9
10
|
})(UserPermissions || (UserPermissions = {}));
|
|
10
11
|
export default UserPermissions;
|
|
File without changes
|
package/dist/rbac/Rbac.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -6,7 +6,10 @@ class UserMongoRepository extends AbstractMongoRepository {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
super();
|
|
8
8
|
this._searchFields = ['name', 'username', 'email', 'phone'];
|
|
9
|
-
this._populateFields = [
|
|
9
|
+
this._populateFields = [
|
|
10
|
+
{ path: 'role', populate: { path: 'childRoles' } },
|
|
11
|
+
{ path: 'tenant' },
|
|
12
|
+
];
|
|
10
13
|
this._model = UserModel;
|
|
11
14
|
this._lean = true;
|
|
12
15
|
this.roleRepository = new RoleMongoRepository();
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -26,7 +26,8 @@ const UserSchema = UserBaseSchema
|
|
|
26
26
|
_id: string(),
|
|
27
27
|
id: string().optional(),
|
|
28
28
|
name: string(),
|
|
29
|
-
permissions: array(string())
|
|
29
|
+
permissions: array(string()),
|
|
30
|
+
childRoles: array(object({ _id: string(), name: string() })).optional()
|
|
30
31
|
}).optional(),
|
|
31
32
|
active: boolean(),
|
|
32
33
|
tenant: object({
|
|
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/utils/AuthUtils.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.33.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.
|
|
32
|
-
"@drax/crud-back": "^0.
|
|
33
|
-
"@drax/crud-share": "^0.
|
|
34
|
-
"@drax/email-back": "^0.
|
|
35
|
-
"@drax/identity-share": "^0.
|
|
31
|
+
"@drax/common-back": "^0.33.0",
|
|
32
|
+
"@drax/crud-back": "^0.33.0",
|
|
33
|
+
"@drax/crud-share": "^0.33.0",
|
|
34
|
+
"@drax/email-back": "^0.33.0",
|
|
35
|
+
"@drax/identity-share": "^0.33.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": "
|
|
66
|
+
"gitHead": "2a006597a635f61776d252f92bb3899371244379"
|
|
67
67
|
}
|
|
@@ -36,7 +36,7 @@ class RoleController extends AbstractFastifyController<IRole, IRoleBase, IRoleBa
|
|
|
36
36
|
const roleService = RoleServiceFactory()
|
|
37
37
|
let roles = await roleService.fetchAll()
|
|
38
38
|
if(request.rbac.getRole?.childRoles?.length > 0) {
|
|
39
|
-
return roles.filter(role => request.rbac.getRole.childRoles.some(childRole => childRole._id === role._id));
|
|
39
|
+
return roles.filter(role => request.rbac.getRole.childRoles.some(childRole => childRole._id?.toString() === role._id?.toString()));
|
|
40
40
|
}else{
|
|
41
41
|
return roles
|
|
42
42
|
}
|
|
@@ -11,7 +11,9 @@ function jwtMiddleware (request, reply, done) {
|
|
|
11
11
|
token = request.headers?.authorization?.replace(/Bearer /i, "")
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
const routerPath = request.url
|
|
15
|
+
|
|
16
|
+
if(routerPath != '/api/auth/login' && token){
|
|
15
17
|
const authUser = AuthUtils.verifyToken(token) as IJwtUser
|
|
16
18
|
if(authUser){
|
|
17
19
|
request.authUser = authUser
|
|
@@ -21,6 +23,9 @@ function jwtMiddleware (request, reply, done) {
|
|
|
21
23
|
done()
|
|
22
24
|
}catch (e) {
|
|
23
25
|
console.error(e)
|
|
26
|
+
if (e.name === 'TokenExpiredError') {
|
|
27
|
+
reply.code(498).send({ error: 'JWT expirado' });
|
|
28
|
+
}
|
|
24
29
|
reply.code(401).send({ error: 'Token JWT inválido' });
|
|
25
30
|
}
|
|
26
31
|
}
|
|
@@ -17,7 +17,10 @@ class UserMongoRepository extends AbstractMongoRepository<IUser,IUserCreate,IUse
|
|
|
17
17
|
protected roleRepository: RoleMongoRepository;
|
|
18
18
|
|
|
19
19
|
protected _searchFields = ['name','username','email','phone']
|
|
20
|
-
protected _populateFields = [
|
|
20
|
+
protected _populateFields = [
|
|
21
|
+
{path: 'role', populate: {path: 'childRoles'} },
|
|
22
|
+
{path: 'tenant'},
|
|
23
|
+
]
|
|
21
24
|
protected _model = UserModel
|
|
22
25
|
protected _lean = true
|
|
23
26
|
|
|
@@ -33,7 +33,8 @@ const UserSchema = UserBaseSchema
|
|
|
33
33
|
_id: string(),
|
|
34
34
|
id: string().optional(),
|
|
35
35
|
name: string(),
|
|
36
|
-
permissions: array(string())
|
|
36
|
+
permissions: array(string()),
|
|
37
|
+
childRoles: array(object({_id: string(), name:string()})).optional()
|
|
37
38
|
}).optional(),
|
|
38
39
|
active: boolean(),
|
|
39
40
|
tenant: object({
|