summaryrefslogtreecommitdiff
path: root/crates/env/src/vault
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-09-20 16:29:22 +0800
committer魏曹先生 <1992414357@qq.com>2025-09-20 16:29:22 +0800
commitd00835377141b1e6089a7222a8ecc6af2a3613de (patch)
tree93ed9ea3a7968add33c019d86e033b2327f2f6f4 /crates/env/src/vault
parent89a204dc2a52f26ca0352be0d7708b0aa5e0a6cc (diff)
Add env crates
Diffstat (limited to 'crates/env/src/vault')
-rw-r--r--crates/env/src/vault/config.rs34
-rw-r--r--crates/env/src/vault/manage.rs1
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 @@
+