Skip to content

Commit 3b7cf08

Browse files
committed
refactor(UserBackend): Port away from deprecated stuff
All of it is available since NC 28 Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
1 parent ee39c92 commit 3b7cf08

2 files changed

Lines changed: 46 additions & 11 deletions

File tree

lib/UserBackend.php

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use OCP\DB\QueryBuilder\IQueryBuilder;
1212
use OCP\EventDispatcher\GenericEvent;
1313
use OCP\EventDispatcher\IEventDispatcher;
14+
use OCP\Files\IRootFolder;
1415
use OCP\Files\NotPermittedException;
1516
use OCP\IDBConnection;
1617
use OCP\IGroupManager;
@@ -19,6 +20,7 @@
1920
use OCP\IUserBackend;
2021
use OCP\IUserManager;
2122
use OCP\User\Backend\ICountUsersBackend;
23+
use OCP\User\Events\UserFirstTimeLoggedInEvent;
2224
use OCP\UserInterface;
2325

2426
class UserBackend implements IUserBackend, UserInterface, ICountUsersBackend {
@@ -33,6 +35,7 @@ public function __construct(
3335
private IEventDispatcher $eventDispatcher,
3436
private IGroupManager $groupManager,
3537
private IUserManager $userManager,
38+
private IRootFolder $rootFolder,
3639
) {
3740
}
3841

@@ -66,7 +69,7 @@ public function implementsActions($actions): bool {
6669
}
6770

6871
/**
69-
* Creates an user if it does not exists
72+
* Creates a user if it does not exist.
7073
*
7174
* @param string $uid
7275
*/
@@ -76,17 +79,16 @@ public function createUserIfNotExists(string $uid): void {
7679
'uid' => $uid,
7780
];
7881

79-
/* @var $qb IQueryBuilder */
8082
$qb = $this->db->getQueryBuilder();
8183
$qb->insert($this->dbName);
8284
foreach ($values as $column => $value) {
8385
$qb->setValue($column, $qb->createNamedParameter($value));
8486
}
85-
$qb->execute();
87+
$qb->executeStatement();
8688

8789
### Code taken from lib/private/User/Session.php - function prepareUserLogin() ###
8890
//trigger creation of user home and /files folder
89-
$userFolder = \OC::$server->getUserFolder($uid);
91+
$userFolder = $this->rootFolder->getUserFolder($uid);
9092
try {
9193
// copy skeleton
9294
\OC_Util::copySkeleton($uid, $userFolder);
@@ -96,6 +98,7 @@ public function createUserIfNotExists(string $uid): void {
9698
// trigger any other initialization
9799
$user = $this->userManager->get($uid);
98100
$this->eventDispatcher->dispatch(IUser::class . '::firstLogin', new GenericEvent($user));
101+
$this->eventDispatcher->dispatchTyped(new UserFirstTimeLoggedInEvent($user));
99102
}
100103
}
101104

@@ -113,7 +116,7 @@ public function deleteUser($uid): bool {
113116
$qb = $this->db->getQueryBuilder();
114117
$qb->delete($this->dbName)
115118
->where($qb->expr()->eq('uid', $qb->createNamedParameter($uid)))
116-
->execute();
119+
->executeStatement();
117120

118121
return true;
119122
}
@@ -147,7 +150,7 @@ public function getUsers($search = '', $limit = null, $offset = null): array {
147150
if ($offset !== null) {
148151
$qb->setFirstResult($offset);
149152
}
150-
$result = $qb->execute();
153+
$result = $qb->executeQuery();
151154
$users = $result->fetchAll();
152155
$result->closeCursor();
153156

@@ -169,7 +172,7 @@ public function countUsers(): int {
169172
$query = $this->db->getQueryBuilder();
170173
$query->select($query->func()->count('uid'))
171174
->from($this->dbName);
172-
$result = $query->execute();
175+
$result = $query->executeQuery();
173176

174177
return $result->fetchColumn();
175178
}
@@ -200,7 +203,7 @@ public function setDisplayName(string $uid, string $displayName): bool {
200203
$qb->update($this->dbName)
201204
->set('displayname', $qb->createNamedParameter($displayName))
202205
->where($qb->expr()->eq('uid', $qb->createNamedParameter($uid)))
203-
->execute();
206+
->executeStatement();
204207

205208
return true;
206209
}
@@ -226,7 +229,7 @@ public function getDisplayName($uid): string {
226229
->from($this->dbName)
227230
->where($qb->expr()->eq('uid', $qb->createNamedParameter($uid)))
228231
->setMaxResults(1);
229-
$result = $qb->execute();
232+
$result = $qb->executeQuery();
230233
$users = $result->fetchAll();
231234
if (isset($users[0]['displayname'])) {
232235
return $users[0]['displayname'];
@@ -269,7 +272,7 @@ public function getDisplayNames($search = '', $limit = null, $offset = null): ar
269272
if ($offset !== null) {
270273
$qb->setFirstResult($offset);
271274
}
272-
$result = $qb->execute();
275+
$result = $qb->executeQuery();
273276
$users = $result->fetchAll();
274277
$result->closeCursor();
275278

@@ -446,7 +449,7 @@ protected function userExistsInDatabase(string $uid): bool {
446449
->from($this->dbName)
447450
->where($qb->expr()->eq('uid', $qb->createNamedParameter($uid)))
448451
->setMaxResults(1);
449-
$result = $qb->execute();
452+
$result = $qb->executeQuery();
450453
$users = $result->fetchAll();
451454
$result->closeCursor();
452455

tests/stub.phpstub

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,3 +133,35 @@ namespace OC\BackgroundJob {
133133
}
134134
}
135135
}
136+
137+
namespace OC\Hooks {
138+
139+
/**
140+
* Class Emitter
141+
*
142+
* interface for all classes that are able to emit events
143+
*
144+
* @package OC\Hooks
145+
* @deprecated 18.0.0 use events and the \OCP\EventDispatcher\IEventDispatcher service
146+
*/
147+
interface Emitter {
148+
/**
149+
* @param string $scope
150+
* @param string $method
151+
* @param callable $callback
152+
* @return void
153+
* @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::addListener
154+
*/
155+
public function listen($scope, $method, callable $callback) {
156+
}
157+
158+
/**
159+
* @param string $scope optional
160+
* @param string $method optional
161+
* @param callable $callback optional
162+
* @return void
163+
* @deprecated 18.0.0 use \OCP\EventDispatcher\IEventDispatcher::removeListener
164+
*/
165+
public function removeListener($scope = null, $method = null, ?callable $callback = null) {
166+
}
167+
}

0 commit comments

Comments
 (0)