From 6f0d8da544fe39fc756ced6cfa9d590c01478194 Mon Sep 17 00:00:00 2001 From: Rotem Liss Date: Sat, 24 Jun 2006 20:56:08 +0000 Subject: [PATCH] Removing the obsolete user group management files. --- includes/AutoLoader.php | 2 - includes/Group.php | 390 ------------------------------------- includes/HTMLForm.php | 4 +- includes/SpecialGroups.php | 275 -------------------------- 4 files changed, 2 insertions(+), 669 deletions(-) delete mode 100644 includes/Group.php delete mode 100644 includes/SpecialGroups.php diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index ca542f8877..019d2d97e4 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -75,7 +75,6 @@ function __autoload($class_name) { 'FSException' => 'FileStore.php', 'FSTransaction' => 'FileStore.php', 'ReplacerCallback' => 'GlobalFunctions.php', - 'Group' => 'Group.php', 'HTMLForm' => 'HTMLForm.php', 'HistoryBlob' => 'HistoryBlob.php', 'ConcatenatedGzipHistoryBlob' => 'HistoryBlob.php', @@ -156,7 +155,6 @@ function __autoload($class_name) { 'DisambiguationsPage' => 'SpecialDisambiguations.php', 'DoubleRedirectsPage' => 'SpecialDoubleRedirects.php', 'EmailUserForm' => 'SpecialEmailuser.php', - 'GroupsForm' => 'SpecialGroups.php', 'WikiRevision' => 'SpecialImport.php', 'WikiImporter' => 'SpecialImport.php', 'ImportStringSource' => 'SpecialImport.php', diff --git a/includes/Group.php b/includes/Group.php deleted file mode 100644 index cc94a6919e..0000000000 --- a/includes/Group.php +++ /dev/null @@ -1,390 +0,0 @@ -clear(); - } - - /** Clear variables */ - function clear() { - $this->name = ''; - $this->id = 0; - $this->description = ''; - $this->dataLoaded = false; - $this->rights = false; - } - - /** Load group data from database */ - function loadFromDatabase() { - $fname = 'Group::loadFromDatabase'; - - // See if it's already loaded - if ( $this->dataLoaded || Group::getStaticGroups() ) { - return; - } - - // be sure it's an integer - $this->id = intval($this->id); - - if($this->id) { - // By ID - $dbr =& wfGetDB( DB_SLAVE ); - $r = $dbr->selectRow('groups', - array('gr_id', 'gr_name', 'gr_description', 'gr_rights'), - array( 'gr_id' => $this->id ), - $fname ); - if ( $r ) { - $this->loadFromRow( $r ); - } else { - $this->id = 0; - $this->dataLoaded = true; - } - } else { - // By name - $dbr =& wfGetDB( DB_SLAVE ); - $r = $dbr->selectRow('groups', - array('gr_id', 'gr_name', 'gr_description', 'gr_rights'), - array( 'gr_name' => $this->name ), - $fname ); - if ( $r ) { - $this->loadFromRow( $r ); - } else { - $this->id = 0; - $this->dataLoaded = true; - } - } - } - - /** Initialise from a result row */ - function loadFromRow( &$row ) { - $this->id = $row->gr_id; - $this->name = $row->gr_name; - $this->description = $row->gr_description; - $this->rights = $row->gr_rights; - $this->dataLoaded = true; - } - - /** Initialise a new row in the database */ - function addToDatabase() { - if ( Group::getStaticGroups() ) { - throw new MWException( "Can't modify groups in static mode" ); - } - - $fname = 'Group::addToDatabase'; - $dbw =& wfGetDB( DB_MASTER ); - $dbw->insert( 'groups', - array( - 'gr_name' => $this->name, - 'gr_description' => $this->description, - 'gr_rights' => $this->rights - ), $fname - ); - $this->id = $dbw->insertId(); - } - - /** Save the group data into database */ - function save() { - global $wgMemc; - - if ( Group::getStaticGroups() ) { - throw new MWException( "Can't modify groups in static mode" ); - } - if($this->id == 0) { return; } - - $fname = 'Group::save'; - $dbw =& wfGetDB( DB_MASTER ); - - $dbw->update( 'groups', - array( /* SET */ - 'gr_name' => $this->name, - 'gr_description' => $this->description, - 'gr_rights' => $this->rights - ), array( /* WHERE */ - 'gr_id' => $this->id - ), $fname - ); - - $wgMemc->set( Group::getCacheKey( $this->id ), $this, 3600 ); - } - - - /** Delete a group */ - function delete() { - global $wgMemc; - - if ( Group::getStaticGroups() ) { - throw new MWException( "Can't modify groups in static mode" ); - } - if($this->id == 0) { return; } - - $fname = 'Group::delete'; - $dbw =& wfGetDB( DB_MASTER ); - - // First remove all users from the group - $dbw->delete( 'user_group', array( 'ug_group' => $this->id ), $fname ); - - // Now delete the group - $dbw->delete( 'groups', array( 'gr_id' => $this->id ), $fname ); - - $wgMemc->delete( Group::getCacheKey( $this->id ) ); - } - - /** - * Get memcached key - * @static - */ - function getCacheKey( $id ) { - global $wgDBname; - return "$wgDBname:groups:id:$id"; - } - -// Factories - /** - * Uses Memcached if available. - * @param $id Integer: group database id - */ - function newFromId($id) { - global $wgMemc; - $fname = 'Group::newFromId'; - - $staticGroups =& Group::getStaticGroups(); - if ( $staticGroups ) { - if ( array_key_exists( $id, $staticGroups ) ) { - return $staticGroups[$id]; - } else { - return null; - } - } - - $key = Group::getCacheKey( $id ); - - if( $group = $wgMemc->get( $key ) ) { - wfDebug( "$fname loaded group $id from cache\n" ); - return $group; - } - - $group = new Group(); - $group->id = $id; - $group->loadFromDatabase(); - - if ( !$group->id ) { - wfDebug( "$fname can't find group $id\n" ); - return null; - } else { - wfDebug( "$fname caching group $id (name {$group->name})\n" ); - $wgMemc->add( $key, $group, 3600 ); - return $group; - } - } - - - /** @param $name String: group database name */ - function newFromName($name) { - $fname = 'Group::newFromName'; - - $staticGroups =& Group::getStaticGroups(); - if ( $staticGroups ) { - $id = Group::idFromName( $name ); - if ( array_key_exists( $id, $staticGroups ) ) { - return $staticGroups[$id]; - } else { - return null; - } - } - - $g = new Group(); - $g->name = $name; - $g->loadFromDatabase(); - - if( $g->getId() != 0 ) { - return $g; - } else { - return null; - } - } - - /** - * Get an array of Group objects, one for each valid group - * - * @static - */ - function &getAllGroups() { - $staticGroups =& Group::getStaticGroups(); - if ( $staticGroups ) { - return $staticGroups; - } - - $fname = 'Group::getAllGroups'; - wfProfileIn( $fname ); - - $dbr =& wfGetDB( DB_SLAVE ); - $groupTable = $dbr->tableName( 'groups' ); - $sql = "SELECT gr_id, gr_name, gr_description, gr_rights FROM $groupTable"; - $res = $dbr->query($sql, $fname); - - $groups = array(); - - while($row = $dbr->fetchObject( $res ) ) { - $group = new Group; - $group->loadFromRow( $row ); - $groups[$row->gr_id] = $group; - } - - wfProfileOut( $fname ); - return $groups; - } - - /** - * Get static groups, if they have been defined in LocalSettings.php - * - * @static - */ - function &getStaticGroups() { - global $wgStaticGroups; - if ( $wgStaticGroups === false ) { - return $wgStaticGroups; - } - - if ( !is_array( $wgStaticGroups ) ) { - $wgStaticGroups = unserialize( $wgStaticGroups ); - } - - return $wgStaticGroups; - } - - -// Converters - /** - * @param $id Integer: group database id - * @return string Group database name - */ - function nameFromId($id) { - $group = Group::newFromId( $id ); - if ( is_null( $group ) ) { - return ''; - } else { - return $group->getName(); - } - } - - /** - * @param $name String: group database name - * @return integer Group database id - */ - function idFromName($name) { - $fname = 'Group::idFromName'; - - $staticGroups =& Group::getStaticGroups(); - if ( $staticGroups ) { - foreach( $staticGroups as $id => $group ) { - if ( $group->getName() === $name ) { - return $group->getId(); - } - } - return 0; - } - - - $dbr =& wfGetDB( DB_SLAVE ); - $r = $dbr->selectRow( 'groups', array( 'gr_id' ), array( 'gr_name' => $name ), $fname ); - - if($r === false) { - return 0; - } else { - return $r->gr_id; - } - } - -// Accessors for private variables - function getName() { - $this->loadFromDatabase(); - return $this->name; - } - - function getExpandedName() { - $this->loadFromDatabase(); - return $this->getMessage( $this->name ); - } - - function getNameForContent() { - $this->loadFromDatabase(); - return $this->getMessageForContent( $this->name ); - } - - function setName($name) { - $this->loadFromDatabase(); - $this->name = $name; - } - - function getId() { return $this->id; } - function setId($id) { - $this->id = intval($id); - $this->dataLoaded = false; - } - - function getDescription() { - return $this->description; - } - - function getExpandedDescription() { - return $this->getMessage( $this->description ); - } - - function setDescription($desc) { - $this->loadFromDatabase(); - $this->description = $desc; - } - - function getRights() { return $this->rights; } - function setRights($rights) { - $this->loadFromDatabase(); - $this->rights = $rights; - } - - /** - * Gets a message if the text starts with a colon, otherwise returns the text itself - */ - function getMessage( $text ) { - if ( strlen( $text ) && $text{0} == ':' ) { - return wfMsg( substr( $text, 1 ) ); - } else { - return $text; - } - } - - /** - * As for getMessage but for content - */ - function getMessageForContent( $text ) { - if ( strlen( $text ) && $text{0} == ':' ) { - return wfMsgForContent( substr( $text, 1 ) ); - } else { - return $text; - } - } - -} -?> diff --git a/includes/HTMLForm.php b/includes/HTMLForm.php index a5f987f812..c3d74b20a9 100644 --- a/includes/HTMLForm.php +++ b/includes/HTMLForm.php @@ -1,7 +1,7 @@ execute(); -} - -/** - * A class to manage group levels rights. - * @package MediaWiki - * @subpackage SpecialPage - */ -class GroupsForm extends HTMLForm { - var $mPosted, $mRequest, $mSaveprefs, $mChangeAllowed; - var $mNewName, $mDescription, $mOldName, $mRights, $mId; - var $mAdd, $mEdit; - - /** Escaped local url name*/ - var $action, $location; - - /** Constructor*/ - function GroupsForm ( &$request ) { - global $wgUser; - - $this->mPosted = $request->wasPosted(); - $this->mRequest =& $request; - $this->mName = 'groups'; - - $this->mNewName = trim( $request->getText('editgroup-name') ); - $this->mOldName = trim( $request->getText('editgroup-oldname' ) ); - $this->mDescription = trim( $request->getText( 'editgroup-description' ) ); - $this->mRights = $request->getArray( 'editgroup-getrights' ); - $this->mId = $this->mRequest->getInt('id'); - $this->mEdit = $request->getCheck('edit'); - $this->mAdd = $request->getCheck('add'); - - - $titleObj = Title::makeTitle( NS_SPECIAL, 'Groups' ); - $this->action = $titleObj->escapeLocalURL(); - if ( $this->mAdd ) { - $this->location = $titleObj->getLocalURL( "add=1&id={$this->mId}" ); - } elseif ( $this->mEdit ) { - $this->location = $titleObj->getLocalURL( "edit=1&id={$this->mId}" ); - } else { - $this->location = $this->action; - } - - $this->mChangeAllowed = $wgUser->isAllowed( 'grouprights' ) && !Group::getStaticGroups(); - } - - /** - * Manage forms to be shown according to posted data - * Depending on the submit button used, call a form or a saving function. - */ - function execute() { - global $wgOut; - - if ( $this->mRequest->getBool( 'showrecord' ) ) { - $this->showRecord(); - } elseif ( $this->mPosted && $this->mChangeAllowed && $this->mRequest->getCheck('savegroup') ) { - // save settings - $this->saveGroup(); - } elseif ( $this->mEdit ) { - if ( $this->mPosted ) { - $wgOut->redirect( $this->location ); - } else { - $this->switchForm(); - $this->editGroupForm( $this->mId ); - } - } elseif ( $this->mAdd ) { - if ( $this->mPosted ) { - $wgOut->redirect( $this->location ); - } else { - $this->switchForm(); - $this->editGroupForm( ); - } - } else { - $this->showAllGroups(); - if ( $this->mChangeAllowed ) { - $this->switchForm(); - } - } - } - - /** - * Save a group - */ - function saveGroup() { - global $wgOut; - - $this->mNewName = trim($this->mNewName); - - if ( $this->mNewName == '' ) { - $this->editGroupForm( $this->mGroupID, 'groups-noname' ); - return false; - } - - if($this->mOldName == '') { - // Check if the group already exists - $add = true; - $g = Group::newFromName( $this->mNewName ); - if ( $g ) { - $this->editGroupForm( 0, 'groups-already-exists' ); - return; - } - - // Create a new group - $g = new Group(); - $g->addToDatabase(); - } else { - $add = false; - $g = Group::newFromName($this->mOldName); - if ( !$g ) { - $this->editGroupForm( 0, 'groups-noname' ); - return; - } - } - - // save stuff - $g->setName($this->mNewName); - $g->setDescription($this->mDescription); - if( is_array( $this->mRights ) ) { - $g->setRights( implode(',',$this->mRights) ); - } - - $g->save(); - - // Make the log entry - $log = new LogPage( 'rights' ); - $dummyTitle = Title::makeTitle( 0, '' ); - if ( $add ) { - $log->addEntry( 'addgroup', $dummyTitle, '', array( $g->getNameForContent() ) ); - } else { - if ( $this->mOldName != $this->mNewName ) { - // Abbreviated action name, must be less than 10 bytes - $log->addEntry( 'rngroup', $dummyTitle, '', array( Group::getMessageForContent( $this->mOldName ), - $g->getNameForContent() ) ); - } else { - $log->addEntry( 'chgroup', $dummyTitle, '', array( $g->getNameForContent() ) ); - } - } - - // Success, go back to all groups page - $titleObj = Title::makeTitle( NS_SPECIAL, 'Groups' ); - $url = $titleObj->getLocalURL(); - - $wgOut->redirect( $url ); - } - - /** - * The entry form - * It allows a user to edit or eventually add a group - */ - function switchForm() { - global $wgOut; - - // group selection - $wgOut->addHTML( "
action\" method=\"post\">\n" ); - $wgOut->addHTML( $this->fieldset( 'lookup-group', - HTMLSelectGroups('id', $this->mName.'-group-edit', array(0 => $this->mRequest->getVal('id')) ) . - ' ' . - '
' - )); - $wgOut->addHTML( "
\n" ); - } - - /** - * Edit a group properties and rights. - * @param $groupname String: Name of a group to be edited. - * @param $error String: message name of the error to display - */ - function editGroupForm($groupID = 0, $error = '') { - global $wgOut; - - if ( $error ) { - $errText = wfMsg( $error ); - $wgOut->addHTML( "

$errText

" ); - } - - if($this->mRequest->getVal('edit')) { - // fetch data if we edit a group - $g = Group::newFromID($groupID); - $fieldname = 'editgroup'; - } else { - // default data when we add a group - $g = new Group(); - $fieldname = 'addgroup'; - } - - $gName = htmlspecialchars( $g->getName() ); - $gDescription = htmlspecialchars( $g->getDescription() ); - - - $wgOut->addHTML( "
action}\" method=\"post\">\n". - '\n" ); - - $wgOut->addHTML( $this->fieldset( $fieldname, - '

' . wfMsg( 'groups-editgroup-preamble' ) . "

\n" . - $this->textbox( 'editgroup-name', $gName ) . - $this->textareabox( 'editgroup-description', $gDescription ) . - '
'. - HTMLSelectRights($g->getRights()). - '
'."\n". - '' - )); - - $wgOut->addHTML( "
\n" ); - } - - function showAllGroups() { - global $wgOut; - $groups =& Group::getAllGroups(); - - $groupsExisting = wfMsg( 'groups-existing' ); - $groupsHeader = wfMsg( 'groups-tableheader' ); - - $s = "{| border=1 -|+'''$groupsExisting''' -|- -!$groupsHeader -"; - foreach ( $groups as $group ) { - $s .= "|-\n| " . $group->getId() . ' || ' . - $group->getExpandedName() . ' || ' . - $group->getExpandedDescription() . ' || '. - // Insert spaces to make it wrap - str_replace( ',', ', ', $group->getRights() ) . "\n"; - } - $s .= "|}\n"; - $wgOut->addWikiText( $s ); - } - - function showRecord() { - global $wgOut; - - $groups =& Group::getAllGroups(); - $rec = serialize( $groups ); - // Split it into lines - $rec = explode( "\r\n", chunk_split( $rec ) ); - $s = ''; - foreach ( $rec as $index => $line ) { - if ( trim( $line ) != '' ) { - if ( $s ) { - $s .= "' .\n\t'"; - } - // Escape it for PHP - $line = str_replace( array( '\\', "'" ), array( '\\\\', "\\'" ), $line ); - // Escape it for HTML - $line = htmlspecialchars( $line ); - // Add it to the string - $s .= $line; - } - } - $s .= "';"; - $s = "

Copy the following into LocalSettings.php:

\n" . - ""; - $wgOut->addHTML( $s ); - } - -} // end class GroupsForm -?> -- 2.20.1