feat: admin portal user page add user address manangement (#623)

This commit is contained in:
Dream Hunter
2025-04-07 19:47:44 +08:00
committed by GitHub
parent 91a859bbcf
commit 31eb6c23d1
9 changed files with 180 additions and 25 deletions

View File

@@ -143,5 +143,23 @@ export default {
return c.text("Failed to update user roles", 500)
}
return c.json({ success: true })
}
},
getBindedAddresses: async (c: Context<HonoCustomType>) => {
const { user_id } = c.req.param();
if (!user_id) return c.text("Invalid user_id", 400);
// select binded address
const { results } = await c.env.DB.prepare(
`SELECT a.*,`
+ ` (SELECT COUNT(*) FROM raw_mails WHERE address = a.name) AS mail_count,`
+ ` (SELECT COUNT(*) FROM sendbox WHERE address = a.name) AS send_count`
+ ` FROM address a `
+ ` JOIN users_address ua `
+ ` ON ua.address_id = a.id `
+ ` WHERE ua.user_id = ?`
+ ` ORDER BY a.id DESC`
).bind(user_id).all();
return c.json({
results: results,
})
},
}

View File

@@ -327,6 +327,7 @@ api.post('/admin/users', admin_user_api.createUser)
api.post('/admin/users/:user_id/reset_password', admin_user_api.resetPassword)
api.get('/admin/user_roles', async (c) => c.json(getUserRoles(c)))
api.post('/admin/user_roles', admin_user_api.updateUserRoles)
api.get('/admin/users/bind_address/:user_id', admin_user_api.getBindedAddresses)
// user oauth2 settings
api.get('/admin/user_oauth2_settings', oauth2_settings.getUserOauth2Settings)