summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2020-07-29 17:39:40 +0200
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>2020-07-31 08:19:23 +0000
commitb791ea755ddbe79d28fe1917e704df96383a0179 (patch)
treee629ecc7f3c12c33da49c3edd6412439b37cd52d /apps/user_ldap
parentdc3b550eff36a0b21696bfaa0c25601d1241892f (diff)
downloadnextcloud-server-b791ea755ddbe79d28fe1917e704df96383a0179.tar.gz
nextcloud-server-b791ea755ddbe79d28fe1917e704df96383a0179.zip
reset the cookie internally in new API when abandoning paged results op
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'apps/user_ldap')
-rw-r--r--apps/user_ldap/lib/PagedResults/Php73.php12
1 files changed, 11 insertions, 1 deletions
diff --git a/apps/user_ldap/lib/PagedResults/Php73.php b/apps/user_ldap/lib/PagedResults/Php73.php
index fffac35c27c..7e182e2eabc 100644
--- a/apps/user_ldap/lib/PagedResults/Php73.php
+++ b/apps/user_ldap/lib/PagedResults/Php73.php
@@ -82,6 +82,12 @@ class Php73 implements IAdapter {
return $this->linkData[$linkId]['serverControls'][LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'] ?? '';
}
+ private function resetCookie(int $linkId): void {
+ if (isset($this->linkData[$linkId]['serverControls'][LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'])) {
+ $this->linkData[$linkId]['serverControls'][LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'] = '';
+ }
+ }
+
public function getRequestCallFunc(): ?string {
return null;
}
@@ -94,6 +100,10 @@ class Php73 implements IAdapter {
$this->linkData[$linkId]['requestArgs'] = [];
$this->linkData[$linkId]['requestArgs']['pageSize'] = $pageSize;
$this->linkData[$linkId]['requestArgs']['isCritical'] = $isCritical;
+
+ if ($pageSize === 0) {
+ $this->resetCookie($linkId);
+ }
}
public function getRequestCallArgs($link): array {
@@ -153,7 +163,7 @@ class Php73 implements IAdapter {
'oid' => LDAP_CONTROL_PAGEDRESULTS,
'value' => [
'size' => $this->linkData[$linkId]['requestArgs']['pageSize'],
- 'cookie' => $this->linkData[$linkId]['serverControls'][LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'] ?? ''
+ 'cookie' => $this->linkData[$linkId]['serverControls'][LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'] ?? '',
]
]];