fix: admin/accounts: renaming your account while logged-in kicked you out

Massimo Melina committed Feb 4, 2023 at 11:23 UTC 34bbb4d2d3310bcd3542dc39ea5538ff91c25085
1 file changed +3 -1
src/api.accounts.ts
+3 -1
@@ -44,13 +44,15 @@ const apis: ApiHandlers = {
44 return { list: _.filter(accountsConfig.get(), accountCanLoginAdmin).map(ac => ac.username) }
45 },
46
47 - set_account({ username, changes }) {
47 + set_account({ username, changes }, ctx) {
48 const { admin } = changes
49 if (admin === null)
50 changes.admin = undefined
51 else if (admin !== undefined && typeof admin !== 'boolean')
52 return new ApiError(HTTP_BAD_REQUEST, "invalid admin")
53 const acc = setAccount(username, changes)
54 + if (changes.username && ctx.session)
55 + ctx.session.username = changes.username
56 return acc ? _.pick(acc, 'username') : new ApiError(HTTP_BAD_REQUEST)
57 },
58