Fixed exception thrown when logging in as an LDAP user due to a direc…#34141
Fixed exception thrown when logging in as an LDAP user due to a direc…#34141Adambean wants to merge 1 commit intonextcloud:masterfrom
Conversation
…tory not having password policy attributes available. nextcloud#33622 Signed-off-by: Adam Reece <[email protected]>
| $this->connection->writeToCache($cacheKey, $result); | ||
| } | ||
|
|
||
| if (is_null($result) || !is_array($result) || empty($result[0]) || !is_array($result[0])) { |
Check failure
Code scanning / Psalm
TypeDoesNotContainNull
There was a problem hiding this comment.
Check is wrong. This variable being null as a result of the LDAP search is precisely the cause of the bug. A null check needs to happen here.
There was a problem hiding this comment.
Are you sure it is null and not false?
I’m pretty sure it can never be null.
Also, if you do not have ppolicy you should leave "Default password policy DN" empty and this code will never run.
There was a problem hiding this comment.
Hello,
Just checked again on OC 25.0.2. $result is an empty array, which would be why my additional checks (is not an array, or 1st element unset, or 1st element is not an array) trap the problem before the 1st element of the (expected to be) array is accessed.
| $this->connection->writeToCache($cacheKey, $result); | ||
| } | ||
|
|
||
| if (is_null($result) || !is_array($result) || empty($result[0]) || !is_array($result[0])) { |
Check failure
Code scanning / Psalm
TypeDoesNotContainType
| $this->connection->writeToCache($cacheKey, $result); | ||
| } | ||
|
|
||
| if (is_null($result) || !is_array($result) || empty($result[0]) || !is_array($result[0])) { |
Check failure
Code scanning / Psalm
TypeDoesNotContainNull
| $this->connection->writeToCache($cacheKey, $result); | ||
| } | ||
|
|
||
| if (is_null($result) || !is_array($result) || empty($result[0]) || !is_array($result[0])) { |
Check failure
Code scanning / Psalm
TypeDoesNotContainType
| $this->connection->writeToCache($cacheKey, $result); | ||
| } | ||
|
|
||
| if (is_null($result) || !is_array($result) || empty($result[0]) || !is_array($result[0])) { |
There was a problem hiding this comment.
Are you sure it is null and not false?
I’m pretty sure it can never be null.
Also, if you do not have ppolicy you should leave "Default password policy DN" empty and this code will never run.
|
Hello, Exception: array_key_exists(): Argument #2 ($array) must be of type array, null given in file '/var/www/html/nextcloud/do.do.fr/apps/user_ldap/lib/User/User.php' line 653 And i request error when i try login. |
You already asked that in the issue. Your comment isn't directly related to this pull request. |
|
As there is no feedback since a while I will close this ticket. If this is still happening please make sure to upgrade to the latest version. After that, feel free to reopen. |
Fixed exception thrown when logging in as an LDAP user due to a directory not having password policy attributes available.
#33622
Signed-off-by: Adam Reece [email protected]