aboutsummaryrefslogtreecommitdiffstats
path: root/inc
diff options
context:
space:
mode:
authorAldo "xoen" Giambelluca <xoen@xoen.org>2010-07-23 00:48:45 +0200
committerAldo "xoen" Giambelluca <xoen@xoen.org>2010-07-23 00:48:45 +0200
commit11664f3153c86cefc2c366156234f9530777aab3 (patch)
treef5b092add6523a8a2e04f417f1f3775dc700f76d /inc
parentccd362108e67e3fc2647adebf2b7bef98081c728 (diff)
downloadnextcloud-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-xinc/User/ldap.php29
-rwxr-xr-xinc/User/mod_auth.php202
-rwxr-xr-xinc/lib_base.php42
-rwxr-xr-xinc/lib_user.php11
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;
}
}