diff options
author | Aldo "xoen" Giambelluca <xoen@xoen.org> | 2010-07-23 00:48:45 +0200 |
---|---|---|
committer | Aldo "xoen" Giambelluca <xoen@xoen.org> | 2010-07-23 00:48:45 +0200 |
commit | 11664f3153c86cefc2c366156234f9530777aab3 (patch) | |
tree | f5b092add6523a8a2e04f417f1f3775dc700f76d /inc | |
parent | ccd362108e67e3fc2647adebf2b7bef98081c728 (diff) | |
download | nextcloud-server-11664f3153c86cefc2c366156234f9530777aab3.tar.gz nextcloud-server-11664f3153c86cefc2c366156234f9530777aab3.zip |
Moved LDAP authentication into a plugin
Used the current plugin system to define `USER_OC_LDAP` class
that can be used as backend for OC_USER
Diffstat (limited to 'inc')
-rwxr-xr-x | inc/User/ldap.php | 29 | ||||
-rwxr-xr-x | inc/User/mod_auth.php | 202 | ||||
-rwxr-xr-x | inc/lib_base.php | 42 | ||||
-rwxr-xr-x | inc/lib_user.php | 11 |
4 files changed, 32 insertions, 252 deletions
diff --git a/inc/User/ldap.php b/inc/User/ldap.php deleted file mode 100755 index c91f900342e..00000000000 --- a/inc/User/ldap.php +++ /dev/null @@ -1,29 +0,0 @@ -<?php - -/** -* ownCloud -* -* @author Frank Karlitschek -* @copyright 2010 Frank Karlitschek karlitschek@kde.org -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU AFFERO GENERAL PUBLIC LICENSE for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library. If not, see <http://www.gnu.org/licenses/>. -* -*/ - -oc_require_once('inc/User/mod_auth.php'); - - - -class OC_USER_LDAP extends OC_USER_MOD_AUTH { -} diff --git a/inc/User/mod_auth.php b/inc/User/mod_auth.php deleted file mode 100755 index a037d8abf2c..00000000000 --- a/inc/User/mod_auth.php +++ /dev/null @@ -1,202 +0,0 @@ -<?php - -/** -* ownCloud -* -* @author Frank Karlitschek -* @copyright 2010 Frank Karlitschek karlitschek@kde.org -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU AFFERO GENERAL PUBLIC LICENSE for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library. If not, see <http://www.gnu.org/licenses/>. -* -*/ - -oc_require_once('inc/User/backend.php'); - - - -/** - * Class for user management - * - */ -class OC_USER_MOD_AUTH extends OC_USER_BACKEND { - - /** - * Check if the login button is pressed and log the user in - * - */ - public static function loginLisener() { - return(''); - } - - /** - * Try to create a new user - * - * @param string $username The username of the user to create - * @param string $password The password of the new user - */ - public static function createUser($username, $password) { - return false; - } - - /** - * Try to login a user - * - * @param string $username The username of the user to log in - * @param string $password The password of the user - */ - public static function login($username, $password) { - if ( isset($_SERVER['PHP_AUTH_USER']) AND ('' != $_SERVER['PHP_AUTH_USER']) ) { - $_SESSION['user_id'] = $_SERVER['PHP_AUTH_USER']; - $_SESSION['username'] = $_SERVER['PHP_AUTH_USER']; - $_SESSION['username_clean'] = $_SERVER['PHP_AUTH_USER']; - return true; - } - return false; - } - - /** - * Check if the logout button is pressed and logout the user - * - */ - public static function logoutLisener() { - if ( isset($_GET['logoutbutton']) AND isset($_SESSION['username']) ) { - header('WWW-Authenticate: Basic realm="ownCloud"'); - header('HTTP/1.0 401 Unauthorized'); - die('401 Unauthorized'); - } - } - - /** - * Check if the user is logged in - * - */ - public static function isLoggedIn(){ - if ( isset($_SESSION['user_id']) AND $_SESSION['user_id'] ) { - return true; - } else { - if ( isset($_SERVER['PHP_AUTH_USER']) AND ('' != $_SERVER["PHP_AUTH_USER"]) ) { - $_SESSION['user_id'] = $_SERVER['PHP_AUTH_USER']; - $_SESSION['username'] = $_SERVER['PHP_AUTH_USER']; - $_SESSION['username_clean'] = $_SERVER['PHP_AUTH_USER']; - return true; - } - } - return false; - } - - /** - * Try to create a new group - * - * @param string $groupName The name of the group to create - */ - public static function createGroup($groupName) { - // does not work with MOD_AUTH (only or some modules) - return false; - } - - /** - * Get the ID of a user - * - * @param string $username Name of the user to find the ID - * @param boolean $noCache If false the cache is used to find the ID - */ - public static function getUserId($username, $noCache=false) { - // does not work with MOD_AUTH (only or some modules) - return 0; - } - - /** - * Get the ID of a group - * - * @param string $groupName Name of the group to find the ID - * @param boolean $noCache If false the cache is used to find the ID - */ - public static function getGroupId($groupName, $noCache=false) { - // does not work with MOD_AUTH (only or some modules) - return 0; - } - - /** - * Get the name of a group - * - * @param string $groupId ID of the group - * @param boolean $noCache If false the cache is used to find the name of the group - */ - public static function getGroupName($groupId, $noCache=false) { - // does not work with MOD_AUTH (only or some modules) - return 0; - } - - /** - * Check if a user belongs to a group - * - * @param string $username Name of the user to check - * @param string $groupName Name of the group - */ - public static function inGroup($username, $groupName) { - // does not work with MOD_AUTH (only or some modules) - return false; - } - - /** - * Add a user to a group - * - * @param string $username Name of the user to add to group - * @param string $groupName Name of the group in which add the user - */ - public static function addToGroup($username, $groupName) { - // does not work with MOD_AUTH (only or some modules) - return false; - } - - /** - * Generate a random password - */ - public static function generatePassword() { - return uniqId(); - } - - /** - * Get all groups the user belongs to - * - * @param string $username Name of the user - */ - public static function getUserGroups($username) { - // does not work with MOD_AUTH (only or some modules) - $groups=array(); - return $groups; - } - - /** - * Set the password of a user - * - * @param string $username User who password will be changed - * @param string $password The new password for the user - */ - public static function setPassword($username, $password) { - return false; - } - - /** - * Check if the password of the user is correct - * - * @param string $username Name of the user - * @param string $password Password of the user - */ - public static function checkPassword($username, $password) { - // does not work with MOD_AUTH (only or some modules) - return false; - } - -} diff --git a/inc/lib_base.php b/inc/lib_base.php index df6df15cc23..d0b25834421 100755 --- a/inc/lib_base.php +++ b/inc/lib_base.php @@ -110,21 +110,6 @@ if(OC_USER::isLoggedIn()){ OC_FILESYSTEM::mount($rootStorage,'/'); } -// load plugins -$CONFIG_LOADPLUGINS='all'; -if ($CONFIG_LOADPLUGINS != 'all') - $plugins=explode(' ',$CONFIG_LOADPLUGINS); -else{ - $plugins=array(); - $fd=opendir($SERVERROOT.'/plugins'); - while (($filename = readdir($fd)) !== false) { - if($filename<>'.' and $filename<>'..' and substr($filename,0,1)!='.'){ - $plugins[]=$filename; - } - } - closedir($fd); -} -if(isset($plugins[0])) foreach($plugins as $plugin) require_once($SERVERROOT.'/plugins/'.$plugin.'/lib_'.$plugin.'.php'); // check if the server is correctly configured for ownCloud @@ -305,6 +290,33 @@ class OC_UTIL { } } + /** + * Load the plugins + */ + public static function loadPlugins() { + global $CONFIG_LOADPLUGINS; + global $SERVERROOT; + + $CONFIG_LOADPLUGINS = 'all'; + if ( 'all' !== $CONFIG_LOADPLUGINS ) { + $plugins = explode(' ', $CONFIG_LOADPLUGINS); + } else { + $plugins = array(); + $fd = opendir($SERVERROOT . '/plugins'); + while ( false !== ($filename = readdir($fd)) ) { + if ( $filename<>'.' AND $filename<>'..' AND ('.' != substr($filename, 0, 1)) ) { + $plugins[] = $filename; + } + } + closedir($fd); + } + if ( isset($plugins[0]) ) { + foreach ( $plugins as $plugin ) { + oc_require_once('/plugins/' . $plugin . '/lib_' . $plugin . '.php'); + } + } + } + } diff --git a/inc/lib_user.php b/inc/lib_user.php index 0f7c01b3818..1d0cb86c6a7 100755 --- a/inc/lib_user.php +++ b/inc/lib_user.php @@ -23,6 +23,8 @@ global $CONFIG_BACKEND; +OC_UTIL::loadPlugins(); + if ( !$CONFIG_INSTALLED ) { @@ -63,18 +65,15 @@ class OC_USER { } switch ( $backend ) { + case 'database': case 'mysql': case 'sqlite': oc_require_once('inc/User/database.php'); self::$_backend = new OC_USER_DATABASE(); break; - case 'ldap': - oc_require_once('inc/User/ldap.php'); - self::$_backend = new OC_USER_LDAP(); - break; default: - oc_require_once('inc/User/database.php'); - self::$_backend = new OC_USER_DATABASE(); + $className = 'OC_USER_' . strToUpper($backend); + self::$_backend = new $className(); break; } } |