]> source.dussan.org Git - nextcloud-server.git/commitdiff
reset the cookie internally in new API when abandoning paged results op 22043/head
authorArthur Schiwon <blizzz@arthur-schiwon.de>
Wed, 29 Jul 2020 15:39:40 +0000 (17:39 +0200)
committerArthur Schiwon <blizzz@arthur-schiwon.de>
Wed, 29 Jul 2020 15:48:56 +0000 (17:48 +0200)
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
apps/user_ldap/lib/PagedResults/Php73.php

index fffac35c27ccdae45eb3c7704295675cfe504c59..7e182e2eabcd24982f879d8c67b131efa69ffc64 100644 (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'] ?? '',
                        ]
                ]];