Skip to content

Commit fc94c3a

Browse files
committed
You shall not self demote
1 parent 321305c commit fc94c3a

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

src/controller/org.controller/org.controller.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,10 @@ async function updateUser (req, res, next) {
885885
const targetOrgLegUUID = await orgLegRepo.getOrgUUID(shortNameParams, { session })
886886
const targetOrgRegUUID = await orgRegRepo.getOrgUUID(shortNameParams, { session })
887887

888+
// Get requester UUID for later
889+
const requesterUUID = await userRegRepo.getUserUUID(requesterUsername, targetOrgRegUUID, { session })
890+
const targetUserUUID = await userRegRepo.getUserUUID(usernameParams, targetOrgRegUUID, { session })
891+
888892
if (!targetOrgLegUUID || !targetOrgRegUUID) {
889893
logger.error({ uuid: req.ctx.uuid, message: `Target organization ${shortNameParams} not found in one or both collections.` })
890894
await session.abortTransaction(); await session.endSession()
@@ -1014,6 +1018,14 @@ async function updateUser (req, res, next) {
10141018
}
10151019
}
10161020

1021+
// Check to make sure we are NOT self demoting
1022+
if (removeRolesCollector.includes('ADMIN')) {
1023+
if (requesterUUID === targetUserUUID) {
1024+
await session.abortTransaction; await session.endSession()
1025+
return res.status(403).json(error.notAllowedToSelfDemote())
1026+
}
1027+
}
1028+
10171029
let newTargetLegacyOrgUUID = targetOrgLegUUID
10181030
let newTargetRegistryOrgUUID = targetOrgRegUUID
10191031

0 commit comments

Comments
 (0)