diff options
| author | 魏曹先生 <1992414357@qq.com> | 2025-09-20 16:29:22 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2025-09-20 16:29:22 +0800 |
| commit | d00835377141b1e6089a7222a8ecc6af2a3613de (patch) | |
| tree | 93ed9ea3a7968add33c019d86e033b2327f2f6f4 /crates/env/src/vault | |
| parent | 89a204dc2a52f26ca0352be0d7708b0aa5e0a6cc (diff) | |
Add env crates
Diffstat (limited to 'crates/env/src/vault')
| -rw-r--r-- | crates/env/src/vault/config.rs | 34 | ||||
| -rw-r--r-- | crates/env/src/vault/manage.rs | 1 |
2 files changed, 35 insertions, 0 deletions
diff --git a/crates/env/src/vault/config.rs b/crates/env/src/vault/config.rs new file mode 100644 index 0000000..dc815c2 --- /dev/null +++ b/crates/env/src/vault/config.rs @@ -0,0 +1,34 @@ +use cfg_file::ConfigFile; +use serde::{Deserialize, Serialize}; +use uuid::Uuid; + +use crate::constants::SERVER_FILE_VAULT; +use crate::member::Member; + +#[derive(Default, Serialize, Deserialize, ConfigFile)] +#[cfg_file(path = SERVER_FILE_VAULT)] +pub struct VaultConfig { + vault_name: String, + vault_admin_list: Vec<Uuid>, +} + +impl VaultConfig { + // Change name of the vault. + pub fn change_name(&mut self, name: impl Into<String>) { + self.vault_name = name.into() + } + + // Add admin + pub fn add_admin(&mut self, member: &Member) { + let uuid = member.uuid(); + if !self.vault_admin_list.contains(&uuid) { + self.vault_admin_list.push(uuid); + } + } + + // Remove admin + pub fn remove_admin(&mut self, member: &Member) { + let uuid = member.uuid(); + self.vault_admin_list.retain(|&x| x != uuid); + } +} diff --git a/crates/env/src/vault/manage.rs b/crates/env/src/vault/manage.rs new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/crates/env/src/vault/manage.rs @@ -0,0 +1 @@ + |
