Admin tools: fix minor bugs

This commit is contained in:
yu-i-i
2026-09-22 02:41:39 +02:00
parent bb788215ba
commit da765c2092
11 changed files with 36 additions and 21 deletions
@@ -69,6 +69,10 @@ export default {
AuthorizationMiddleware.ensureUserIsSiteAdmin,
ProjectListController.purgeDeletedProject
)
webRouter.delete('/admin/project/:project_id',
AuthorizationMiddleware.ensureUserIsSiteAdmin,
ProjectListController.deleteProject
)
webRouter.post('/admin/project/:project_id/undelete',
AuthorizationMiddleware.ensureUserIsSiteAdmin,
ProjectListController.undeleteProject
@@ -117,7 +117,7 @@ function _sortAndPaginate(projects, sort, page) {
throw new OError('Invalid sorting criteria', { sort })
}
// sorting by owner is not implemented, it is mot needed
// sorting by owner is not implemented, it is not needed
const sortedProjects =
sort.by === 'title'
? [...projects].sort((a, b) =>
@@ -162,7 +162,7 @@ function _formatDeletedProjectInfo(deletedProject, maxDate) {
trashed,
deleted: true,
deletedAt: deletedProject.deleterData?.deletedAt?.toISOString(),
deletedBy: deletedProject.deleterData?.deleterId,
deleterId: deletedProject.deleterData?.deleterId,
}
}
@@ -212,6 +212,14 @@ async function untrashProjectForUser(req, res) {
res.sendStatus(200)
}
async function deleteProject(req, res) {
const projectId = req.params.project_id
const deleterId = SessionManager.getLoggedInUserId(req.session)
const options = { deleterUser: {_id: deleterId } }
const deletedProjectData = await ProjectDeleter.promises.deleteProject(projectId, options)
return res.json(deletedProjectData)
}
async function undeleteProject(req, res) {
const projectId = req.params.project_id
const { userId } = req.body
@@ -232,6 +240,7 @@ async function purgeDeletedProject(req, res) {
export default {
manageProjectsPage: expressify(manageProjectsPage),
getProjectsJson: expressify(getProjectsJson),
deleteProject: expressify(deleteProject),
undeleteProject: expressify(undeleteProject),
purgeDeletedProject: expressify(purgeDeletedProject),
trashProjectForUser: expressify(trashProjectForUser),