2020use OC \Http \CookieHelper ;
2121use OC \Security \CSRF \CsrfTokenManager ;
2222use OC_User ;
23- use OC_Util ;
2423use OCA \DAV \Connector \Sabre \Auth ;
2524use OCP \AppFramework \Db \TTransactional ;
2625use OCP \AppFramework \Utility \ITimeFactory ;
2726use OCP \Authentication \Exceptions \ExpiredTokenException ;
2827use OCP \Authentication \Exceptions \InvalidTokenException ;
2928use OCP \EventDispatcher \GenericEvent ;
3029use OCP \EventDispatcher \IEventDispatcher ;
30+ use OCP \Files \IRootFolder ;
31+ use OCP \Files \ISetupManager ;
3132use OCP \Files \NotPermittedException ;
3233use OCP \IConfig ;
3334use OCP \IDBConnection ;
4849use OCP \User \Events \UserLoggedInWithCookieEvent ;
4950use OCP \User \Events \UserLoggedOutEvent ;
5051use OCP \Util ;
52+ use Psr \Container \ContainerInterface ;
5153use Psr \Log \LoggerInterface ;
5254
5355/**
6769class Session implements IUserSession, Emitter {
6870 use TTransactional;
6971
70- /** @var User $activeUser */
71- protected $ activeUser ;
72+ protected ?User $ activeUser = null ;
7273
7374 public function __construct (
7475 private Manager $ manager ,
@@ -80,6 +81,8 @@ public function __construct(
8081 private ILockdownManager $ lockdownManager ,
8182 private LoggerInterface $ logger ,
8283 private IEventDispatcher $ dispatcher ,
84+ private ContainerInterface $ container ,
85+ private IRootFolder $ rootFolder ,
8386 ) {
8487 }
8588
@@ -516,24 +519,23 @@ protected function prepareUserLogin($firstTimeLogin, $refreshCsrfToken = true) {
516519 }
517520
518521 if ($ firstTimeLogin ) {
519- //we need to pass the user name , which may differ from login name
520- $ user = $ this ->getUser ()-> getUID () ;
521- OC_Util:: setupFS ($ user );
522+ //we need to pass the username , which may differ from login name
523+ $ user = $ this ->getUser ();
524+ $ this -> container -> get (ISetupManager::class)-> setupForUser ($ user );
522525
523- // TODO: lock necessary?
524- //trigger creation of user home and /files folder
525- $ userFolder = \OC ::$ server ->getUserFolder ($ user );
526+ // trigger creation of user home and /files folder
527+ $ userFolder = $ this ->rootFolder ->getUserFolder ($ user ->getUID ());
526528
527529 try {
528530 // copy skeleton
529- \OC_Util::copySkeleton ($ user , $ userFolder );
530- } catch (NotPermittedException $ ex ) {
531+ \OC_Util::copySkeleton ($ user-> getUID () , $ userFolder );
532+ } catch (NotPermittedException ) {
531533 // read only uses
532534 }
533535
534536 // trigger any other initialization
535- Server:: get (IEventDispatcher::class)-> dispatch (IUser::class . '::firstLogin ' , new GenericEvent ($ this -> getUser () ));
536- Server:: get (IEventDispatcher::class)-> dispatchTyped (new UserFirstTimeLoggedInEvent ($ this -> getUser () ));
537+ $ this -> dispatcher -> dispatch (IUser::class . '::firstLogin ' , new GenericEvent ($ user ));
538+ $ this -> dispatcher -> dispatchTyped (new UserFirstTimeLoggedInEvent ($ user ));
537539 }
538540 }
539541
0 commit comments