Skip to content

Commit

Permalink
fix: improve middleware permission
Browse files Browse the repository at this point in the history
  • Loading branch information
masb0ymas committed Sep 12, 2023
1 parent 49f832e commit 74934d3
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 50 deletions.
2 changes: 1 addition & 1 deletion src/app/controller/account/role.controller.ts
Original file line number Diff line number Diff line change
@@ -1,7 1,7 @@
import { type Request, type Response } from 'express'
import { arrayFormatter } from 'expresso-core'
import authorization from '~/app/middleware/authorization'
import permissionAccess from '~/app/middleware/permissionAccess'
import { permissionAccess } from '~/app/middleware/permission'
import RoleService from '~/app/service/role.service'
import { env } from '~/config/env'
import ConstRole from '~/core/constants/ConstRole'
Expand Down
2 changes: 1 addition & 1 deletion src/app/controller/account/user.controller.ts
Original file line number Diff line number Diff line change
@@ -1,7 1,7 @@
import { type Request, type Response } from 'express'
import { arrayFormatter } from 'expresso-core'
import authorization from '~/app/middleware/authorization'
import permissionAccess from '~/app/middleware/permissionAccess'
import { permissionAccess } from '~/app/middleware/permission'
import UserService from '~/app/service/user.service'
import { env } from '~/config/env'
import ConstRole from '~/core/constants/ConstRole'
Expand Down
2 changes: 1 addition & 1 deletion src/app/controller/upload.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 10,7 @@ import HttpResponse from '~/core/modules/response/HttpResponse'
import { asyncHandler } from '~/core/utils/asyncHandler'
import route from '~/routes/v1'
import authorization from '../middleware/authorization'
import permissionAccess from '../middleware/permissionAccess'
import { permissionAccess } from '../middleware/permission'
import UploadService from '../service/upload.service'

route.get(
Expand Down
45 changes: 0 additions & 45 deletions src/app/middleware/notPermittedAccess.ts

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,7 11,7 @@ import User, { type UserLoginAttributes } from '~/database/entities/User'
* @param roles
* @returns
*/
function permissionAccess(roles: string[]) {
export function permissionAccess(roles: string[]) {
return async (req: Request, res: Response, next: NextFunction) => {
const { lang } = req.getQuery()
const defaultLang = lang ?? env.APP_LANG
Expand Down Expand Up @@ -42,4 42,38 @@ function permissionAccess(roles: string[]) {
}
}

export default permissionAccess
/**
*
* @param roles
* @returns
*/
export function notPermittedAccess(roles: string[]) {
return async (req: Request, res: Response, next: NextFunction) => {
const { lang } = req.getQuery()
const defaultLang = lang ?? env.APP_LANG
const i18nOpt: string | TOptions = { lng: defaultLang }

const userLogin = req.getState('userLogin') as UserLoginAttributes
const getUser = await User.findOne({
where: { id: userLogin.uid },
})

const errType = `not permitted access error:`
const errMessage = 'you are not allowed'

if (getUser && roles.includes(getUser.role_id)) {
// log error
const msgType = green('permission')
logger.error(`${msgType} - ${errType} ${errMessage}`)

const message = i18n.t('errors.permission_access', i18nOpt)

return res.status(403).json({
code: 403,
message: `${errType} ${message}`,
})
}

next()
}
}

0 comments on commit 74934d3

Please sign in to comment.