Account

Struct Account 

Source
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

Source

pub fn is_etebase_server(client: &Client) -> Result<bool>

👎Deprecated: Use Client::is_server_valid instead

Check whether the Client is pointing to a valid Etebase server

§Arguments:
  • client - the already setup Client object
Source

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.

Source

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.

Source

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?
examples/etebase_test.rs (line 35)
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}
Source

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.

Source

pub fn fetch_token(&mut self) -> Result<()>

Fetch a new auth token for the account and update the Account object with it

Source

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.

Source

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.

Source

pub fn fetch_dashboard_url(&self) -> Result<String>

Fetch the link to the user dashboard of the account

Source

pub fn logout(&self) -> Result<()>

Logout the user from the current session and invalidate the authentication token

Examples found in repository?
examples/etebase_test.rs (line 54)
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}
Source

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.

Source

pub fn restore( client: Client, account_data_stored: &str, encryption_key: Option<&[u8]>, ) -> Result<Self>

Deserialize and return the Account object from the string obtained using save.

§Arguments:
  • client - the already setup Client object
  • account_data_stored - the stored account string
  • encryption_key - the same encryption key passed to save while saving the account
Source

pub fn collection_manager(&self) -> Result<CollectionManager>

Return a CollectionManager for creating, fetching and uploading collections

Examples found in repository?
examples/etebase_test.rs (line 36)
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}
Source

pub fn invitation_manager(&self) -> Result<CollectionInvitationManager>

Return a CollectionInvitationManager for managing collection invitations

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more