xref: /plugin/publish/action/hide.php (revision 17d0ef8f18ced1cfc00a443d7593f5e47897a3f4)
1*17d0ef8fSDominik Eckelmann<?php
2*17d0ef8fSDominik Eckelmann
3*17d0ef8fSDominik Eckelmannif(!defined('DOKU_INC')) die();
4*17d0ef8fSDominik Eckelmann
5*17d0ef8fSDominik Eckelmannclass action_plugin_publish_hide extends DokuWiki_Action_Plugin {
6*17d0ef8fSDominik Eckelmann
7*17d0ef8fSDominik Eckelmann    /**
8*17d0ef8fSDominik Eckelmann     * @var helper_plugin_publish
9*17d0ef8fSDominik Eckelmann     */
10*17d0ef8fSDominik Eckelmann    private $hlp;
11*17d0ef8fSDominik Eckelmann
12*17d0ef8fSDominik Eckelmann    function __construct() {
13*17d0ef8fSDominik Eckelmann        $this->hlp = plugin_load('helper','publish');
14*17d0ef8fSDominik Eckelmann    }
15*17d0ef8fSDominik Eckelmann
16*17d0ef8fSDominik Eckelmann    function register(&$controller) {
17*17d0ef8fSDominik Eckelmann        if ($this->getConf('hide drafts')) {
18*17d0ef8fSDominik Eckelmann            $controller->register_hook('TPL_ACT_RENDER', 'BEFORE', $this, 'hide', array());
19*17d0ef8fSDominik Eckelmann        }
20*17d0ef8fSDominik Eckelmann    }
21*17d0ef8fSDominik Eckelmann
22*17d0ef8fSDominik Eckelmann    /**
23*17d0ef8fSDominik Eckelmann     * @param Doku_Event $event
24*17d0ef8fSDominik Eckelmann     * @param array $param
25*17d0ef8fSDominik Eckelmann     */
26*17d0ef8fSDominik Eckelmann    function hide(&$event, $param) {
27*17d0ef8fSDominik Eckelmann        global $ID;
28*17d0ef8fSDominik Eckelmann        global $REV;
29*17d0ef8fSDominik Eckelmann        if ($this->hlp->isRevisionApproved($REV, $ID)) {
30*17d0ef8fSDominik Eckelmann            return;
31*17d0ef8fSDominik Eckelmann        }
32*17d0ef8fSDominik Eckelmann
33*17d0ef8fSDominik Eckelmann        if (auth_quickaclcheck($ID) >= AUTH_EDIT) {
34*17d0ef8fSDominik Eckelmann            return;
35*17d0ef8fSDominik Eckelmann        }
36*17d0ef8fSDominik Eckelmann
37*17d0ef8fSDominik Eckelmann        global $ACT;
38*17d0ef8fSDominik Eckelmann        if (!in_array($ACT, array('show', 'edit', 'source', 'diff'))) {
39*17d0ef8fSDominik Eckelmann            return;
40*17d0ef8fSDominik Eckelmann        }
41*17d0ef8fSDominik Eckelmann
42*17d0ef8fSDominik Eckelmann        $ACT = 'denied';
43*17d0ef8fSDominik Eckelmann
44*17d0ef8fSDominik Eckelmann        $event->preventDefault();
45*17d0ef8fSDominik Eckelmann        $event->stopPropagation();
46*17d0ef8fSDominik Eckelmann
47*17d0ef8fSDominik Eckelmann        print p_locale_xhtml('denied');
48*17d0ef8fSDominik Eckelmann
49*17d0ef8fSDominik Eckelmann    }
50*17d0ef8fSDominik Eckelmann
51*17d0ef8fSDominik Eckelmann}