Skip to content

Commit 5402535

Browse files
Merge pull request #248 from andrechristikan/development
Development
2 parents 51e3570 + d57dfcf commit 5402535

File tree

8 files changed

+47
-102
lines changed

8 files changed

+47
-102
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ack-nestjs-mongoose-kafka",
3-
"version": "2.4.2",
3+
"version": "2.4.3",
44
"description": "Ack NestJs Mongoose Kafka",
55
"repository": {
66
"type": "git",
@@ -92,7 +92,7 @@
9292
"moment": "^2.29.4",
9393
"mongoose": "^6.6.5",
9494
"morgan": "^1.10.0",
95-
"nest-winston": "^1.7.0",
95+
"nest-winston": "^1.7.1",
9696
"nestjs-command": "^3.1.2",
9797
"nestjs-i18n": "^9.2.0",
9898
"passport": "^0.6.0",
@@ -137,7 +137,7 @@
137137
"@typescript-eslint/eslint-plugin": "^5.39.0",
138138
"@typescript-eslint/parser": "^5.39.0",
139139
"cspell": "^6.12.0",
140-
"eslint": "^8.24.0",
140+
"eslint": "^8.25.0",
141141
"eslint-config-prettier": "^8.5.0",
142142
"eslint-plugin-import": "^2.26.0",
143143
"husky": "^8.0.1",

src/common/auth/constants/auth.status-code.constant.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
export enum ENUM_AUTH_STATUS_CODE_ERROR {
2-
AUTH_BASIC_TOKEN_NEEDED_ERROR = 5100,
3-
AUTH_BASIC_TOKEN_INVALID_ERROR = 5101,
4-
AUTH_JWT_ACCESS_TOKEN_ERROR = 5102,
5-
AUTH_JWT_REFRESH_TOKEN_ERROR = 5103,
6-
AUTH_INACTIVE_ERROR = 5104,
7-
AUTH_ROLE_INACTIVE_ERROR = 5105,
8-
AUTH_ROLE_ACCESS_FOR_INVALID_ERROR = 5106,
9-
AUTH_PASSWORD_EXPIRED_ERROR = 5107,
10-
AUTH_PERMISSION_INVALID_ERROR = 5108,
11-
AUTH_ACCESS_FOR_INVALID_ERROR = 5109,
2+
AUTH_JWT_ACCESS_TOKEN_ERROR = 5100,
3+
AUTH_JWT_REFRESH_TOKEN_ERROR = 5101,
4+
AUTH_ROLE_ACCESS_FOR_INVALID_ERROR = 5102,
5+
AUTH_PASSWORD_EXPIRED_ERROR = 5103,
6+
AUTH_PERMISSION_INVALID_ERROR = 5104,
7+
AUTH_ACCESS_FOR_INVALID_ERROR = 5105,
128

139
AUTH_API_KEY_NEEDED_ERROR = 5120,
1410
AUTH_API_KEY_PREFIX_INVALID_ERROR = 5121,

src/common/auth/decorators/auth.jwt.decorator.ts

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import { ENUM_AUTH_STATUS_CODE_ERROR } from 'src/common/auth/constants/auth.stat
1515
import { JwtRefreshGuard } from 'src/common/auth/guards/jwt-refresh/auth.jwt-refresh.guard';
1616
import { JwtGuard } from 'src/common/auth/guards/jwt/auth.jwt.guard';
1717
import { AuthPayloadAccessForGuard } from 'src/common/auth/guards/payload/auth.payload.access-for.guard';
18-
import { AuthPayloadDefaultGuard } from 'src/common/auth/guards/payload/auth.payload.default.guard';
1918
import { AuthPayloadPasswordExpiredGuard } from 'src/common/auth/guards/payload/auth.payload.password-expired.guard';
2019
import { AuthPayloadPermissionGuard } from 'src/common/auth/guards/payload/auth.payload.permission.guard';
2120
import {
@@ -47,22 +46,9 @@ export function AuthJwtGuard(...permissions: ENUM_AUTH_PERMISSIONS[]): any {
4746
statusCode:
4847
ENUM_AUTH_STATUS_CODE_ERROR.AUTH_ACCESS_FOR_INVALID_ERROR,
4948
messagePath: 'auth.error.accessForForbidden',
50-
},
51-
{
52-
statusCode: ENUM_AUTH_STATUS_CODE_ERROR.AUTH_INACTIVE_ERROR,
53-
messagePath: 'auth.error.blocked',
54-
},
55-
{
56-
statusCode:
57-
ENUM_AUTH_STATUS_CODE_ERROR.AUTH_ROLE_INACTIVE_ERROR,
58-
messagePath: 'auth.error.roleBlocked',
5949
}
6050
),
61-
UseGuards(
62-
JwtGuard,
63-
AuthPayloadDefaultGuard,
64-
AuthPayloadPermissionGuard
65-
),
51+
UseGuards(JwtGuard, AuthPayloadPermissionGuard),
6652
SetMetadata(AUTH_PERMISSION_META_KEY, permissions)
6753
);
6854
}
@@ -93,20 +79,10 @@ export function AuthPublicJwtGuard(
9379
statusCode:
9480
ENUM_AUTH_STATUS_CODE_ERROR.AUTH_ACCESS_FOR_INVALID_ERROR,
9581
messagePath: 'auth.error.accessForForbidden',
96-
},
97-
{
98-
statusCode: ENUM_AUTH_STATUS_CODE_ERROR.AUTH_INACTIVE_ERROR,
99-
messagePath: 'auth.error.blocked',
100-
},
101-
{
102-
statusCode:
103-
ENUM_AUTH_STATUS_CODE_ERROR.AUTH_ROLE_INACTIVE_ERROR,
104-
messagePath: 'auth.error.roleBlocked',
10582
}
10683
),
10784
UseGuards(
10885
JwtGuard,
109-
AuthPayloadDefaultGuard,
11086
AuthPayloadPasswordExpiredGuard,
11187
AuthPayloadAccessForGuard,
11288
AuthPayloadPermissionGuard
@@ -140,20 +116,10 @@ export function AuthAdminJwtGuard(...permissions: ENUM_AUTH_PERMISSIONS[]) {
140116
statusCode:
141117
ENUM_AUTH_STATUS_CODE_ERROR.AUTH_ACCESS_FOR_INVALID_ERROR,
142118
messagePath: 'auth.error.accessForForbidden',
143-
},
144-
{
145-
statusCode: ENUM_AUTH_STATUS_CODE_ERROR.AUTH_INACTIVE_ERROR,
146-
messagePath: 'auth.error.blocked',
147-
},
148-
{
149-
statusCode:
150-
ENUM_AUTH_STATUS_CODE_ERROR.AUTH_ROLE_INACTIVE_ERROR,
151-
messagePath: 'auth.error.roleBlocked',
152119
}
153120
),
154121
UseGuards(
155122
JwtGuard,
156-
AuthPayloadDefaultGuard,
157123
AuthPayloadPasswordExpiredGuard,
158124
AuthPayloadAccessForGuard,
159125
AuthPayloadPermissionGuard

src/common/auth/guards/payload/auth.payload.default.guard.ts

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/common/auth/guards/payload/auth.payload.permission.guard.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { AUTH_PERMISSION_META_KEY } from 'src/common/auth/constants/auth.constan
99
import { ENUM_AUTH_ACCESS_FOR } from 'src/common/auth/constants/auth.enum.constant';
1010
import { ENUM_AUTH_PERMISSIONS } from 'src/common/auth/constants/auth.enum.permission.constant';
1111
import { ENUM_AUTH_STATUS_CODE_ERROR } from 'src/common/auth/constants/auth.status-code.constant';
12-
import { IAuthPermission } from 'src/common/auth/interfaces/auth.interface';
1312

1413
@Injectable()
1514
export class AuthPayloadPermissionGuard implements CanActivate {
@@ -31,10 +30,7 @@ export class AuthPayloadPermissionGuard implements CanActivate {
3130
return true;
3231
}
3332

34-
const permissions: string[] = role.permissions
35-
.filter((val: IAuthPermission) => val.isActive)
36-
.map((val: IAuthPermission) => val.code);
37-
33+
const permissions: string[] = role.permissions;
3834
const hasPermission: boolean = requiredPermission.every((permission) =>
3935
permissions.includes(permission)
4036
);

src/modules/user/interfaces/user.interface.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ENUM_AUTH_ACCESS_FOR } from 'src/common/auth/constants/auth.enum.constant';
12
import { IRoleDocument } from 'src/modules/role/interfaces/role.interface';
23
import { UserCreateDto } from 'src/modules/user/dtos/user.create.dto';
34
import { UserDocument } from 'src/modules/user/schemas/user.schema';
@@ -15,3 +16,9 @@ export interface IUserCheckExist {
1516
email: boolean;
1617
mobileNumber: boolean;
1718
}
19+
20+
export interface IUserRolePayload {
21+
name: string;
22+
permissions: string[];
23+
accessFor: ENUM_AUTH_ACCESS_FOR;
24+
}
Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,26 @@
11
import { OmitType } from '@nestjs/swagger';
2-
import { Exclude } from 'class-transformer';
2+
import { Exclude, Transform } from 'class-transformer';
33
import { AwsS3Serialization } from 'src/common/aws/serializations/aws.s3.serialization';
4+
import { IUserRolePayload } from 'src/modules/user/interfaces/user.interface';
45
import { UserGetSerialization } from './user.get.serialization';
56

67
export class UserPayloadSerialization extends OmitType(UserGetSerialization, [
78
'photo',
9+
'role',
10+
'isActive',
811
] as const) {
912
@Exclude()
1013
readonly photo?: AwsS3Serialization;
14+
15+
@Transform(({ value }) => ({
16+
name: value.name,
17+
permissions: value.permissions.map(
18+
(val: Record<string, any>) => val.code
19+
),
20+
accessFor: value.accessFor,
21+
}))
22+
readonly role: IUserRolePayload;
23+
24+
@Exclude()
25+
readonly isActive: boolean;
1126
}

yarn.lock

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2329,10 +2329,10 @@
23292329
enabled "2.0.x"
23302330
kuler "^2.0.0"
23312331

2332-
"@eslint/eslintrc@^1.3.2":
2333-
version "1.3.2"
2334-
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356"
2335-
integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==
2332+
"@eslint/eslintrc@^1.3.3":
2333+
version "1.3.3"
2334+
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95"
2335+
integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==
23362336
dependencies:
23372337
ajv "^6.12.4"
23382338
debug "^4.3.2"
@@ -2659,11 +2659,6 @@
26592659
debug "^4.1.1"
26602660
minimatch "^3.0.4"
26612661

2662-
"@humanwhocodes/gitignore-to-minimatch@^1.0.2":
2663-
version "1.0.2"
2664-
resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d"
2665-
integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==
2666-
26672662
"@humanwhocodes/module-importer@^1.0.1":
26682663
version "1.0.1"
26692664
resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
@@ -6301,14 +6296,13 @@ eslint-visitor-keys@^3.3.0:
63016296
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
63026297
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
63036298

6304-
eslint@^8.24.0:
6305-
version "8.24.0"
6306-
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.24.0.tgz#489516c927a5da11b3979dbfb2679394523383c8"
6307-
integrity sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==
6299+
eslint@^8.25.0:
6300+
version "8.25.0"
6301+
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.25.0.tgz#00eb962f50962165d0c4ee3327708315eaa8058b"
6302+
integrity sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==
63086303
dependencies:
6309-
"@eslint/eslintrc" "^1.3.2"
6304+
"@eslint/eslintrc" "^1.3.3"
63106305
"@humanwhocodes/config-array" "^0.10.5"
6311-
"@humanwhocodes/gitignore-to-minimatch" "^1.0.2"
63126306
"@humanwhocodes/module-importer" "^1.0.1"
63136307
ajv "^6.10.0"
63146308
chalk "^4.0.0"
@@ -8940,10 +8934,10 @@ neo-async@^2.6.2:
89408934
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
89418935
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
89428936

8943-
nest-winston@^1.7.0:
8944-
version "1.7.0"
8945-
resolved "https://registry.yarnpkg.com/nest-winston/-/nest-winston-1.7.0.tgz#92fd415d42c882e1d07201fb962140e5ba291c4c"
8946-
integrity sha512-FJ94dJ++8BEjQfK5TuqiY5g7pP48RLRss41Bm6bCCfzYgywymEI6m+HPHW9K/q2i7wO5TU6Sva51/Rvmmhxddw==
8937+
nest-winston@^1.7.1:
8938+
version "1.7.1"
8939+
resolved "https://registry.yarnpkg.com/nest-winston/-/nest-winston-1.7.1.tgz#e6f8866cf7ab17f7c866f59e74de948463274cdd"
8940+
integrity sha512-wtBxG9/jCDgBV4AV+0l31W/Uc2tx8CiBEhPqK5cNN7u181AaurMdwe2pTNVxwSOtwp2g2mRvhMTLDswma+FQhA==
89478941
dependencies:
89488942
fast-safe-stringify "^2.1.1"
89498943

0 commit comments

Comments
 (0)