Completed
Push — master ( bf6f54...20dc95 )
by Andreas
03:16
created

Save   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
dl 0
loc 46
rs 10
c 0
b 0
f 0
wmc 7
lcom 0
cbo 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A minimumPermission() 0 8 2
B preProcess() 0 31 5
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 && $INFO['meta']['date']['modified'] > $DATE) {
48
            throw new ActionException('conflict');
49
        }
50
51
        //save it
52
        saveWikiText($ID, con($PRE, $TEXT, $SUF, true), $SUM, $INPUT->bool('minor')); //use pretty mode for con
53
        //unlock it
54
        unlock($ID);
55
56
        // continue with draftdel -> redirect -> show
57
        throw new ActionAbort('draftdel');
58
    }
59
60
}
61