]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add method to list disabled users to IProvideEnabledStateBackend 34443/head
authorCôme Chilliet <come.chilliet@nextcloud.com>
Thu, 29 Jun 2023 14:15:12 +0000 (16:15 +0200)
committerCôme Chilliet <come.chilliet@nextcloud.com>
Thu, 29 Jun 2023 14:15:12 +0000 (16:15 +0200)
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
apps/user_ldap/lib/User_LDAP.php
apps/user_ldap/lib/User_Proxy.php
lib/public/User/Backend/IProvideEnabledStateBackend.php

index d4a851bd7aa7e78912db936c8b76a9afd9e55ccb..f9ae6bbee66d0431b75343b63519f784961e8327 100644 (file)
@@ -681,4 +681,8 @@ class User_LDAP extends BackendUtility implements IUserBackend, UserInterface, I
                $setDatabaseValue($enabled);
                return $enabled;
        }
+
+       public function getDisabledUserList(int $offset = 0, ?int $limit = null): array {
+               throw new \Exception('This is implemented directly in User_Proxy');
+       }
 }
index e0f1bb2d522afdbde98fb8e3ce72ef2730b9a561..0449c89bd2479da1234b15eb514036cfb940fa3f 100644 (file)
@@ -32,6 +32,7 @@
 namespace OCA\User_LDAP;
 
 use OCA\User_LDAP\User\DeletedUsersIndex;
+use OCA\User_LDAP\User\OfflineUser;
 use OCA\User_LDAP\User\User;
 use OCP\IConfig;
 use OCP\IUserBackend;
@@ -461,4 +462,15 @@ class User_Proxy extends Proxy implements IUserBackend, UserInterface, IUserLDAP
        public function setUserEnabled(string $uid, bool $enabled, callable $queryDatabaseValue, callable $setDatabaseValue): bool {
                return $this->handleRequest($uid, 'setUserEnabled', [$uid, $enabled, $queryDatabaseValue, $setDatabaseValue]);
        }
+
+       public function getDisabledUserList(int $offset = 0, ?int $limit = null): array {
+               return array_map(
+                       fn (OfflineUser $user) => $user->getOCName(),
+                       array_slice(
+                               $this->deletedUsersIndex->getUsers(),
+                               $offset,
+                               $limit
+                       )
+               );
+       }
 }
index 8a4755ffbef0bc987150c737408c866d111c4e34..d03beacd7b858e57bf5c03bd983907f95e82ffdf 100644 (file)
@@ -44,4 +44,13 @@ interface IProvideEnabledStateBackend {
         * @param callable(bool):void $setDatabaseValue A callable to set the enabled state in the database.
         */
        public function setUserEnabled(string $uid, bool $enabled, callable $queryDatabaseValue, callable $setDatabaseValue): bool;
+
+       /**
+        * Get the list of disabled users, to merge with the ones disabled in database
+        *
+        * @since 28.0.0
+        *
+        * @return string[]
+        */
+       public function getDisabledUserList(int $offset = 0, ?int $limit = null): array;
 }