From a129aef2e1baa0b2ead7bd9d7a152fad68cb4611 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 3 Jun 2010 21:54:18 +0200 Subject: Update Auth backend for FluxBB --- extensions/FluxBBAuthPlugin.php | 134 ++++++++++++++++++++++++++++++++++++++++ extensions/LLAuthPlugin.php | 134 ---------------------------------------- 2 files changed, 134 insertions(+), 134 deletions(-) create mode 100644 extensions/FluxBBAuthPlugin.php delete mode 100644 extensions/LLAuthPlugin.php (limited to 'extensions') diff --git a/extensions/FluxBBAuthPlugin.php b/extensions/FluxBBAuthPlugin.php new file mode 100644 index 00000000..0b1319eb --- /dev/null +++ b/extensions/FluxBBAuthPlugin.php @@ -0,0 +1,134 @@ + 'FluxBBAuthPlugin', + 'version' => '1.0', + 'description' => 'Use FluxBB accounts in MediaWiki', + 'author' => 'Pierre Schmitz', + 'url' => 'https://users.archlinux.de/~pierre/' +); + +require_once('includes/AuthPlugin.php'); + + +class FluxBBAuthPlugin extends AuthPlugin { + +public static function isValidPassword($password) { + $length = strlen($password); + return ($length >= 4 && $length <= 25); +} + +private function getUserData($username) { + $dbr = wfGetDB( DB_SLAVE ); + + $result = $dbr->safeQuery('SELECT id, username, email, realname FROM fluxbb.users WHERE username = ?', $username); + $data = $result->fetchRow(); + $result->free(); + + return $data; +} + +public function userExists( $username ) { + $dbr = wfGetDB( DB_SLAVE ); + + try { + $result = $dbr->safeQuery('SELECT id FROM fluxbb.users WHERE username = ?', $username); + $exists = ($result->numRows() > 0 ? true : false); + $result->free(); + } catch (Exception $e) { + $exists = false; + } + + return $exists; +} + +public function authenticate( $username, $password ) { + $dbr = wfGetDB( DB_SLAVE ); + + try { + $result = $dbr->safeQuery('SELECT id FROM fluxbb.users WHERE username = ? AND password = ?', $username, sha1($password)); + $authenticated = ($result->numRows() > 0 ? true : false); + $result->free(); + } catch (Exception $e) { + $authenticated = false; + } + + return $authenticated; +} + +public function modifyUITemplate( &$template ) { + $template->set( 'usedomain', false ); + $template->set('link', 'Um Dich hier anzumelden, nutze Deine Konto-Daten aus dem archlinux.de-Forum.'); +} + +public function setDomain( $domain ) { + $this->domain = $domain; +} + +public function validDomain( $domain ) { + return true; +} + +public function updateUser( &$user ) { + return $this->initUser($user); +} + +public function autoCreate() { + return true; +} + +public function allowPasswordChange() { + return false; +} + +public function setPassword( $user, $password ) { + return false; +} + +public function updateExternalDB( $user ) { + // this way userdata is allways overwritten by external db + return $this->initUser($user); +} + +public function canCreateAccounts() { + return false; +} + +public function addUser( $user, $password, $email = '', $realname = '' ) { + return false; +} + +public function strict() { + return true; +} + +public function strictUserAuth( $username ) { + return true; +} + +public function initUser( &$user, $autocreate=false ) { + try { + $data = $this->getUserData($user->getName()); + $user->setEmail($data['email']); + $user->confirmEmail(); + $user->setRealName($data['realname']); + } catch (Exception $e) { + return false; + } + return true; +} + +public function getCanonicalName( $username ) { + try { + $data = $this->getUserData($username); + } catch (Exception $e) { + return false; + } + return strtoupper(substr($data['username'], 0, 1)).substr($data['username'], 1); +} + +} + +?> diff --git a/extensions/LLAuthPlugin.php b/extensions/LLAuthPlugin.php deleted file mode 100644 index f95a562b..00000000 --- a/extensions/LLAuthPlugin.php +++ /dev/null @@ -1,134 +0,0 @@ - 'LLAuthPlugin', - 'version' => '3.2', - 'description' => 'Authentifizierung am LL-Forum', - 'author' => 'Pierre Schmitz', - 'url' => 'https://www.archlinux.de' -); - -require_once('includes/AuthPlugin.php'); - - -class LLAuthPlugin extends AuthPlugin { - -public static function isValidPassword($password) { - $length = strlen($password); - return ($length >= 6 && $length <= 25); -} - -private function getUserData($username) { - $dbr = wfGetDB( DB_SLAVE ); - - $result = $dbr->safeQuery('SELECT id, name, email, realname FROM ll.users WHERE name = ?', $username); - $data = $result->fetchRow(); - $result->free(); - - return $data; -} - -public function userExists( $username ) { - $dbr = wfGetDB( DB_SLAVE ); - - try { - $result = $dbr->safeQuery('SELECT id FROM ll.users WHERE name = ?', $username); - $exists = ($result->numRows() > 0 ? true : false); - $result->free(); - } catch (Exception $e) { - $exists = false; - } - - return $exists; -} - -public function authenticate( $username, $password ) { - $dbr = wfGetDB( DB_SLAVE ); - - try { - $result = $dbr->safeQuery('SELECT id FROM ll.users WHERE name = ? AND password = ?', $username, sha1($password)); - $authenticated = ($result->numRows() > 0 ? true : false); - $result->free(); - } catch (Exception $e) { - $authenticated = false; - } - - return $authenticated; -} - -public function modifyUITemplate( &$template ) { - $template->set( 'usedomain', false ); - $template->set('link', 'Um Dich hier anzumelden, nutze Deine Konto-Daten aus dem archlinux.de-Forum.'); -} - -public function setDomain( $domain ) { - $this->domain = $domain; -} - -public function validDomain( $domain ) { - return true; -} - -public function updateUser( &$user ) { - return $this->initUser($user); -} - -public function autoCreate() { - return true; -} - -public function allowPasswordChange() { - return false; -} - -public function setPassword( $user, $password ) { - return false; -} - -public function updateExternalDB( $user ) { - // this way userdata is allways overwritten by external db - return $this->initUser($user); -} - -public function canCreateAccounts() { - return false; -} - -public function addUser( $user, $password, $email = '', $realname = '' ) { - return false; -} - -public function strict() { - return true; -} - -public function strictUserAuth( $username ) { - return true; -} - -public function initUser( &$user, $autocreate=false ) { - try { - $data = $this->getUserData($user->getName()); - $user->setEmail($data['email']); - $user->confirmEmail(); - $user->setRealName($data['realname']); - } catch (Exception $e) { - return false; - } - return true; -} - -public function getCanonicalName( $username ) { - try { - $data = $this->getUserData($username); - } catch (Exception $e) { - return false; - } - return strtoupper(substr($data['name'], 0, 1)).substr($data['name'], 1); -} - -} - -?> -- cgit v1.2.2