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
insteadCheck whether the Client
is pointing to a valid Etebase server
Arguments:
client
- the already setupClient
object
sourcepub 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?
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
fn main() -> Result<()> {
let args: Vec<String> = env::args().collect();
if args.len() < 4 {
println!("Help: ./etebase_test USERNAME PASSWORD SERVER_URL [COLLECTION_UID]");
std::process::exit(1);
}
let username = &args[1];
let password = &args[2];
let server_url = &args[3];
let client = Client::new(CLIENT_NAME, server_url)?;
let etebase = Account::login(client, username, password)?;
let col_mgr = etebase.collection_manager()?;
if args.len() >= 5 {
let col_uid = &args[4];
let col = col_mgr.fetch(col_uid, None)?;
let it_mgr = col_mgr.item_manager(&col)?;
let items = it_mgr.list(None)?;
print_collection(&col);
for item in items.data() {
print_item(item);
}
} else {
let collections = col_mgr.list("some.coltype", None)?;
for col in collections.data() {
print_collection(col);
}
}
etebase.logout()?;
Ok(())
}
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?
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
fn main() -> Result<()> {
let args: Vec<String> = env::args().collect();
if args.len() < 4 {
println!("Help: ./etebase_test USERNAME PASSWORD SERVER_URL [COLLECTION_UID]");
std::process::exit(1);
}
let username = &args[1];
let password = &args[2];
let server_url = &args[3];
let client = Client::new(CLIENT_NAME, server_url)?;
let etebase = Account::login(client, username, password)?;
let col_mgr = etebase.collection_manager()?;
if args.len() >= 5 {
let col_uid = &args[4];
let col = col_mgr.fetch(col_uid, None)?;
let it_mgr = col_mgr.item_manager(&col)?;
let items = it_mgr.list(None)?;
print_collection(&col);
for item in items.data() {
print_item(item);
}
} else {
let collections = col_mgr.list("some.coltype", None)?;
for col in collections.data() {
print_collection(col);
}
}
etebase.logout()?;
Ok(())
}
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>
Deserialize and return the Account
object from the string obtained using
save
.
Arguments:
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?
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
fn main() -> Result<()> {
let args: Vec<String> = env::args().collect();
if args.len() < 4 {
println!("Help: ./etebase_test USERNAME PASSWORD SERVER_URL [COLLECTION_UID]");
std::process::exit(1);
}
let username = &args[1];
let password = &args[2];
let server_url = &args[3];
let client = Client::new(CLIENT_NAME, server_url)?;
let etebase = Account::login(client, username, password)?;
let col_mgr = etebase.collection_manager()?;
if args.len() >= 5 {
let col_uid = &args[4];
let col = col_mgr.fetch(col_uid, None)?;
let it_mgr = col_mgr.item_manager(&col)?;
let items = it_mgr.list(None)?;
print_collection(&col);
for item in items.data() {
print_item(item);
}
} else {
let collections = col_mgr.list("some.coltype", None)?;
for col in collections.data() {
print_collection(col);
}
}
etebase.logout()?;
Ok(())
}
sourcepub fn invitation_manager(&self) -> Result<CollectionInvitationManager>
pub fn invitation_manager(&self) -> Result<CollectionInvitationManager>
Return a CollectionInvitationManager
for managing collection invitations