Skip to content

Commit 46c9ef3

Browse files
committed
feat(UserManager): Add method to create lazy user
This is useful when implementing the ISearchableGroupBackend for example. Signed-off-by: Carl Schwan <carl@carlschwan.eu>
1 parent d64c8bf commit 46c9ef3

3 files changed

Lines changed: 18 additions & 2 deletions

File tree

lib/private/Group/Database.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
namespace OC\Group;
1010

11-
use OC\User\LazyUser;
1211
use OCP\DB\Exception;
1312
use OCP\DB\QueryBuilder\IQueryBuilder;
1413
use OCP\Group\Backend\ABackend;
@@ -425,7 +424,7 @@ public function searchInGroup(string $gid, string $search = '', int $limit = -1,
425424
$users = [];
426425
$userManager = Server::get(IUserManager::class);
427426
while ($row = $result->fetchAssociative()) {
428-
$users[$row['uid']] = new LazyUser($row['uid'], $userManager, $row['displayname'] ?? null);
427+
$users[$row['uid']] = $userManager->getLazyUser($row['uid'], $row['displayname'] ?? null);
429428
}
430429
$result->closeCursor();
431430

lib/private/User/Manager.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,10 @@ public function createUserFromBackend($uid, $password, UserInterface $backend):
460460
return false;
461461
}
462462

463+
public function getLazyUser(string $uid, string $displayName = null, ?IUserBackend $backend = null): IUser {
464+
return new LazyUser($uid, $this, $displayName, $backend);
465+
}
466+
463467
/**
464468
* returns how many users per backend exist (if supported by backend)
465469
*

lib/public/IUserManager.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88

99
namespace OCP;
1010

11+
use OC\User\LazyUser;
12+
use OCP\AppFramework\Attribute\Implementable;
13+
1114
/**
1215
* Class Manager
1316
*
@@ -24,6 +27,7 @@
2427
*
2528
* @since 8.0.0
2629
*/
30+
#[Implementable(since: '8.0.0')]
2731
interface IUserManager {
2832
/**
2933
* @since 26.0.0
@@ -161,6 +165,15 @@ public function createUser($uid, $password);
161165
*/
162166
public function createUserFromBackend($uid, $password, UserInterface $backend);
163167

168+
/**
169+
* Create a lazy user.
170+
*
171+
* This will create a lazy user object which will be then loaded when needed.
172+
*
173+
* @since 35.0.0
174+
*/
175+
public function getLazyUser(string $uid, string $displayName = null, ?IUserBackend $backend = null): IUser;
176+
164177
/**
165178
* Get how many users per backend exist (if supported by backend)
166179
*

0 commit comments

Comments
 (0)