xref: /dokuwiki/inc/Action/Denied.php (revision 43e49620afe31534a4a29f3d738f0a6a1fd168a8)
164ab5140SAndreas Gohr<?php
264ab5140SAndreas Gohr
364ab5140SAndreas Gohrnamespace dokuwiki\Action;
464ab5140SAndreas Gohr
5540b38e2SAnna Dabrowskause dokuwiki\Extension\Event;
62f5c77bdSSatoshi Saharause dokuwiki\Ui;
72f5c77bdSSatoshi Sahara
8ab583a1bSAndreas Gohr/**
9ab583a1bSAndreas Gohr * Class Denied
10ab583a1bSAndreas Gohr *
11ab583a1bSAndreas Gohr * Show the access denied screen
12ab583a1bSAndreas Gohr *
13ab583a1bSAndreas Gohr * @package dokuwiki\Action
14ab583a1bSAndreas Gohr */
15ecad51ddSAndreas Gohrclass Denied extends AbstractAction
162f5c77bdSSatoshi Sahara{
1764ab5140SAndreas Gohr    /** @inheritdoc */
182f5c77bdSSatoshi Sahara    public function minimumPermission()
192f5c77bdSSatoshi Sahara    {
2064ab5140SAndreas Gohr        return AUTH_NONE;
2164ab5140SAndreas Gohr    }
2264ab5140SAndreas Gohr
23f0049a83SSatoshi Sahara    /** @inheritdoc */
242f5c77bdSSatoshi Sahara    public function tplContent()
252f5c77bdSSatoshi Sahara    {
26*43e49620SAnna Dabrowska        $this->showBanner();
27*43e49620SAnna Dabrowska
28540b38e2SAnna Dabrowska        $data = null;
29540b38e2SAnna Dabrowska        $event = new Event('ACTION_DENIED_TPLCONTENT', $data);
30*43e49620SAnna Dabrowska        if ($event->advise_before()) {
3183f8872cSSatoshi Sahara            global $INPUT;
3283f8872cSSatoshi Sahara            if (empty($INPUT->server->str('REMOTE_USER')) && actionOK('login')) {
33f0049a83SSatoshi Sahara                (new Ui\Login)->show();
34f0049a83SSatoshi Sahara            }
35f0049a83SSatoshi Sahara        }
36540b38e2SAnna Dabrowska        $event->advise_after();
37540b38e2SAnna Dabrowska    }
38540b38e2SAnna Dabrowska
39f0049a83SSatoshi Sahara    /**
40f0049a83SSatoshi Sahara     * Display error on denied pages
41f0049a83SSatoshi Sahara     *
42f0049a83SSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
43f0049a83SSatoshi Sahara     *
44f0049a83SSatoshi Sahara     * @return void
45f0049a83SSatoshi Sahara     */
46a215faf2SSatoshi Sahara    public function showBanner()
47f0049a83SSatoshi Sahara    {
48f0049a83SSatoshi Sahara        // print intro
49f0049a83SSatoshi Sahara        print p_locale_xhtml('denied');
5064ab5140SAndreas Gohr    }
5164ab5140SAndreas Gohr
5264ab5140SAndreas Gohr}
53