HandlerPageView: Add misisng check whether passed revision is most recent

This commit is contained in:
Albert S. 2021-03-16 21:05:59 +01:00
parent e4562809a0
commit 2aa11fc2b2

View File

@ -92,7 +92,11 @@ Response HandlerPageView::handleRequest(PageDao &pageDao, std::string pagename,
{ {
if(!effectivePermissions(pagename).canSeePageHistory()) if(!effectivePermissions(pagename).canSeePageHistory())
{ {
return errorResponse("Error", "You are not allowed to view older revisions of this page"); auto current = this->database->createRevisionDao()->getCurrentForPage(pagename);
if(current && current->revision > revisionid)
{
return errorResponse("Error", "You are not allowed to view older revisions of this page");
}
} }
revision = this->database->createRevisionDao()->getRevisionForPage(pagename, revisionid); revision = this->database->createRevisionDao()->getRevisionForPage(pagename, revisionid);
if(!revision) if(!revision)