Skip to main content

linkrs_storage/engine/sync_wrapper/
admin.rs

1use super::SyncWrapper;
2use crate::macros::forward_methods;
3use crate::{StorageAdmin, StorageAuthOps, StorageClient};
4use linkrs_core::{Edge, StorageError};
5
6impl<S: StorageClient + 'static> StorageAuthOps for SyncWrapper<S> {
7    forward_methods!(inner;
8        fn change_password(&mut self, info: &linkrs_core::types::PasswordInfo) -> Result<bool, StorageError>;
9        fn create_user(&mut self, info: &linkrs_core::types::UserInfo) -> Result<bool, StorageError>;
10        fn alter_user(&mut self, info: &linkrs_core::types::UserAlterInfo) -> Result<bool, StorageError>;
11        fn drop_user(&mut self, username: &str) -> Result<bool, StorageError>;
12        fn grant_role(
13            &mut self,
14            username: &str,
15            space_id: i64,
16            role: linkrs_core::RoleType,
17        ) -> Result<bool, StorageError>;
18        fn revoke_role(&mut self, username: &str, space_id: i64) -> Result<bool, StorageError>;
19    );
20
21    fn user_exists(&self, username: &str) -> bool {
22        self.inner.user_exists(username)
23    }
24
25    fn list_users(&self) -> Vec<String> {
26        self.inner.list_users()
27    }
28
29    fn get_user(&self, username: &str) -> Option<linkrs_core::types::UserInfo> {
30        self.inner.get_user(username)
31    }
32
33    fn update_last_login(&self, username: &str) -> Result<bool, StorageError> {
34        self.inner.update_last_login(username)
35    }
36
37    fn list_user_roles(&self, username: &str) -> Vec<(i64, linkrs_core::RoleType)> {
38        self.inner.list_user_roles(username)
39    }
40
41    fn list_all_user_roles(&self) -> Vec<(String, Vec<(i64, linkrs_core::RoleType)>)> {
42        self.inner.list_all_user_roles()
43    }
44}
45
46impl<S: StorageClient + 'static> StorageAdmin for SyncWrapper<S> {
47    forward_methods!(inner;
48        fn load_from_disk(&mut self) -> Result<(), StorageError>;
49        fn repair_dangling_edges(&mut self, space: &str) -> Result<usize, StorageError>;
50    );
51
52    forward_methods!(inner;
53        fn save_to_disk(&self) -> Result<(), StorageError>;
54        fn get_storage_stats(&self) -> crate::StorageStats;
55        fn find_dangling_edges(&self, space: &str) -> Result<Vec<Edge>, StorageError>;
56        fn purge_expired(&self, space: &str, target: Option<crate::PurgeTarget<'_>>) -> Result<Vec<crate::TtlPurgeEntry>, StorageError>;
57        fn get_db_path(&self) -> &str;
58    );
59}