Refactor users management (#6)

* Use asynchronous interface to set authorized clients list
This commit is contained in:
2022-11-26 14:51:08 +01:00
parent b68304c976
commit f5ac7bf278
6 changed files with 90 additions and 22 deletions

View File

@ -1,6 +1,6 @@
use crate::actors::users_actor::UsersBackend;
use crate::data::entity_manager::EntityManager;
use crate::data::user::{FactorID, TwoFactor, User, UserID};
use crate::data::user::{FactorID, GrantedClients, TwoFactor, User, UserID};
use crate::utils::err::Res;
use crate::utils::time::time;
use std::net::IpAddr;
@ -138,6 +138,13 @@ impl UsersBackend for EntityManager<User> {
}
}
fn set_granted_2fa_clients(&mut self, id: &UserID, clients: GrantedClients) -> bool {
self.update_user(id, |mut user| {
user.authorized_clients = clients.to_user();
user
})
}
fn update_or_insert_user(&mut self, user: User) -> Res {
self.update_or_push(user)
}