Skip to content

Commit

Permalink
Add endpoint to deactivate user from app on delete
Browse files Browse the repository at this point in the history
  • Loading branch information
adrinr committed Jan 12, 2023
1 parent e1870f7 commit f8a0c0d
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
32 changes: 32 additions & 0 deletions packages/server/src/api/controllers/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -173,3 +173,35 @@ export async function getFlags(ctx: BBContext) {
}
ctx.body = doc
}

export async function removeUserFromApp(ctx: BBContext) {
const { id: userId, prodAppId } = ctx.params

const devAppId = dbCore.getDevelopmentAppID(prodAppId)
for (let appId of [prodAppId, devAppId]) {
if (!(await dbCore.dbExists(appId))) {
continue
}
await context.doInAppContext(appId, async () => {
const db = context.getAppDB()
const metadataId = generateUserMetadataID(userId)
let metadata
try {
metadata = await db.get(metadataId)
} catch (err) {
return
}

let combined = {
...metadata,
status: constants.UserStatus.INACTIVE,
metadata: rolesCore.BUILTIN_ROLE_IDS.PUBLIC,
}

await db.put(combined)
})
}
ctx.body = {
message: `User ${userId} deleted from ${prodAppId} and ${"devapp"}.`,
}
}
5 changes: 5 additions & 0 deletions packages/server/src/api/routes/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,10 @@ router
authorized(PermissionType.USER, PermissionLevel.READ),
controller.getFlags
)
.delete(
"/api/users/metadata/:id/app/:prodAppId",
authorized(PermissionType.USER, PermissionLevel.WRITE),
controller.removeUserFromApp
)

export default router

0 comments on commit f8a0c0d

Please sign in to comment.