class DummyUserSession implements IUserSession {
- /**
- * @var IUser
- */
- private $user;
+ private ?IUser $user = null;
public function login($uid, $password) {
}
$this->user = $user;
}
+ public function setVolatileActiveUser(?IUser $user): void {
+ $this->user = $user;
+ }
+
public function getUser() {
return $this->user;
}
$this->activeUser = $user;
}
+ /**
+ * Temporarily set the currently active user without persisting in the session
+ *
+ * @param IUser|null $user
+ */
+ public function setVolatileActiveUser(?IUser $user): void {
+ $this->activeUser = $user;
+ }
+
/**
* get the current active user
*
use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserManager;
+use OCP\IUserSession;
use OCP\Server;
use OCP\User\Events\BeforeUserLoggedInEvent;
use OCP\User\Events\UserLoggedInEvent;
* @return string|false uid or false
*/
public static function getUser() {
- $uid = \OC::$server->getSession() ? \OC::$server->getSession()->get('user_id') : null;
+ $uid = Server::get(IUserSession::class)->getUser()?->getUID();
if (!is_null($uid) && self::$incognitoMode === false) {
return $uid;
} else {
*/
public function setUser($user);
+ /**
+ * Temporarily set the currently active user without persisting in the session
+ *
+ * @param IUser|null $user
+ * @since 29.0.0
+ */
+ public function setVolatileActiveUser(?IUser $user): void;
+
/**
* get the current active user
*