summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2016-04-05 10:26:04 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2016-04-05 10:26:04 +0200
commit64d400b5df2a70df1899ade3ebcac0558b0001ea (patch)
tree060217dc5bba1bac98da89ed07c0756bdd1ccb60
parent2a7e9f08ff5951c0fba8524ba76fe56ce95ada57 (diff)
downloadnextcloud-server-64d400b5df2a70df1899ade3ebcac0558b0001ea.tar.gz
nextcloud-server-64d400b5df2a70df1899ade3ebcac0558b0001ea.zip
Prevent null to be passed into the closure of callForAllUsers
-rw-r--r--lib/private/user/manager.php18
-rw-r--r--lib/public/iusermanager.php6
2 files changed, 14 insertions, 10 deletions
diff --git a/lib/private/user/manager.php b/lib/private/user/manager.php
index e2486a9ff1d..7967f877024 100644
--- a/lib/private/user/manager.php
+++ b/lib/private/user/manager.php
@@ -33,6 +33,7 @@
namespace OC\User;
use OC\Hooks\PublicEmitter;
+use OCP\IUserBackend;
use OCP\IUserManager;
use OCP\IConfig;
@@ -170,24 +171,24 @@ class Manager extends PublicEmitter implements IUserManager {
/**
* Check if the password is valid for the user
*
- * @param string $loginname
+ * @param string $loginName
* @param string $password
* @return mixed the User object on success, false otherwise
*/
- public function checkPassword($loginname, $password) {
- $loginname = str_replace("\0", '', $loginname);
+ public function checkPassword($loginName, $password) {
+ $loginName = str_replace("\0", '', $loginName);
$password = str_replace("\0", '', $password);
foreach ($this->backends as $backend) {
if ($backend->implementsActions(\OC_User_Backend::CHECK_PASSWORD)) {
- $uid = $backend->checkPassword($loginname, $password);
+ $uid = $backend->checkPassword($loginName, $password);
if ($uid !== false) {
return $this->getUserObject($uid, $backend);
}
}
}
- \OC::$server->getLogger()->warning('Login failed: \''. $loginname .'\' (Remote IP: \''. \OC::$server->getRequest()->getRemoteAddress(). '\')', ['app' => 'core']);
+ \OC::$server->getLogger()->warning('Login failed: \''. $loginName .'\' (Remote IP: \''. \OC::$server->getRequest()->getRemoteAddress(). '\')', ['app' => 'core']);
return false;
}
@@ -304,7 +305,7 @@ class Manager extends PublicEmitter implements IUserManager {
if ($backend->implementsActions(\OC_User_Backend::COUNT_USERS)) {
$backendUsers = $backend->countUsers();
if($backendUsers !== false) {
- if($backend instanceof \OCP\IUserBackend) {
+ if($backend instanceof IUserBackend) {
$name = $backend->getBackendName();
} else {
$name = get_class($backend);
@@ -325,7 +326,7 @@ class Manager extends PublicEmitter implements IUserManager {
* If the callback returns false no further users will be retrieved.
*
* @param \Closure $callback
- * @return void
+ * @param string $search
* @since 9.0.0
*/
public function callForAllUsers(\Closure $callback, $search = '') {
@@ -336,6 +337,9 @@ class Manager extends PublicEmitter implements IUserManager {
$users = $backend->getUsers($search, $limit, $offset);
foreach ($users as $user) {
$user = $this->get($user);
+ if (is_null($user)) {
+ continue;
+ }
$return = $callback($user);
if ($return === false) {
break;
diff --git a/lib/public/iusermanager.php b/lib/public/iusermanager.php
index 057bd8e89fb..6442938a99b 100644
--- a/lib/public/iusermanager.php
+++ b/lib/public/iusermanager.php
@@ -90,12 +90,12 @@ interface IUserManager {
/**
* Check if the password is valid for the user
*
- * @param string $loginname
+ * @param string $loginName
* @param string $password
* @return mixed the User object on success, false otherwise
* @since 8.0.0
*/
- public function checkPassword($loginname, $password);
+ public function checkPassword($loginName, $password);
/**
* search by user id
@@ -138,7 +138,7 @@ interface IUserManager {
/**
* @param \Closure $callback
- * @return void
+ * @param string $search
* @since 9.0.0
*/
public function callForAllUsers (\Closure $callback, $search = '');