mirror of
https://github.com/UniversityOfHelsinkiCS/oodikone.git
synced 2026-10-12 19:03:39 +03:00
Transform roles and admin thingys already in backend
This commit is contained in:
@@ -41,6 +41,7 @@ const currentUserMiddleware = async (req, _, next) => {
|
||||
req.decodedToken = mockedUser
|
||||
}
|
||||
}
|
||||
req.user = req.decodedToken // temp push user to req object
|
||||
req.logoutUrl = logoutUrl
|
||||
|
||||
Sentry.setUser({ username: req.decodedToken.mockedBy || req.decodedToken.userId })
|
||||
|
||||
@@ -2,14 +2,20 @@ const router = require('express').Router()
|
||||
const { ApplicationError } = require('../util/customErrors')
|
||||
|
||||
router.get('/login', async (req, res) => {
|
||||
const { decodedToken, logoutUrl } = req
|
||||
const { user: userFromReq, logoutUrl } = req
|
||||
|
||||
if (!decodedToken) {
|
||||
if (!userFromReq) {
|
||||
throw new ApplicationError('User not found', 404)
|
||||
}
|
||||
const roles = userFromReq.roles.map(role => role.group_code)
|
||||
const user = {
|
||||
...userFromReq,
|
||||
roles,
|
||||
isAdmin: roles.includes('admin'),
|
||||
}
|
||||
|
||||
res.send({
|
||||
token: decodedToken,
|
||||
user,
|
||||
logoutUrl,
|
||||
})
|
||||
})
|
||||
|
||||
@@ -36,16 +36,12 @@ export const useGetAuthorizedUserQuery = () => {
|
||||
|
||||
if (isLoading || error) return { data, isLoading, error, ...rest }
|
||||
|
||||
const { token } = data
|
||||
|
||||
// rewrite the roles array coming from backend
|
||||
const roles = token?.roles?.map(r => r.group_code) ?? []
|
||||
const { user } = data
|
||||
|
||||
return {
|
||||
...token,
|
||||
roles,
|
||||
isAdmin: roles.includes('admin'),
|
||||
...user,
|
||||
isLoading,
|
||||
error,
|
||||
...rest,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user