aboutsummaryrefslogtreecommitdiff
path: root/src/login/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/login/mod.rs')
-rw-r--r--src/login/mod.rs20
1 files changed, 3 insertions, 17 deletions
diff --git a/src/login/mod.rs b/src/login/mod.rs
index 5bd976e..e87a17d 100644
--- a/src/login/mod.rs
+++ b/src/login/mod.rs
@@ -24,7 +24,7 @@ use crate::storage::*;
pub trait LoginProvider {
/// The login method takes an account's password as an input to decypher
/// decryption keys and obtain full access to the user's account.
- async fn login(&self, username: &str, password: &str) -> Result<AnyCredentials>;
+ async fn login(&self, username: &str, password: &str) -> Result<Credentials>;
/// The public_login method takes an account's email address and returns
/// public credentials for adding mails to the user's inbox.
async fn public_login(&self, email: &str) -> Result<PublicCredentials>;
@@ -34,26 +34,12 @@ pub trait LoginProvider {
/// in many places in the code
pub type ArcLoginProvider = Arc<dyn LoginProvider + Send + Sync>;
-pub enum AnyCredentials {
- InMemory(Credentials<in_memory::MemTypes>),
- Garage(Credentials<garage::GrgTypes>),
-}
-impl<X> AnyCredentials where X: Sto
-{
- fn to_gen(&self) -> Credentials<X> {
- match self {
- Self::InMemory(u) => u,
- Self::Garage(u) => u,
- }
- }
-}
-
/// The struct Credentials represent all of the necessary information to interact
/// with a user account's data after they are logged in.
#[derive(Clone, Debug)]
-pub struct Credentials<T: Sto> {
+pub struct Credentials {
/// The storage credentials are used to authenticate access to the underlying storage (S3, K2V)
- pub storage: T::Builder,
+ pub storage: AnyEngine,
/// The cryptographic keys are used to encrypt and decrypt data stored in S3 and K2V
pub keys: CryptoKeys,
}