* @return Boolean: success
*/
function save() {
- global $wgRequest, $wgUser;
+ global $wgRequest, $wgUser, $wgOut;
# Permission check!
if ( $this->disabled ) {
!(isset($wgGroupPermissions[$edit_restriction]['protect']) && $wgGroupPermissions[$edit_restriction]['protect'] ) )
$this->mCascade = false;
- if ($this->mTitle->exists()) {
- $ok = $this->mArticle->updateRestrictions( $this->mRestrictions, $reasonstr, $this->mCascade, $expiry );
- } else {
- $ok = $this->mTitle->updateTitleProtection( $this->mRestrictions['create'], $reasonstr, $expiry['create'] );
- }
+ $status = $this->mArticle->doUpdateRestrictions( $this->mRestrictions, $expiry, $this->mCascade, $reasonstr, $wgUser );
- if( !$ok ) {
- throw new FatalError( "Unknown error at restriction save time." );
+ if ( !$status->isOK() ) {
+ $this->show( $wgOut->parseInline( $status->getWikiText() ) );
+ return false;
}
/**
} elseif ( $this->mTitle->userIsWatching() ) {
WatchAction::doUnwatch( $this->mTitle, $wgUser );
}
- return $ok;
+ return true;
}
/**