1<?php
2
3namespace dokuwiki\Action;
4
5use dokuwiki\Action\Exception\ActionException;
6use dokuwiki\Extension\AdminPlugin;
7
8/**
9 * Class Admin
10 *
11 * Action to show the admin interface or admin plugins
12 *
13 * @package dokuwiki\Action
14 */
15class Admin extends AbstractUserAction {
16
17    /** @inheritdoc */
18    public function minimumPermission() {
19        return AUTH_READ; // let in check later
20    }
21
22    /** @inheritDoc */
23    public function preProcess() {
24        global $INPUT;
25
26        // retrieve admin plugin name from $_REQUEST['page']
27        if($INPUT->str('page', '', true) != '') {
28            /** @var AdminPlugin $plugin */
29            if($plugin = plugin_getRequestAdminPlugin()) { // FIXME this method does also permission checking
30                if(!$plugin->isAccessibleByCurrentUser()) {
31                    throw new ActionException('denied');
32                }
33                $plugin->handle();
34            }
35        }
36    }
37
38    /** @inheritDoc */
39    public function tplContent() {
40        tpl_admin();
41    }
42}
43