|
|
@@ -1185,11 +1185,21 @@ module.exports = function(crowi, app) {
|
|
|
return res.json(ApiResponse.error(`Page '${pageId}' is not found or forbidden`, 'notfound_or_forbidden'));
|
|
|
}
|
|
|
|
|
|
+ let creator;
|
|
|
+ if (page.isEmpty) {
|
|
|
+ // If empty, the creator is inherited from the closest non-empty ancestor page.
|
|
|
+ const notEmptyClosestAncestor = await Page.findNonEmptyClosestAncestor(page.path);
|
|
|
+ creator = notEmptyClosestAncestor.creator;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ creator = page.creator;
|
|
|
+ }
|
|
|
+
|
|
|
debug('Delete page', page._id, page.path);
|
|
|
|
|
|
try {
|
|
|
if (isCompletely) {
|
|
|
- if (!crowi.pageService.canDeleteCompletely(page.path, page.creator, req.user, isRecursively)) {
|
|
|
+ if (!crowi.pageService.canDeleteCompletely(page.path, creator, req.user, isRecursively)) {
|
|
|
return res.json(ApiResponse.error('You can not delete this page completely', 'user_not_admin'));
|
|
|
}
|
|
|
await crowi.pageService.deleteCompletely(page, req.user, options, isRecursively);
|
|
|
@@ -1205,7 +1215,7 @@ module.exports = function(crowi, app) {
|
|
|
return res.json(ApiResponse.error('Someone could update this page, so couldn\'t delete.', 'outdated'));
|
|
|
}
|
|
|
|
|
|
- if (!crowi.pageService.canDelete(page.path, page.creator, req.user, isRecursively)) {
|
|
|
+ if (!crowi.pageService.canDelete(page.path, creator, req.user, isRecursively)) {
|
|
|
return res.json(ApiResponse.error('You can not delete this page', 'user_not_admin'));
|
|
|
}
|
|
|
|