-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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… #34141
Conversation
…tory not having password policy attributes available. nextcloud#33622 Signed-off-by: Adam Reece <adam@reece.wales>
$result = $this->access->search('objectclass=*', $ppolicyDN, ['pwdgraceauthnlimit', 'pwdmaxage', 'pwdexpirewarning']); | ||
$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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
$result = $this->access->search('objectclass=*', $ppolicyDN, ['pwdgraceauthnlimit', 'pwdmaxage', 'pwdexpirewarning']); | ||
$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
$result = $this->access->search('objectclass=*', $ppolicyDN, ['pwdgraceauthnlimit', 'pwdmaxage', 'pwdexpirewarning']); | ||
$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
$result = $this->access->search('objectclass=*', $ppolicyDN, ['pwdgraceauthnlimit', 'pwdmaxage', 'pwdexpirewarning']); | ||
$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
$result = $this->access->search('objectclass=*', $ppolicyDN, ['pwdgraceauthnlimit', 'pwdmaxage', 'pwdexpirewarning']); | ||
$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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 adam@reece.wales