diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2013-09-27 14:25:47 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2013-09-27 14:25:47 +0200 |
commit | 687ba053b7055900dc938da5b82b6d391b0b4318 (patch) | |
tree | 34e893923186c3373e85fb84e621b93f49dbf562 /lib | |
parent | 469b309b21b6634b275c485fb09aa5d8d69fe33c (diff) | |
parent | 735608f51323218a098137a4992aeafff5806f5c (diff) | |
download | nextcloud-server-687ba053b7055900dc938da5b82b6d391b0b4318.tar.gz nextcloud-server-687ba053b7055900dc938da5b82b6d391b0b4318.zip |
Merge branch 'master' into appframework-master
Diffstat (limited to 'lib')
-rw-r--r-- | lib/l10n/da.php | 3 | ||||
-rw-r--r-- | lib/public/share.php | 6 | ||||
-rw-r--r-- | lib/public/user.php | 2 | ||||
-rw-r--r-- | lib/user.php | 17 | ||||
-rw-r--r-- | lib/user/http.php | 6 | ||||
-rw-r--r-- | lib/user/manager.php | 19 | ||||
-rw-r--r-- | lib/user/session.php | 19 | ||||
-rw-r--r-- | lib/user/user.php | 18 |
8 files changed, 48 insertions, 42 deletions
diff --git a/lib/l10n/da.php b/lib/l10n/da.php index 26903142763..05a43f42ed9 100644 --- a/lib/l10n/da.php +++ b/lib/l10n/da.php @@ -8,6 +8,9 @@ $TRANSLATIONS = array( "Users" => "Brugere", "Admin" => "Admin", "Failed to upgrade \"%s\"." => "Upgradering af \"%s\" fejlede", +"Custom profile pictures don't work with encryption yet" => "Personligt profilbillede virker endnu ikke sammen med kryptering", +"Unknown filetype" => "Ukendt filtype", +"Invalid image" => "Ugyldigt billede", "web services under your control" => "Webtjenester under din kontrol", "cannot open \"%s\"" => "Kan ikke åbne \"%s\"", "ZIP download is turned off." => "ZIP-download er slået fra.", diff --git a/lib/public/share.php b/lib/public/share.php index 7a8a183574b..6c5783f1179 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -760,10 +760,10 @@ class Share { /** * @brief Get the backend class for the specified item type - * @param string Item type - * @return Sharing backend object + * @param string $itemType + * @return Share_Backend */ - private static function getBackend($itemType) { + public static function getBackend($itemType) { if (isset(self::$backends[$itemType])) { return self::$backends[$itemType]; } else if (isset(self::$backendTypes[$itemType]['class'])) { diff --git a/lib/public/user.php b/lib/public/user.php index 23ff991642d..576a64d7048 100644 --- a/lib/public/user.php +++ b/lib/public/user.php @@ -102,7 +102,7 @@ class User { * @brief Check if the password is correct * @param $uid The username * @param $password The password - * @returns true/false + * @returns mixed username on success, false otherwise * * Check if the password is correct without logging in the user */ diff --git a/lib/user.php b/lib/user.php index 7f6a296c3ea..15e807088b4 100644 --- a/lib/user.php +++ b/lib/user.php @@ -138,6 +138,7 @@ class OC_User { * setup the configured backends in config.php */ public static function setupBackends() { + OC_App::loadApps(array('prelogin')); $backends = OC_Config::getValue('user_backends', array()); foreach ($backends as $i => $config) { $class = $config['class']; @@ -371,22 +372,18 @@ class OC_User { * @brief Check if the password is correct * @param string $uid The username * @param string $password The password - * @return bool + * @return mixed user id a string on success, false otherwise * * Check if the password is correct without logging in the user * returns the user id or false */ public static function checkPassword($uid, $password) { - $user = self::getManager()->get($uid); - if ($user) { - if ($user->checkPassword($password)) { - return $user->getUID(); - } else { - return false; - } - } else { - return false; + $manager = self::getManager(); + $username = $manager->checkPassword($uid, $password); + if ($username !== false) { + return $username->getUID(); } + return false; } /** diff --git a/lib/user/http.php b/lib/user/http.php index 1e044ed4188..e99afe59ba7 100644 --- a/lib/user/http.php +++ b/lib/user/http.php @@ -79,7 +79,11 @@ class OC_User_HTTP extends OC_User_Backend { curl_close($ch); - return $status==200; + if($status === 200) { + return $uid; + } + + return false; } /** diff --git a/lib/user/manager.php b/lib/user/manager.php index 8dc9bfe2729..13286bc28a4 100644 --- a/lib/user/manager.php +++ b/lib/user/manager.php @@ -119,6 +119,25 @@ class Manager extends PublicEmitter { } /** + * Check if the password is valid for the user + * + * @param $loginname + * @param $password + * @return mixed the User object on success, false otherwise + */ + public function checkPassword($loginname, $password) { + foreach ($this->backends as $backend) { + if($backend->implementsActions(\OC_USER_BACKEND_CHECK_PASSWORD)) { + $uid = $backend->checkPassword($loginname, $password); + if ($uid !== false) { + return $this->getUserObject($uid, $backend); + } + } + } + return false; + } + + /** * search by user id * * @param string $pattern diff --git a/lib/user/session.php b/lib/user/session.php index 98a24d5bb00..525c65ab8a1 100644 --- a/lib/user/session.php +++ b/lib/user/session.php @@ -121,15 +121,16 @@ class Session implements Emitter, \OCP\IUserSession { */ public function login($uid, $password) { $this->manager->emit('\OC\User', 'preLogin', array($uid, $password)); - $user = $this->manager->get($uid); - if ($user) { - $result = $user->checkPassword($password); - if ($result and $user->isEnabled()) { - $this->setUser($user); - $this->manager->emit('\OC\User', 'postLogin', array($user, $password)); - return true; - } else { - return false; + $user = $this->manager->checkPassword($uid, $password); + if($user !== false) { + if (!is_null($user)) { + if ($user->isEnabled()) { + $this->setUser($user); + $this->manager->emit('\OC\User', 'postLogin', array($user, $password)); + return true; + } else { + return false; + } } } else { return false; diff --git a/lib/user/user.php b/lib/user/user.php index 8115c43198c..e5f842944f1 100644 --- a/lib/user/user.php +++ b/lib/user/user.php @@ -106,24 +106,6 @@ class User { } /** - * Check if the password is valid for the user - * - * @param $password - * @return bool - */ - public function checkPassword($password) { - if ($this->backend->implementsActions(\OC_USER_BACKEND_CHECK_PASSWORD)) { - $result = $this->backend->checkPassword($this->uid, $password); - if ($result !== false) { - $this->uid = $result; - } - return !($result === false); - } else { - return false; - } - } - - /** * Set the password of the user * * @param string $password |