-
Andreas Gohr authored
This was the last remaining function in inc/action.php that could be moved to the actions. We now have quite the elegant cascade in the action handling.
Andreas Gohr authoredThis was the last remaining function in inc/action.php that could be moved to the actions. We now have quite the elegant cascade in the action handling.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Save.php 1.35 KiB
<?php
namespace dokuwiki\Action;
use dokuwiki\Action\Exception\ActionAbort;
use dokuwiki\Action\Exception\ActionException;
/**
* Class Save
*
* Save at the end of an edit session
*
* @package dokuwiki\Action
*/
class Save extends AbstractAction {
/** @inheritdoc */
public function minimumPermission() {
global $INFO;
if($INFO['exists']) {
return AUTH_EDIT;
} else {
return AUTH_CREATE;
}
}
/** @inheritdoc */
public function preProcess() {
if(!checkSecurityToken()) throw new ActionException('preview');
global $ID;
global $DATE;
global $PRE;
global $TEXT;
global $SUF;
global $SUM;
global $lang;
global $INFO;
global $INPUT;
//spam check
if(checkwordblock()) {
msg($lang['wordblock'], -1);
throw new ActionException('edit');
}
//conflict check
if($DATE != 0 && $INFO['meta']['date']['modified'] > $DATE) {
throw new ActionException('conflict');
}
//save it
saveWikiText($ID, con($PRE, $TEXT, $SUF, true), $SUM, $INPUT->bool('minor')); //use pretty mode for con
//unlock it
unlock($ID);
// continue with draftdel -> redirect -> show
throw new ActionAbort('draftdel');
}
}