Can create user accounts

This commit is contained in:
2022-04-07 18:59:48 +02:00
parent 52888b3af7
commit c9ca23cd82
11 changed files with 144 additions and 12 deletions

View File

@ -18,9 +18,6 @@ pub struct LoginRequest {
pub password: String,
}
#[derive(Debug)]
pub struct ChangePasswordResult(pub bool);
#[derive(Message)]
#[rtype(GetUserResult)]
pub struct GetUserRequest(pub UserID);
@ -50,6 +47,16 @@ pub struct ChangePasswordRequest {
pub temporary: bool,
}
#[derive(Debug)]
pub struct ChangePasswordResult(pub bool);
#[derive(Debug)]
pub struct UpdateUserResult(pub bool);
#[derive(Message)]
#[rtype(UpdateUserResult)]
pub struct UpdateUserRequest(pub User);
pub struct UsersActor {
manager: EntityManager<User>,
}
@ -119,4 +126,18 @@ impl Handler<GetAllUsersRequest> for UsersActor {
fn handle(&mut self, _msg: GetAllUsersRequest, _ctx: &mut Self::Context) -> Self::Result {
MessageResult(GetAllUsersResult(self.manager.cloned()))
}
}
impl Handler<UpdateUserRequest> for UsersActor {
type Result = MessageResult<UpdateUserRequest>;
fn handle(&mut self, msg: UpdateUserRequest, _ctx: &mut Self::Context) -> Self::Result {
MessageResult(UpdateUserResult(match self.manager.update_or_replace(msg.0) {
Ok(_) => true,
Err(e) => {
log::error!("Failed to update user information! {:?}", e);
false
}
}))
}
}