From: Antoine Musso Date: Sun, 24 Oct 2004 21:16:05 +0000 (+0000) Subject: An important file for user management X-Git-Tag: 1.5.0alpha1~1456 X-Git-Url: http://git.cyclocoop.org/%24image?a=commitdiff_plain;h=2f2173e7df1c9360a3bb4f0a22d45e1dfc46f1da;p=lhc%2Fweb%2Fwiklou.git An important file for user management --- diff --git a/includes/Group.php b/includes/Group.php new file mode 100644 index 0000000000..6c02ecd42b --- /dev/null +++ b/includes/Group.php @@ -0,0 +1,187 @@ +clear(); + } + + /** Clear variables */ + function clear() { + $this->name = ''; + $this->id = 0; + $this->description = ''; + $this->dataLoaded = false; + $this->rights = false; + } + + /** Load group datas from database */ + function loadFromDatabase() { + global $wgCommandLineMode; + $fname = 'Group::loadFromDatabase'; + if ( $this->dataLoaded || $wgCommandLineMode ) { + return; + } + + // be sure it's an integer + $this->id = IntVal($this->id); + + if($this->id) { + $dbr =& wfGetDB( DB_SLAVE ); + $r = $dbr->selectRow('`group`', array('group_id', 'group_name', 'group_description', 'group_rights'), array( 'group_id' => $this->id ), $fname ); + $this->id = $r->group_id; + $this->name = $r->group_name; + $this->description = $r->group_description; + $this->rights = $r->group_rights; + $this->dataLoaded = true; + } else { + $dbr =& wfGetDB( DB_SLAVE ); + $r = $dbr->selectRow('`group`', array('group_id', 'group_name', 'group_description', 'group_rights'), array( 'group_name' => $this->name ), $fname ); + $this->id = $r->group_id; + $this->name = $r->group_name; + $this->description = $r->group_description; + $this->rights = $r->group_rights; + $this->dataLoaded = true; + } + } + + /** Initialise a new row in the database */ + function addToDatabase() { + $fname = 'Group::addToDatabase'; + $dbw =& wfGetDB( DB_MASTER ); + $dbw->insert( '`group`', + array( + 'group_name' => $this->name, + 'group_description' => $this->description, + 'group_rights' => $this->rights + ), $fname + ); + $this->id = $dbw->insertId(); + } + + /** Save the group datas into database */ + function save() { + $fname = 'Group::save'; + if($this->id == 0) { return; } + + $dbw =& wfGetDB( DB_MASTER ); + + $dbw->update( '`group`', + array( /* SET */ + 'group_name' => $this->name, + 'group_description' => $this->description, + 'group_rights' => $this->rights + ), array( /* WHERE */ + 'group_id' => $this->id + ), $fname + ); + } + +// Factories + /** @param integer $id Group database id */ + function newFromId($id) { + $fname = 'Group::newFromId'; + $g = new Group(); + $name = $g->nameFromId(IntVal($id)); + + if($name == '') { return; } + else { return $g->newFromName($name); } + } + + + /** @param string $name Group database name */ + function newFromName($name) { + $fname = 'Group::newFromName'; + $g = new Group(); + + $g->setId( $g->idFromName($name) ); + if( $g->getId() != 0 ) { + return $g; + } else { + return; + } + } + +// Converters + /** + * @param integer $id Group database id + * @return string Group database name + */ + function nameFromId($id) { + $fname = 'Group::nameFromId'; + $dbr =& wfGetDB( DB_SLAVE ); + $r = $dbr->selectRow( '`group`', array( 'group_name' ), array( 'group_id' => $id ), $fname ); + + if($r === false) { + return ''; + } else { + return $r->group_name; + } + } + + /** + * @param string $name Group database name + * @return integer Group database id + */ + function idFromName($name) { + $fname = 'Group::idFromName'; + $dbr =& wfGetDB( DB_SLAVE ); + $r = $dbr->selectRow( '`group`', array( 'group_id' ), array( 'group_name' => $name ), $fname ); + + if($r === false) { + return 0; + } else { + return $r->group_id; + } + } + +// Accessors for private variables + function getName() { + $this->loadFromDatabase(); + return $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 setDescription($desc) { + $this->loadFromDatabase(); + $this->description = $desc; + } + + function getRights() { return $this->rights; } + function setRights($rights) { + $this->loadFromDatabase(); + $this->rights = $rights; + } +} +?>