summaryrefslogtreecommitdiff
path: root/crates/vcs_actions/src/actions/local_actions.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-01-05 15:10:18 +0800
committer魏曹先生 <1992414357@qq.com>2026-01-05 15:10:18 +0800
commitb4661072366c4dcc63e914f2ec8625ad73b14645 (patch)
treea7883ccca153c062e79d9ebb8a27a6521b112de3 /crates/vcs_actions/src/actions/local_actions.rs
parent38b6f1c11066e30cb0e78d0f7630cf3d85985864 (diff)
Add RejectAll mode for share merging and fix share ID trimming
- Add ShareMergeMode::RejectAll variant to reject all incoming shares - Trim server suffix from share IDs when updating local sheet info - Sign vault as modified after successful share mapping merge - Fix get_current_sheet_name call to use correct parameter value
Diffstat (limited to 'crates/vcs_actions/src/actions/local_actions.rs')
-rw-r--r--crates/vcs_actions/src/actions/local_actions.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/crates/vcs_actions/src/actions/local_actions.rs b/crates/vcs_actions/src/actions/local_actions.rs
index 1f764c9..53a1ff8 100644
--- a/crates/vcs_actions/src/actions/local_actions.rs
+++ b/crates/vcs_actions/src/actions/local_actions.rs
@@ -13,7 +13,8 @@ use serde::{Deserialize, Serialize};
use tcp_connection::error::TcpTargetError;
use vcs_data::{
constants::{
- CLIENT_PATH_CACHED_SHEET, CLIENT_PATH_LOCAL_SHEET, REF_SHEET_NAME, VAULT_HOST_NAME,
+ CLIENT_PATH_CACHED_SHEET, CLIENT_PATH_LOCAL_SHEET, REF_SHEET_NAME,
+ SERVER_SUFFIX_SHEET_SHARE_FILE, VAULT_HOST_NAME,
},
data::{
local::{
@@ -172,7 +173,7 @@ pub async fn update_to_latest_info_action(
for sheet in vault.sheets().await? {
// Build share parts
if let Some(holder) = sheet.holder() {
- if holder == &member_id {
+ if holder == &member_id || holder == VAULT_HOST_NAME {
let mut sheet_shares: HashMap<SheetShareId, Share> = HashMap::new();
for share in sheet.get_shares().await? {
// Get SharePath
@@ -183,7 +184,10 @@ pub async fn update_to_latest_info_action(
let Some(share_id) = share_path.file_name() else {
continue;
};
- sheet_shares.insert(share_id.display().to_string(), share);
+ let share_id = share_id.display().to_string();
+ let share_id_trimed =
+ share_id.trim_end_matches(SERVER_SUFFIX_SHEET_SHARE_FILE);
+ sheet_shares.insert(share_id_trimed.to_string(), share);
}
shares_in_my_sheets.insert(sheet.name().clone(), sheet_shares);
}