pub struct Account { /* private fields */ }Expand description
The main object for all user interactions and data manipulation, representing an authenticated user account.
Implementations§
Source§impl Account
impl Account
Sourcepub fn is_etebase_server(client: &Client) -> Result<bool>
👎Deprecated: Use Client::is_server_valid instead
pub fn is_etebase_server(client: &Client) -> Result<bool>
Client::is_server_valid insteadSourcepub fn signup(client: Client, user: &User, password: &str) -> Result<Self>
pub fn signup(client: Client, user: &User, password: &str) -> Result<Self>
Creates a new user on the server and returns a handle to it. The user is authenticated
using the given password.
Sourcepub fn signup_key(client: Client, user: &User, main_key: &[u8]) -> Result<Self>
pub fn signup_key(client: Client, user: &User, main_key: &[u8]) -> Result<Self>
Creates a new user on the server and returns a handle to it. The user is authenticated
using a cryptographically secure random 32-byte main_key instead of a password.
Sourcepub fn login(client: Client, username: &str, password: &str) -> Result<Self>
pub fn login(client: Client, username: &str, password: &str) -> Result<Self>
Authenticates a user using their password and returns an Account handle on success.
Examples found in repository?
22fn main() -> Result<()> {
23 let args: Vec<String> = env::args().collect();
24
25 if args.len() < 4 {
26 println!("Help: ./etebase_test USERNAME PASSWORD SERVER_URL [COLLECTION_UID]");
27 std::process::exit(1);
28 }
29
30 let username = &args[1];
31 let password = &args[2];
32 let server_url = &args[3];
33
34 let client = Client::new(CLIENT_NAME, server_url)?;
35 let etebase = Account::login(client, username, password)?;
36 let col_mgr = etebase.collection_manager()?;
37 if args.len() >= 5 {
38 let col_uid = &args[4];
39 let col = col_mgr.fetch(col_uid, None)?;
40 let it_mgr = col_mgr.item_manager(&col)?;
41 let items = it_mgr.list(None)?;
42
43 print_collection(&col);
44 for item in items.data() {
45 print_item(item);
46 }
47 } else {
48 let collections = col_mgr.list("some.coltype", None)?;
49 for col in collections.data() {
50 print_collection(col);
51 }
52 }
53
54 etebase.logout()?;
55
56 Ok(())
57}Sourcepub fn login_key(
client: Client,
username: &str,
main_key: &[u8],
) -> Result<Self>
pub fn login_key( client: Client, username: &str, main_key: &[u8], ) -> Result<Self>
Authenticates a user using the same main_key as was provided to
signup_key and returns an Account handle on success.
Sourcepub fn fetch_token(&mut self) -> Result<()>
pub fn fetch_token(&mut self) -> Result<()>
Fetch a new auth token for the account and update the Account object with it
Sourcepub fn force_server_url(&mut self, api_base: &str) -> Result<()>
pub fn force_server_url(&mut self, api_base: &str) -> Result<()>
Change the server URL for this account handle
See also Client::set_server_url.
Sourcepub fn change_password(&mut self, new_password: &str) -> Result<()>
pub fn change_password(&mut self, new_password: &str) -> Result<()>
Change the user’s login password. If the account currently uses key-based login, the key is invalidated and subsequent logins have to use the password.
Sourcepub fn fetch_dashboard_url(&self) -> Result<String>
pub fn fetch_dashboard_url(&self) -> Result<String>
Fetch the link to the user dashboard of the account
Sourcepub fn logout(&self) -> Result<()>
pub fn logout(&self) -> Result<()>
Logout the user from the current session and invalidate the authentication token
Examples found in repository?
22fn main() -> Result<()> {
23 let args: Vec<String> = env::args().collect();
24
25 if args.len() < 4 {
26 println!("Help: ./etebase_test USERNAME PASSWORD SERVER_URL [COLLECTION_UID]");
27 std::process::exit(1);
28 }
29
30 let username = &args[1];
31 let password = &args[2];
32 let server_url = &args[3];
33
34 let client = Client::new(CLIENT_NAME, server_url)?;
35 let etebase = Account::login(client, username, password)?;
36 let col_mgr = etebase.collection_manager()?;
37 if args.len() >= 5 {
38 let col_uid = &args[4];
39 let col = col_mgr.fetch(col_uid, None)?;
40 let it_mgr = col_mgr.item_manager(&col)?;
41 let items = it_mgr.list(None)?;
42
43 print_collection(&col);
44 for item in items.data() {
45 print_item(item);
46 }
47 } else {
48 let collections = col_mgr.list("some.coltype", None)?;
49 for col in collections.data() {
50 print_collection(col);
51 }
52 }
53
54 etebase.logout()?;
55
56 Ok(())
57}Sourcepub fn save(&self, encryption_key: Option<&[u8]>) -> Result<String>
pub fn save(&self, encryption_key: Option<&[u8]>) -> Result<String>
Serializes the account object to a string for restoring it later using restore.
The data should be encrypted using a 32-byte encryption_key for added security.
Sourcepub fn restore(
client: Client,
account_data_stored: &str,
encryption_key: Option<&[u8]>,
) -> Result<Self>
pub fn restore( client: Client, account_data_stored: &str, encryption_key: Option<&[u8]>, ) -> Result<Self>
Sourcepub fn collection_manager(&self) -> Result<CollectionManager>
pub fn collection_manager(&self) -> Result<CollectionManager>
Return a CollectionManager for creating, fetching and uploading collections
Examples found in repository?
22fn main() -> Result<()> {
23 let args: Vec<String> = env::args().collect();
24
25 if args.len() < 4 {
26 println!("Help: ./etebase_test USERNAME PASSWORD SERVER_URL [COLLECTION_UID]");
27 std::process::exit(1);
28 }
29
30 let username = &args[1];
31 let password = &args[2];
32 let server_url = &args[3];
33
34 let client = Client::new(CLIENT_NAME, server_url)?;
35 let etebase = Account::login(client, username, password)?;
36 let col_mgr = etebase.collection_manager()?;
37 if args.len() >= 5 {
38 let col_uid = &args[4];
39 let col = col_mgr.fetch(col_uid, None)?;
40 let it_mgr = col_mgr.item_manager(&col)?;
41 let items = it_mgr.list(None)?;
42
43 print_collection(&col);
44 for item in items.data() {
45 print_item(item);
46 }
47 } else {
48 let collections = col_mgr.list("some.coltype", None)?;
49 for col in collections.data() {
50 print_collection(col);
51 }
52 }
53
54 etebase.logout()?;
55
56 Ok(())
57}Sourcepub fn invitation_manager(&self) -> Result<CollectionInvitationManager>
pub fn invitation_manager(&self) -> Result<CollectionInvitationManager>
Return a CollectionInvitationManager for managing collection invitations