Pepperminty-Wiki/modules/page-user-list.php

53 lines
2.6 KiB
PHP

<?php
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
register_module([
"name" => "User list",
"version" => "0.1",
"author" => "Starbeamrainbowlabs",
"description" => "Adds a 'user-list' action that generates a list of users. Supports json output with 'format=json' in the queyr string.",
"id" => "page-user-list",
"code" => function() {
global $settings;
/**
* @api {get} ?action=user-list[&format=json] List all users
* @apiName UserList
* @apiGroup Utility
* @apiPermission Anonymous
*/
/*
* ██ ██ ███████ ███████ ██████ ██ ██ ███████ ████████
* ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
* ██ ██ ███████ █████ ██████ █████ ██ ██ ███████ ██
* ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
* ██████ ███████ ███████ ██ ██ ███████ ██ ███████ ██
*/
add_action("user-list", function() {
global $env, $settings;
$userList = array_keys(get_object_vars($settings->users));
if(!empty($_GET["format"]) && $_GET["format"] === "json")
{
header("content-type: application/json");
exit(json_encode($userList));
}
$content = "<h1>User List</h1>\n";
$content .= "<ul class='page-list user-list invisilist'>\n";
foreach($userList as $username)
$content .= "\t<li>" . page_renderer::render_username($username) . "</li>\n";
$content .= "</ul>\n";
exit(page_renderer::render_main("User List - $settings->sitename", $content));
});
add_help_section("800-raw-page-content", "Viewing Raw Page Content", "<p>Although you can use the edit page to view a page's source, you can also ask $settings->sitename to send you the raw page source and nothing else. This feature is intented for those who want to automate their interaction with $settings->sitename.</p>
<p>To use this feature, navigate to the page for which you want to see the source, and then alter the <code>action</code> parameter in the url's query string to be <code>raw</code>. If the <code>action</code> parameter doesn't exist, add it. Note that when used on an file's page this action will return the source of the description and not the file itself.</p>");
}
]);
?>