3232use  OCP \AppFramework \Http \DataResponse ;
3333use  OCP \AppFramework \Http \Response ;
3434use  OCP \IRequest ;
35+ use  OCP \IUserManager ;
36+ use  OCP \IUserSession ;
3537
3638class  SessionController extends  Controller {
3739	private  ApiService $ apiService
3840	private  SessionService $ sessionService
3941	private  NotificationService $ notificationService
42+ 	private  IUserManager $ userManager
43+ 	private  IUserSession $ userSession
4044
41- 	public  function  __construct (string  $ appNameIRequest $ requestApiService $ apiServiceSessionService $ sessionServiceNotificationService $ notificationService
45+ 	public  function  __construct (string  $ appNameIRequest $ requestApiService $ apiServiceSessionService $ sessionServiceNotificationService $ notificationService,  IUserManager   $ userManager ,  IUserSession   $ userSession 
4246		parent ::__construct ($ appName$ request
4347		$ this apiService  = $ apiService
4448		$ this sessionService  = $ sessionService
4549		$ this notificationService  = $ notificationService
50+ 		$ this userManager  = $ userManager
51+ 		$ this userSession  = $ userSession
4652	}
4753
4854	/** 
@@ -73,6 +79,7 @@ public function close(int $documentId, int $sessionId, string $sessionToken): Da
7379	 * @PublicPage 
7480	 */ 
7581	public  function  push (int  $ documentIdint  $ sessionIdstring  $ sessionTokenint  $ versionarray  $ stepsDataResponse 
82+ 		$ this loginSessionUser ($ documentId$ sessionId$ sessionToken
7683		return  $ this apiService ->push ($ documentId$ sessionId$ sessionToken$ version$ steps
7784	}
7885
@@ -81,6 +88,7 @@ public function push(int $documentId, int $sessionId, string $sessionToken, int
8188	 * @PublicPage 
8289	 */ 
8390	public  function  sync (int  $ documentIdint  $ sessionIdstring  $ sessionTokenint  $ version0 , string  $ autosaveContentnull , bool  $ forcefalse , bool  $ manualSavefalse ): DataResponse 
91+ 		$ this loginSessionUser ($ documentId$ sessionId$ sessionToken
8492		return  $ this apiService ->sync ($ documentId$ sessionId$ sessionToken$ version$ autosaveContent$ force$ manualSave
8593	}
8694
@@ -102,4 +110,12 @@ public function mention(int $documentId, int $sessionId, string $sessionToken, s
102110
103111		return  new  DataResponse ($ this notificationService ->mention ($ documentId$ mention
104112	}
113+ 
114+ 	private  function  loginSessionUser (int  $ documentIdint  $ sessionIdstring  $ sessionToken
115+ 		$ currentSession$ this sessionService ->getSession ($ documentId$ sessionId$ sessionToken
116+ 		$ user$ this userManager ->get ($ currentSessiongetUserId ());
117+ 		if  ($ usernull ) {
118+ 			$ this userSession ->setUser ($ user
119+ 		}
120+ 	}
105121}
0 commit comments