1111use OCP \DB \QueryBuilder \IQueryBuilder ;
1212use OCP \EventDispatcher \GenericEvent ;
1313use OCP \EventDispatcher \IEventDispatcher ;
14+ use OCP \Files \IRootFolder ;
1415use OCP \Files \NotPermittedException ;
1516use OCP \IDBConnection ;
1617use OCP \IGroupManager ;
1920use OCP \IUserBackend ;
2021use OCP \IUserManager ;
2122use OCP \User \Backend \ICountUsersBackend ;
23+ use OCP \User \Events \UserFirstTimeLoggedInEvent ;
2224use OCP \UserInterface ;
2325
2426class 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
0 commit comments