From 94068859603806f45462ecf6fe9a6ceb8ccf2ded Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Sun, 27 Mar 2005 16:06:11 +0000 Subject: [PATCH] Moved to extensions --- includes/SpecialMakesysop.php | 254 ---------------------------------- 1 file changed, 254 deletions(-) delete mode 100644 includes/SpecialMakesysop.php diff --git a/includes/SpecialMakesysop.php b/includes/SpecialMakesysop.php deleted file mode 100644 index 96b87635c0..0000000000 --- a/includes/SpecialMakesysop.php +++ /dev/null @@ -1,254 +0,0 @@ -isAnon() or $wgUser->isBlocked() ) { - $wgOut->errorpage( "movenologin", "movenologintext" ); - return; - } - if (! $wgUser->isAllowed('userrights') ) { - $wgOut->errorpage( "bureaucrattitle", "bureaucrattext" ); - return; - } - - if ( wfReadOnly() ) { - $wgOut->readOnlyPage(); - return; - } - - $f = new MakesysopForm( $wgRequest ); - - if ( $f->mSubmit ) { - $f->doSubmit(); - } else { - $f->showForm( '' ); - } -} - -/** - * - * @package MediaWiki - * @subpackage SpecialPage - */ -class MakesysopForm { - var $mTarget, $mAction, $mRights, $mUser, $mSubmit; - - function MakesysopForm( &$request ) { - $this->mAction = $request->getText( 'action' ); - $this->mRights = $request->getVal( 'wpRights' ); - $this->mUser = $request->getText( 'wpMakesysopUser' ); - $this->mSubmit = $request->getBool( 'wpMakesysopSubmit' ) && $request->wasPosted(); - $this->mBuro = $request->getBool( 'wpSetBureaucrat' ); - } - - function showForm( $err = '') { - global $wgOut, $wgUser, $wgLang; - - if ( $wgUser->isDeveloper() ) { - $wgOut->setPageTitle( wfMsg( "set_user_rights" ) ); - } else { - $wgOut->setPagetitle( wfMsg( "makesysoptitle" ) ); - } - - $wgOut->addWikiText( wfMsg( "makesysoptext" ) ); - - $titleObj = Title::makeTitle( NS_SPECIAL, "Makesysop" ); - $action = $titleObj->escapeLocalURL( "action=submit" ); - - if ( "" != $err ) { - $wgOut->setSubtitle( wfMsg( "formerror" ) ); - $wgOut->addHTML( "

{$err}

\n" ); - } - $namedesc = wfMsg( "makesysopname" ); - if ( !is_null( $this->mUser ) ) { - $encUser = htmlspecialchars( $this->mUser ); - } else { - $encUser = ""; - } - - $wgOut->addHTML( " -
- - - - - " - ); - - $makeburo = wfMsg( "setbureaucratflag" ); - $wgOut->addHTML( - " - - " - ); - - if ( $wgUser->isDeveloper() ) { - $rights = wfMsg( "rights" ); - if ( !is_null( $this->mRights ) ) { - $encRights = htmlspecialchars( $this->mRights ); - } else { - $encRights = "sysop"; - } - - $wgOut->addHTML( " - - - - " - ); - } - - if ( $wgUser->isDeveloper() ) { - $mss = wfMsg( "set_user_rights" ); - } else { - $mss = wfMsg( "makesysopsubmit" ); - } - $wgOut->addHTML( - " -
$namedesc - -
  - $makeburo -
$rights - -
  - -
-
\n" - ); - - } - - function doSubmit() { - global $wgOut, $wgUser, $wgLang; - global $wgDBname, $wgMemc, $wgLocalDatabases; - - $fname = 'MakesysopForm::doSubmit'; - - $dbw =& wfGetDB( DB_MASTER ); - $parts = explode( '@', $this->mUser ); - $user_rights = $dbw->tableName( 'user_rights' ); - $usertable = $dbw->tableName( 'user' ); - - if( count( $parts ) == 2 && $wgUser->isDeveloper() && strpos( '.', $user_rights ) === false ){ - $username = $dbw->strencode( $parts[0] ); - if ( array_key_exists( $parts[1], $wgLocalDatabases ) ) { - $dbName = $wgLocalDatabases[$parts[1]]; - $user_rights = $dbName . '.' . $user_rights; - $usertable = $usertable . '.' . $usertable; - } else { - $this->showFail(); - return; - } - } else { - $username = wfStrencode( $this->mUser ); - $dbName = $wgDBname; - } - if ( $username{0} == "#" ) { - $id = intval( substr( $username, 1 ) ); - $sql = "SELECT ur_user,ur_rights FROM $user_rights WHERE ur_user=$id FOR UPDATE"; - } else { - $sql = "SELECT ur_user, ur_rights FROM $usertable LEFT JOIN $user_rights ON user_id=ur_user WHERE user_name = '{$username}' FOR UPDATE"; - } - - $prev = $dbw->ignoreErrors( TRUE ); - $res = $dbw->query( $sql ); - $dbw->ignoreErrors( $prev ); - - if( $dbw->lastErrno() || ! $username || $dbw->numRows( $res ) == 0 ){ - $this->showFail(); - return; - } - - $row = $dbw->fetchObject( $res ); - $id = intval( $row->ur_user ); - $rightsNotation = array(); - - if ( $wgUser->isDeveloper() ) { - $newrights = (string)$this->mRights; - $rightsNotation[] = "=$this->mRights"; - } else { - if( $row->ur_rights ){ - $rights = explode(",", $row->ur_rights ); - if(! in_array("sysop", $rights ) ){ - $rights[] = "sysop"; - $rightsNotation[] = "+sysop "; - } - if ( $this->mBuro && !in_array( "bureaucrat", $rights ) ) { - $rights[] = "bureaucrat"; - $rightsNotation[] = "+bureaucrat "; - } - $newrights = addslashes( implode( ",", $rights ) ); - } else { - $newrights = "sysop"; - $rightsNotation[] = "+sysop"; - if ( $this->mBuro ) { - $rightsNotation[] = "+bureaucrat"; - $newrights .= ",bureaucrat"; - } - } - } - - if ( count( $rightsNotation ) == 0 ) { - $this->showFail(); - } else { - #$sql = "UPDATE $user_rights SET user_rights = '{$newrights}' WHERE user_id = $id LIMIT 1"; - #$dbw->query($sql); - $dbw->replace( $user_rights, array( array( 'ur_user', 'ur_rights' )), - array( 'ur_user' => $id, 'ur_rights' => $newrights ) , $fname ); - $wgMemc->delete( "$dbName:user:id:$id" ); - - $log = new LogPage( 'rights' ); - $log->addEntry( 'rights', Title::makeTitle( NS_USER, $this->mUser ), - implode( " ", $rightsNotation ) ); - - $this->showSuccess(); - } - } - - function showSuccess() { - global $wgOut, $wgUser; - - $wgOut->setPagetitle( wfMsg( "makesysoptitle" ) ); - - if ( $wgUser->isDeveloper() ) { - $text = wfMsg( "user_rights_set", $this->mUser ); - } else { - $text = wfMsg( "makesysopok", $this->mUser ); - } - $text .= "\n\n"; - $wgOut->addWikiText( $text ); - $this->showForm(); - - } - - function showFail() { - global $wgOut, $wgUser; - - $wgOut->setPagetitle( wfMsg( "makesysoptitle" ) ); - if ( $wgUser->isDeveloper() ) { - $this->showForm( wfMsg( "set_rights_fail", $this->mUser ) ); - } else { - $this->showForm( wfMsg( "makesysopfail", $this->mUser ) ); - } - } -} -?> -- 2.20.1