Completed
Push — master ( 9306b7...a8b6ea )
by Andreas
06:09 queued 02:54
created

Save::minimumPermission()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 0
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace dokuwiki\Action;
4
5
use dokuwiki\Action\Exception\ActionAbort;
6
use dokuwiki\Action\Exception\ActionException;
7
8
/**
9
 * Class Save
10
 *
11
 * Save at the end of an edit session
12
 *
13
 * @package dokuwiki\Action
14
 */
15
class Save extends AbstractAction {
16
17
    /** @inheritdoc */
18
    public function minimumPermission() {
19
        global $INFO;
20
        if($INFO['exists']) {
21
            return AUTH_EDIT;
22
        } else {
23
            return AUTH_CREATE;
24
        }
25
    }
26
27
    /** @inheritdoc */
28
    public function preProcess() {
29
        if(!checkSecurityToken()) throw new ActionException('preview');
30
31
        global $ID;
32
        global $DATE;
33
        global $PRE;
34
        global $TEXT;
35
        global $SUF;
36
        global $SUM;
37
        global $lang;
38
        global $INFO;
39
        global $INPUT;
40
41
        //spam check
42
        if(checkwordblock()) {
43
            msg($lang['wordblock'], -1);
44
            throw new ActionException('edit');
45
        }
46
        //conflict check
47
        if($DATE != 0
48
            && isset($INFO['meta']['date']['modified'])
49
            && $INFO['meta']['date']['modified'] > $DATE
50
        ) {
51
            throw new ActionException('conflict');
52
        }
53
54
        //save it
55
        saveWikiText($ID, con($PRE, $TEXT, $SUF, true), $SUM, $INPUT->bool('minor')); //use pretty mode for con
56
        //unlock it
57
        unlock($ID);
58
59
        // continue with draftdel -> redirect -> show
60
        throw new ActionAbort('draftdel');
61
    }
62
63
}
64