xref: /dokuwiki/inc/Action/Denied.php (revision 540b38e2d1ab27e8ce4e994e30aead6b308ccbd6)
164ab5140SAndreas Gohr<?php
264ab5140SAndreas Gohr
364ab5140SAndreas Gohrnamespace dokuwiki\Action;
464ab5140SAndreas Gohr
5*540b38e2SAnna 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*540b38e2SAnna Dabrowska        $data = null;
27*540b38e2SAnna Dabrowska        $event = new Event('ACTION_DENIED_TPLCONTENT', $data);
28*540b38e2SAnna Dabrowska
29*540b38e2SAnna Dabrowska        if ($event->advise_before(true)) {
3083f8872cSSatoshi Sahara            global $INPUT;
31f0049a83SSatoshi Sahara            $this->showBanner();
3283f8872cSSatoshi Sahara            if (empty($INPUT->server->str('REMOTE_USER')) && actionOK('login')) {
33f0049a83SSatoshi Sahara                (new Ui\Login)->show();
34f0049a83SSatoshi Sahara            }
35f0049a83SSatoshi Sahara        }
36f0049a83SSatoshi Sahara
37*540b38e2SAnna Dabrowska        $event->advise_after();
38*540b38e2SAnna Dabrowska    }
39*540b38e2SAnna Dabrowska
40f0049a83SSatoshi Sahara    /**
41f0049a83SSatoshi Sahara     * Display error on denied pages
42f0049a83SSatoshi Sahara     *
43f0049a83SSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
44f0049a83SSatoshi Sahara     *
45f0049a83SSatoshi Sahara     * @return void
46f0049a83SSatoshi Sahara     */
47a215faf2SSatoshi Sahara    public function showBanner()
48f0049a83SSatoshi Sahara    {
49f0049a83SSatoshi Sahara        // print intro
50f0049a83SSatoshi Sahara        print p_locale_xhtml('denied');
5164ab5140SAndreas Gohr    }
5264ab5140SAndreas Gohr
5364ab5140SAndreas Gohr}
54