global $wgUser, $wgRestrictionTypes, $wgContLang;
$id = $this->mTitle->getArticleID();
- if( $id <= 0 || wfReadOnly() || !$this->mTitle->userCan('protect') ) {
+ if ( $id <= 0 ) {
+ wfDebug( "updateRestrictions failed: $id <= 0\n" );
+ return false;
+ }
+
+ if ( wfReadOnly() ) {
+ wfDebug( "updateRestrictions failed: read-only\n" );
+ return false;
+ }
+
+ if ( wfReadOnly() ) {
+ wfDebug( "updateRestrictions failed: insufficient permissions\n" );
return false;
}
$encodedExpiry = array();
$protect_description = '';
foreach( $limit as $action => $restrictions ) {
+ if ( !isset($expiry[$action]) )
+ $expiry[$action] = 'infinite';
+
$encodedExpiry[$action] = Block::encodeExpiry($expiry[$action], $dbw );
if( $restrictions != '' ) {
$protect_description .= "[$action=$restrictions] (";
$dir = $args[0];
+ # Check Protection
+ if (isset($options['protect']) && isset($options['unprotect']))
+ die("Cannot specify both protect and unprotect. Only 1 is allowed.\n");
+
+ if ($options['protect'] == 1)
+ die("You must specify a protection option.\n");
+
# Prepare the list of allowed extensions
global $wgFileExtensions;
$extensions = isset( $options['extensions'] )
continue;
}
}
+
+ $doProtect = false;
+ $restrictions = array();
+
+ global $wgRestrictionLevels;
+
+ $protectLevel = isset($options['protect']) ? $options['protect'] : null;
+
+ if ( $protectLevel && in_array( $protectLevel, $wgRestrictionLevels ) ) {
+ $restrictions['move'] = $protectLevel;
+ $restrictions['edit'] = $protectLevel;
+ $doProtect = true;
+ }
+ if (isset($options['unprotect'])) {
+ $restrictions['move'] = '';
+ $restrictions['edit'] = '';
+ $doProtect = true;
+ }
+
$$svar++;
if ( isset( $options['dry'] ) ) {
} else if ( $image->recordUpload( $archive->value, $commentText, $license ) ) {
# We're done!
echo( "done.\n" );
+ if ($doProtect) {
+ # Protect the file
+ $article = new Article( $title );
+ echo "\nWaiting for slaves...\n";
+ // Wait for slaves.
+ sleep(2.0);
+ wfWaitForSlaves( 1.0 );
+
+ echo( "\nSetting image restrictions ... " );
+ if ( $article->updateRestrictions($restrictions) )
+ echo( "done.\n" );
+ else
+ echo( "failed.\n" );
+ }
+
} else {
echo( "failed.\n" );
}
but the extension <ext>.
--license=<code> Use an optional license template
--dry Dry run, don't import anything
+--protect=<protect> Specify the protect value (autoconfirmed,sysop)
+--unprotect Unprotects all uploaded images
END;
exit();