From 945804db3ae6cd298ca14d2db1ea5e1bcca17496 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Fri, 26 Dec 2025 08:20:35 +0800 Subject: Fix share name generation by removing file suffix The share ID generation no longer includes the sheet file suffix. This simplifies share names to just "sharer@random" format. --- crates/vcs_data/src/data/vault/sheet_share.rs | 12 +++--------- .../src/test_sheet_share_creation_and_management.rs | 15 +++++---------- 2 files changed, 8 insertions(+), 19 deletions(-) (limited to 'crates/vcs_data') diff --git a/crates/vcs_data/src/data/vault/sheet_share.rs b/crates/vcs_data/src/data/vault/sheet_share.rs index 703d935..b62c74b 100644 --- a/crates/vcs_data/src/data/vault/sheet_share.rs +++ b/crates/vcs_data/src/data/vault/sheet_share.rs @@ -7,10 +7,7 @@ use string_proc::{format_path, snake_case}; use tokio::fs; use crate::{ - constants::{ - SERVER_FILE_SHEET_SHARE, SERVER_PATH_SHARES, SERVER_SUFFIX_SHEET_FILE, - SERVER_SUFFIX_SHEET_FILE_NO_DOT, - }, + constants::{SERVER_FILE_SHEET_SHARE, SERVER_PATH_SHARES, SERVER_SUFFIX_SHEET_FILE_NO_DOT}, data::{ member::MemberId, sheet::{Sheet, SheetMappingMetadata, SheetName, SheetPathBuf}, @@ -77,7 +74,7 @@ impl Vault { /// Get the path of a share item in a sheet pub fn share_file_path(&self, sheet_name: &SheetName, share_id: &SheetShareId) -> PathBuf { let sheet_name = snake_case!(sheet_name.clone()); - let share_id = snake_case!(share_id.clone()); + let share_id = share_id.clone(); // Format the path to remove "./" prefix and normalize it let path_str = SERVER_FILE_SHEET_SHARE @@ -376,10 +373,7 @@ impl Share { .take(8) .map(char::from) .collect(); - format!( - "{}@{}{}", - sharer_snake, random_part, SERVER_SUFFIX_SHEET_FILE - ) + format!("{}@{}", sharer_snake, random_part) } /// Delete a share (reject or remove the share item) diff --git a/crates/vcs_data/vcs_data_test/src/test_sheet_share_creation_and_management.rs b/crates/vcs_data/vcs_data_test/src/test_sheet_share_creation_and_management.rs index d5ccbc2..89891d6 100644 --- a/crates/vcs_data/vcs_data_test/src/test_sheet_share_creation_and_management.rs +++ b/crates/vcs_data/vcs_data_test/src/test_sheet_share_creation_and_management.rs @@ -2,7 +2,7 @@ use std::io::Error; use cfg_file::config::ConfigFile; use vcs_data::{ - constants::{SERVER_FILE_VAULT, SERVER_SUFFIX_SHEET_FILE}, + constants::SERVER_FILE_VAULT, data::{ member::{Member, MemberId}, sheet::{SheetName, SheetPathBuf}, @@ -622,15 +622,10 @@ async fn test_share_id_generation() -> Result<(), std::io::Error> { assert_ne!(id1, id3); assert_ne!(id2, id3); - // IDs should contain sharer name and file suffix - assert!(id1.contains("test_sharer")); - assert!(id1.ends_with(SERVER_SUFFIX_SHEET_FILE)); - - assert!(id2.contains("test_sharer")); - assert!(id2.ends_with(SERVER_SUFFIX_SHEET_FILE)); - - assert!(id3.contains("test_sharer")); - assert!(id3.ends_with(SERVER_SUFFIX_SHEET_FILE)); + // IDs should start with sharer name + assert!(id1.starts_with(&format!("test_sharer@"))); + assert!(id2.starts_with(&format!("test_sharer@"))); + assert!(id3.starts_with(&format!("test_sharer@"))); Ok(()) } -- cgit