Can request new user password on login
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
use actix::{Actor, Context, Handler, Message, MessageResult};
|
||||
|
||||
use crate::data::entity_manager::EntityManager;
|
||||
use crate::data::user::{User, verify_password};
|
||||
use crate::data::user::{User, UserID, verify_password};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum LoginResult {
|
||||
@ -17,6 +17,18 @@ pub struct LoginRequest {
|
||||
pub password: String,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct ChangePasswordResult(pub bool);
|
||||
|
||||
#[derive(Message)]
|
||||
#[rtype(ChangePasswordResult)]
|
||||
pub struct ChangePasswordRequest {
|
||||
pub user_id: UserID,
|
||||
pub new_password: String,
|
||||
pub temporary: bool,
|
||||
}
|
||||
|
||||
|
||||
pub struct UsersActor {
|
||||
manager: EntityManager<User>,
|
||||
}
|
||||
@ -46,4 +58,13 @@ impl Handler<LoginRequest> for UsersActor {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Handler<ChangePasswordRequest> for UsersActor {
|
||||
type Result = MessageResult<ChangePasswordRequest>;
|
||||
|
||||
fn handle(&mut self, msg: ChangePasswordRequest, _ctx: &mut Self::Context) -> Self::Result {
|
||||
MessageResult(ChangePasswordResult(
|
||||
self.manager.change_user_password(&msg.user_id, &msg.new_password, msg.temporary)))
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user