aboutsummaryrefslogtreecommitdiff
path: root/lockchain-core/src/users/rights.rs
diff options
context:
space:
mode:
Diffstat (limited to 'lockchain-core/src/users/rights.rs')
-rw-r--r--lockchain-core/src/users/rights.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/lockchain-core/src/users/rights.rs b/lockchain-core/src/users/rights.rs
new file mode 100644
index 0000000..4404253
--- /dev/null
+++ b/lockchain-core/src/users/rights.rs
@@ -0,0 +1,22 @@
+use traits::AutoEncoder;
+
+/// Specifies access to a resource
+#[derive(Hash, Serialize, Deserialize, Clone, PartialEq, Eq)]
+pub enum Access {
+ /// Allows access to vault metadata & index files
+ Vault(Role),
+ /// Allows access to a record resource inside a vault
+ Record(Role, String),
+}
+
+impl AutoEncoder for Access {}
+
+/// Specifies the capabilities of a user
+#[derive(Hash, Serialize, Deserialize, Clone, PartialEq, Eq)]
+pub enum Role {
+ Reader,
+ Editor,
+ Admin,
+}
+
+impl AutoEncoder for Role {}