chore: fix open workspace (#5092)

* chore: fix open workspace

* chore: fix open workspace
This commit is contained in:
Nathan.fooo 2024-04-08 20:55:02 +08:00 committed by GitHub
parent 31798959c7
commit 5c96a2c5cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 12 deletions

View File

@ -7,6 +7,7 @@ use collab_integrate::CollabKVDB;
use flowy_error::{internal_error, ErrorCode, FlowyError, FlowyResult};
use flowy_sqlite::kv::StorePreferences;
use flowy_sqlite::DBConnection;
use flowy_user_pub::entities::UserWorkspace;
use flowy_user_pub::session::Session;
use std::sync::{Arc, Weak};
use tracing::{debug, error, info};
@ -104,6 +105,12 @@ impl AuthenticateUser {
}
}
pub fn set_user_workspace(&self, user_workspace: UserWorkspace) -> FlowyResult<()> {
let mut session = self.get_session()?;
session.user_workspace = user_workspace;
self.set_session(Some(session))
}
pub fn get_session(&self) -> FlowyResult<Session> {
if let Some(session) = (self.session.read()).clone() {
return Ok(session);

View File

@ -134,13 +134,15 @@ impl UserManager {
#[instrument(skip(self), err)]
pub async fn open_workspace(&self, workspace_id: &str) -> FlowyResult<()> {
let uid = self.user_id()?;
let _ = self
let user_workspace = self
.cloud_services
.get_user_service()?
.open_workspace(workspace_id)
.await;
.await?;
if let Some(user_workspace) = self.get_user_workspace(uid, workspace_id) {
self
.authenticate_user
.set_user_workspace(user_workspace.clone())?;
if let Err(err) = self
.user_status_callback
.read()
@ -150,7 +152,7 @@ impl UserManager {
{
error!("Open workspace failed: {:?}", err);
}
}
Ok(())
}