xref: /dokuwiki/inc/Action/Denied.php (revision 6723156fd9886ff7204e21fb8bf9240b9223b40f)
164ab5140SAndreas Gohr<?php
264ab5140SAndreas Gohr
364ab5140SAndreas Gohrnamespace dokuwiki\Action;
464ab5140SAndreas Gohr
5*6723156fSAndreas Gohruse dokuwiki\Ui\Login;
6540b38e2SAnna Dabrowskause dokuwiki\Extension\Event;
72f5c77bdSSatoshi Saharause dokuwiki\Ui;
82f5c77bdSSatoshi Sahara
9ab583a1bSAndreas Gohr/**
10ab583a1bSAndreas Gohr * Class Denied
11ab583a1bSAndreas Gohr *
12ab583a1bSAndreas Gohr * Show the access denied screen
13ab583a1bSAndreas Gohr *
14ab583a1bSAndreas Gohr * @package dokuwiki\Action
15ab583a1bSAndreas Gohr */
16ecad51ddSAndreas Gohrclass Denied extends AbstractAction
172f5c77bdSSatoshi Sahara{
1864ab5140SAndreas Gohr    /** @inheritdoc */
192f5c77bdSSatoshi Sahara    public function minimumPermission()
202f5c77bdSSatoshi Sahara    {
2164ab5140SAndreas Gohr        return AUTH_NONE;
2264ab5140SAndreas Gohr    }
2364ab5140SAndreas Gohr
24f0049a83SSatoshi Sahara    /** @inheritdoc */
252f5c77bdSSatoshi Sahara    public function tplContent()
262f5c77bdSSatoshi Sahara    {
2743e49620SAnna Dabrowska        $this->showBanner();
2843e49620SAnna Dabrowska
29540b38e2SAnna Dabrowska        $data = null;
30540b38e2SAnna Dabrowska        $event = new Event('ACTION_DENIED_TPLCONTENT', $data);
3143e49620SAnna Dabrowska        if ($event->advise_before()) {
3283f8872cSSatoshi Sahara            global $INPUT;
3383f8872cSSatoshi Sahara            if (empty($INPUT->server->str('REMOTE_USER')) && actionOK('login')) {
34*6723156fSAndreas Gohr                (new Login)->show();
35f0049a83SSatoshi Sahara            }
36f0049a83SSatoshi Sahara        }
37540b38e2SAnna Dabrowska        $event->advise_after();
38540b38e2SAnna Dabrowska    }
39540b38e2SAnna 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