1
0
Fork 0
mirror of https://github.com/sbrl/Pepperminty-Wiki.git synced 2024-11-22 04:23:01 +00:00

Make invindex-rebuild admin only, but allow access via a POST request with the secret attached

This commit is contained in:
Starbeamrainbowlabs 2017-07-10 22:06:41 +01:00
parent c2dcf43bc2
commit 80158541cb
3 changed files with 27 additions and 3 deletions

View file

@ -3139,7 +3139,19 @@ register_module([
* ██ ██ ███████ ██████ ██████ ██ ███████ ██████ * ██ ██ ███████ ██████ ██████ ██ ███████ ██████
*/ */
add_action("invindex-rebuild", function() { add_action("invindex-rebuild", function() {
search::rebuild_invindex(); global $env, $settings;
if($env->is_admin ||
(
!empty($_POST["secret"]) &&
$_POST["secret"] === $settings->secret
)
)
search::rebuild_invindex();
else
{
http_response_code(401);
exit(page_renderer::render_main("Error - Search index regenerator - $settings->sitename", "<p>Error: You aren't allowed to regenerate the search index. Try logging in as an admin, or setting the <code>secret</code> POST parameter to $settings->sitename's secret - which can be found in $settings->sitename's <code>peppermint.json</code> file.</p>"));
}
}); });

View file

@ -104,7 +104,7 @@
"author": "Starbeamrainbowlabs", "author": "Starbeamrainbowlabs",
"description": "Adds proper search functionality to Pepperminty Wiki using an inverted index to provide a full text search engine. If pages don't show up, then you might have hit a stop word. If not, try requesting the `invindex-rebuild` action to rebuild the inverted index from scratch.", "description": "Adds proper search functionality to Pepperminty Wiki using an inverted index to provide a full text search engine. If pages don't show up, then you might have hit a stop word. If not, try requesting the `invindex-rebuild` action to rebuild the inverted index from scratch.",
"id": "feature-search", "id": "feature-search",
"lastupdate": 1499719908, "lastupdate": 1499720597,
"optional": false "optional": false
}, },
{ {

View file

@ -63,7 +63,19 @@ register_module([
* ██ ██ ███████ ██████ ██████ ██ ███████ ██████ * ██ ██ ███████ ██████ ██████ ██ ███████ ██████
*/ */
add_action("invindex-rebuild", function() { add_action("invindex-rebuild", function() {
search::rebuild_invindex(); global $env, $settings;
if($env->is_admin ||
(
!empty($_POST["secret"]) &&
$_POST["secret"] === $settings->secret
)
)
search::rebuild_invindex();
else
{
http_response_code(401);
exit(page_renderer::render_main("Error - Search index regenerator - $settings->sitename", "<p>Error: You aren't allowed to regenerate the search index. Try logging in as an admin, or setting the <code>secret</code> POST parameter to $settings->sitename's secret - which can be found in $settings->sitename's <code>peppermint.json</code> file.</p>"));
}
}); });