From f6a918848b499b9ec6fab8124d714d64af8afae2 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Fri, 2 Jan 2026 02:22:01 +0800 Subject: Add host mode authentication and reference sheet handling - Return host mode status from auth_member to determine admin privileges - Add reference sheet detection to get_current_sheet_name with allow_ref parameter - Prevent modifications to reference sheets unless in host mode - Use VAULT_HOST_NAME as sheet holder for host mode operations - Add share/merge share action registrations --- crates/vcs_actions/src/actions/user_actions.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'crates/vcs_actions/src/actions/user_actions.rs') diff --git a/crates/vcs_actions/src/actions/user_actions.rs b/crates/vcs_actions/src/actions/user_actions.rs index febfeeb..dc0f71a 100644 --- a/crates/vcs_actions/src/actions/user_actions.rs +++ b/crates/vcs_actions/src/actions/user_actions.rs @@ -43,7 +43,7 @@ pub async fn change_virtual_file_edit_right_action( let (relative_paths, print_info) = arguments; // Auth Member - let member_id = match auth_member(&ctx, instance).await { + let (member_id, is_host_mode) = match auth_member(&ctx, instance).await { Ok(id) => id, Err(e) => { return Ok(ChangeVirtualFileEditRightResult::AuthorizeFailed( @@ -53,7 +53,8 @@ pub async fn change_virtual_file_edit_right_action( }; // Check sheet - let sheet_name = get_current_sheet_name(&ctx, instance, &member_id).await?; + let (sheet_name, _is_ref_sheet) = + get_current_sheet_name(&ctx, instance, &member_id, true).await?; if ctx.is_proc_on_remote() { let mut mut_instance = instance.lock().await; @@ -87,7 +88,9 @@ pub async fn change_virtual_file_edit_right_action( } } else // Throw file - if has_edit_right && behaviour == EditRightChangeBehaviour::Throw { + if (has_edit_right || is_host_mode) + && behaviour == EditRightChangeBehaviour::Throw + { match vault.revoke_virtual_file_edit_right(&mapping.id).await { Ok(_) => { success_throw.push(path.clone()); -- cgit