From 11664f3153c86cefc2c366156234f9530777aab3 Mon Sep 17 00:00:00 2001 From: "Aldo \"xoen\" Giambelluca" Date: Fri, 23 Jul 2010 00:48:45 +0200 Subject: [PATCH] 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 --- inc/User/ldap.php | 29 ------------- inc/lib_base.php | 42 ++++++++++++------- inc/lib_user.php | 11 +++-- .../mod_auth.php => plugins/ldap/lib_ldap.php | 2 +- 4 files changed, 33 insertions(+), 51 deletions(-) delete mode 100755 inc/User/ldap.php rename inc/User/mod_auth.php => plugins/ldap/lib_ldap.php (99%) diff --git a/inc/User/ldap.php b/inc/User/ldap.php deleted file mode 100755 index c91f900342..0000000000 --- a/inc/User/ldap.php +++ /dev/null @@ -1,29 +0,0 @@ -. -* -*/ - -oc_require_once('inc/User/mod_auth.php'); - - - -class OC_USER_LDAP extends OC_USER_MOD_AUTH { -} diff --git a/inc/lib_base.php b/inc/lib_base.php index df6df15cc2..d0b2583442 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 0f7c01b381..1d0cb86c6a 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; } } diff --git a/inc/User/mod_auth.php b/plugins/ldap/lib_ldap.php similarity index 99% rename from inc/User/mod_auth.php rename to plugins/ldap/lib_ldap.php index a037d8abf2..2105ed2464 100755 --- a/inc/User/mod_auth.php +++ b/plugins/ldap/lib_ldap.php @@ -29,7 +29,7 @@ oc_require_once('inc/User/backend.php'); * Class for user management * */ -class OC_USER_MOD_AUTH extends OC_USER_BACKEND { +class OC_USER_LDAP extends OC_USER_BACKEND { /** * Check if the login button is pressed and log the user in