mirror of
https://github.com/sbrl/Pepperminty-Wiki.git
synced 2024-12-24 14:25:02 +00:00
78 lines
3.1 KiB
Text
78 lines
3.1 KiB
Text
|
<?php
|
||
|
register_module([
|
||
|
"name" => "Debug Information",
|
||
|
"version" => "0.1.1",
|
||
|
"author" => "Starbeamrainbowlabs",
|
||
|
"description" => "Adds a debug action for administrator use only that collects a load of useful information to make reporting bugs easier.",
|
||
|
"id" => "page-debug-info",
|
||
|
"code" => function() {
|
||
|
global $settings, $env;
|
||
|
/**
|
||
|
* @api {get} ?action=debug Get a debug dump
|
||
|
* @apiName Debug
|
||
|
* @apiGroup Utility
|
||
|
* @apiPermission Moderator
|
||
|
*
|
||
|
* @apiUse UserNotModeratorError
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* ██████ ███████ ██████ ██ ██ ██████
|
||
|
* ██ ██ ██ ██ ██ ██ ██ ██
|
||
|
* ██ ██ █████ ██████ ██ ██ ██ ███
|
||
|
* ██ ██ ██ ██ ██ ██ ██ ██ ██
|
||
|
* ██████ ███████ ██████ ██████ ██████
|
||
|
*/
|
||
|
add_action("debug", function() {
|
||
|
global $settings, $env, $paths, $version;
|
||
|
header("content-type: text/plain");
|
||
|
|
||
|
if(!$env->is_admin)
|
||
|
{
|
||
|
exit("You must be logged in as an moderator in order to generate debugging information.");
|
||
|
}
|
||
|
|
||
|
$title = "$settings->sitename debug report";
|
||
|
echo("$title\n");
|
||
|
echo(str_repeat("=", strlen($title)) . "\n");
|
||
|
echo("Powered by Pepperminty Wiki version $version.\n");
|
||
|
echo("This report may contain personal information.\n\n");
|
||
|
echo("Environment: ");
|
||
|
echo(var_export($env, true));
|
||
|
echo("\nPaths: ");
|
||
|
var_dump(var_export($paths, true));
|
||
|
echo("\nServer information:\n");
|
||
|
echo("uname -a: " . php_uname() . "\n");
|
||
|
echo("Path: " . getenv("PATH") . "\n");
|
||
|
echo("Temporary directory: " . sys_get_temp_dir() . "\n");
|
||
|
echo("Server: " . $_SERVER["SERVER_SOFTWARE"] . "\n");
|
||
|
echo("Web root: " . $_SERVER["DOCUMENT_ROOT"] . "\n");
|
||
|
echo("Web server user: " . exec("whoami") . "\n");
|
||
|
echo("PHP version: " . phpversion() . "\n");
|
||
|
echo("index.php location: " . __FILE__ . "\n");
|
||
|
echo("index.php file permissions: " . substr(sprintf('%o', fileperms("./index.php")), -4) . "\n");
|
||
|
echo("Current folder permissions: " . substr(sprintf('%o', fileperms(".")), -4) . "\n");
|
||
|
echo("Storage directory permissions: " . substr(sprintf('%o', fileperms($env->storage_prefix)), -4) . "\n");
|
||
|
echo("Loaded extensions: " . implode(", ", get_loaded_extensions()) . "\n");
|
||
|
echo("Settings:\n-----\n");
|
||
|
$settings_export = explode("\n", var_export($settings, true));
|
||
|
foreach ($settings_export as &$row)
|
||
|
{
|
||
|
if(preg_match("/(sitesecret|email)/i", $row)) $row = "********* secret *********";
|
||
|
}
|
||
|
echo(implode("\n", $settings_export));
|
||
|
echo("\n-----\n");
|
||
|
exit();
|
||
|
});
|
||
|
|
||
|
if($env->is_admin)
|
||
|
{
|
||
|
add_help_section("950-debug-information", "Gathering debug information", "<p>As a moderator, $settings->sitename gives you the ability to generate a report on $settings->sitename's installation of Pepperminty Wiki for debugging purposes.</p>
|
||
|
<p>To generate such a report, visit the <code>debug</code> action or <a href='?action=debug'>click here</a>.</p>");
|
||
|
}
|
||
|
}
|
||
|
]);
|
||
|
|
||
|
?>
|
||
|
|