From 2102cf4e6b216fd8db8a2e1c247016ba03c9552f Mon Sep 17 00:00:00 2001 From: Albert S Date: Wed, 17 Aug 2022 21:54:32 +0200 Subject: [PATCH] Add [cmd:allowinclude] Pages must specify whether they want to be included or not. Otherwise there too many surprises possibe, enforcing access restrictions will get more complicated --- dynamic/dynamiccontentincludepage.cpp | 6 +++++- parser.cpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dynamic/dynamiccontentincludepage.cpp b/dynamic/dynamiccontentincludepage.cpp index adc5729..bcb2fa0 100644 --- a/dynamic/dynamiccontentincludepage.cpp +++ b/dynamic/dynamiccontentincludepage.cpp @@ -6,7 +6,11 @@ std::string DynamicContentIncludePage::render() auto rev = revisionDao->getCurrentForPage(this->argument); if(rev) { - return rev->content; + /* Quite dirty */ + if(rev->content.find("[cmd:allowinclude]1[") != std::string::npos) + { + return rev->content; + } } return {}; } diff --git a/parser.cpp b/parser.cpp index cadf410..dda824c 100644 --- a/parser.cpp +++ b/parser.cpp @@ -148,7 +148,7 @@ std::string Parser::parse(const PageDao &pagedao, UrlProvider &provider, const s std::string result; // we don't care about commands, but we nevertheless replace them with empty strings std::regex tagfinder( - R"(\[(b|i|u|li||ul|ol|code|blockquote|img|link|wikilink|h\d|cmd:visible|cmd:rename|cmd:redirect|cmd:pagetitle|category|dynamic:postlist|dynamic:includepage|dynamic:getvar|dynamic:setvar)*?\]((\s|\S)*?)\[/\1])"); + R"(\[(b|i|u|li||ul|ol|code|blockquote|img|link|wikilink|h\d|cmd:visible|cmd:rename|cmd:redirect|cmd:pagetitle|cmd:allowinclude|category|dynamic:postlist|dynamic:includepage|dynamic:getvar|dynamic:setvar)*?\]((\s|\S)*?)\[/\1])"); result = utils::regex_callback_replacer( tagfinder, content, [&](std::smatch &match)