Skip to content

Commit bcf2fe8

Browse files
committed
bugfixes about current user in express.request
1 parent d5a6bc2 commit bcf2fe8

File tree

4 files changed

+49
-4
lines changed

4 files changed

+49
-4
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { CurrentUser } from 'domain.types/miscellaneous/current.user';
2+
3+
declare global {
4+
namespace Express {
5+
interface Request {
6+
currentUser: CurrentUser;
7+
context: string;
8+
resourceType: string;
9+
resourceId: string | number | null | undefined;
10+
resourceOwnerUserId: string;
11+
}
12+
}
13+
}

Projects/BooksLibrary/src/auth/custom/custom.authenticator.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
import { IAuthenticator } from 'auth/authenticator.interface';
2+
import { Logger } from 'common/logger';
3+
import { AuthenticationResult } from 'domain.types/auth/auth.domain.types';
4+
import { CurrentUser } from 'domain.types/miscellaneous/current.user';
15
import express from 'express';
26
import jwt from 'jsonwebtoken';
3-
import { Logger } from '../../common/logger';
4-
import { AuthenticationResult } from '../../domain.types/auth/auth.domain.types';
5-
import { IAuthenticator } from '../authenticator.interface';
67

78
//////////////////////////////////////////////////////////////
89

@@ -36,7 +37,7 @@ export class CustomAuthenticator implements IAuthenticator {
3637
};
3738
return res;
3839
}
39-
request.currentUser = user;
40+
request.currentUser = user as CurrentUser;
4041
});
4142
} catch (err) {
4243
Logger.instance().log(JSON.stringify(err, null, 2));

Projects/BooksLibrary/src/auth/custom/custom.authorizer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { Logger } from '../../common/logger';
55
import { IAuthorizer } from '../authorizer.interface';
66
import { CurrentUser } from '../../domain.types/miscellaneous/current.user';
77
import { Loader } from '../../startup/loader';
8+
import { RolePrivilegeService } from 'services/role.privilege.service';
89

910
//const execSync = require('child_process').execSync;
1011

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { inject, injectable } from 'tsyringe';
2+
import { IRolePrivilegeRepo } from '../database/repository.interfaces/role.privilege.repo.interface';
3+
import { RolePrivilegeDto } from '../domain.types/role/role.privilege.dto';
4+
5+
////////////////////////////////////////////////////////////////////////////////////////////////////////
6+
7+
@injectable()
8+
export class RolePrivilegeService {
9+
constructor(@inject('IRolePrivilegeRepo') private _rolePrivilegeRepo: IRolePrivilegeRepo) {}
10+
11+
create = async (entity: any): Promise<RolePrivilegeDto> => {
12+
return await this._rolePrivilegeRepo.create(entity);
13+
};
14+
15+
getById = async (id: string): Promise<RolePrivilegeDto> => {
16+
return await this._rolePrivilegeRepo.getById(id);
17+
};
18+
19+
getPrivilegesForRole = async (roleId: number): Promise<RolePrivilegeDto[]> => {
20+
return await this._rolePrivilegeRepo.getPrivilegesForRole(roleId);
21+
};
22+
23+
hasPrivilegeForRole = async (roleId: number, privilege: string): Promise<boolean> => {
24+
return await this._rolePrivilegeRepo.hasPrivilegeForRole(roleId, privilege);
25+
};
26+
27+
delete = async (id: string): Promise<boolean> => {
28+
return await this._rolePrivilegeRepo.delete(id);
29+
};
30+
}

0 commit comments

Comments
 (0)