Browse Source

Merge pull request #22043 from nextcloud/fix/21892/reset-internal-cookie-state

reset the cookie internally in new API when abandoning paged results op
tags/v20.0.0beta1
Morris Jobke 3 years ago
parent
commit
21095beb67
No account linked to committer's email address
1 changed files with 11 additions and 1 deletions
  1. 11
    1
      apps/user_ldap/lib/PagedResults/Php73.php

+ 11
- 1
apps/user_ldap/lib/PagedResults/Php73.php View File

@@ -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'] ?? '',
]
]];


Loading…
Cancel
Save