summaryrefslogtreecommitdiff
path: root/crates/vcs/src/workspace/vault/member.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-09-25 17:20:13 +0800
committer魏曹先生 <1992414357@qq.com>2025-09-25 17:20:13 +0800
commite18134cc74e8f2ec3a88704074f94c74944db2bc (patch)
treeb1dc3cca87f46b8db6bf5956e74e8b27f3a49f6e /crates/vcs/src/workspace/vault/member.rs
parent647cc441eece20218d7387f37d94042e88042057 (diff)
Move `workspace` mod to `data`
Diffstat (limited to 'crates/vcs/src/workspace/vault/member.rs')
-rw-r--r--crates/vcs/src/workspace/vault/member.rs105
1 files changed, 0 insertions, 105 deletions
diff --git a/crates/vcs/src/workspace/vault/member.rs b/crates/vcs/src/workspace/vault/member.rs
deleted file mode 100644
index 2d00081..0000000
--- a/crates/vcs/src/workspace/vault/member.rs
+++ /dev/null
@@ -1,105 +0,0 @@
-use std::{
- fs,
- io::{Error, ErrorKind},
- path::PathBuf,
-};
-
-use cfg_file::config::ConfigFile;
-
-use crate::{
- constants::{SERVER_FILE_MEMBER_INFO, SERVER_FILE_MEMBER_PUB},
- workspace::{
- member::Member,
- vault::{MemberId, Vault},
- },
-};
-
-const ID_PARAM: &str = "{member_id}";
-
-/// Member Manage
-impl Vault {
- /// Read member from configuration file
- pub async fn member(&self, id: &MemberId) -> Result<Member, std::io::Error> {
- if let Some(cfg_file) = self.member_cfg(id) {
- let member = Member::read_from(cfg_file).await?;
- return Ok(member);
- }
-
- Err(Error::new(ErrorKind::NotFound, "Member not found!"))
- }
-
- /// Update member info
- pub async fn update_member(&self, member: Member) -> Result<(), std::io::Error> {
- // Ensure member exist
- if self.member_cfg(&member.id()).is_some() {
- let member_cfg_path = self.member_cfg_path(&member.id());
- Member::write_to(&member, member_cfg_path).await?;
- return Ok(());
- }
-
- Err(Error::new(ErrorKind::NotFound, "Member not found!"))
- }
-
- /// Register a member to vault
- pub async fn register_member_to_vault(&self, member: Member) -> Result<(), std::io::Error> {
- // Ensure member not exist
- if self.member_cfg(&member.id()).is_some() {
- return Err(Error::new(
- ErrorKind::DirectoryNotEmpty,
- format!("Member `{}` already registered!", member.id()),
- ));
- }
-
- // Wrtie config file to member dir
- let member_cfg_path = self.member_cfg_path(&member.id());
- Member::write_to(&member, member_cfg_path).await?;
-
- Ok(())
- }
-
- /// Remove member from vault
- pub fn remove_member_from_vault(&self, id: &MemberId) -> Result<(), std::io::Error> {
- // Ensure member exist
- if let Some(member_cfg_path) = self.member_cfg(id) {
- fs::remove_file(member_cfg_path)?;
- }
-
- Ok(())
- }
-
- /// Try to get the member's configuration file to determine if the member exists
- pub fn member_cfg(&self, id: &MemberId) -> Option<PathBuf> {
- let cfg_file = self.member_cfg_path(id);
- if cfg_file.exists() {
- Some(cfg_file)
- } else {
- None
- }
- }
-
- /// Try to get the member's public key file to determine if the member has login permission
- pub fn member_key(&self, id: &MemberId) -> Option<PathBuf> {
- let key_file = self.member_key_path(id);
- if key_file.exists() {
- Some(key_file)
- } else {
- None
- }
- }
-
- /// Get the member's configuration file path, but do not check if the file exists
- pub fn member_cfg_path(&self, id: &MemberId) -> PathBuf {
-
- self
- .vault_path
- .join(SERVER_FILE_MEMBER_INFO.replace(ID_PARAM, id.to_string().as_str()))
- }
-
- /// Get the member's public key file path, but do not check if the file exists
- pub fn member_key_path(&self, id: &MemberId) -> PathBuf {
-
- self
- .vault_path
- .join(SERVER_FILE_MEMBER_PUB.replace(ID_PARAM, id.to_string().as_str()))
- }
-}