mirror of
https://github.com/nitnelave/lldap.git
synced 2023-04-12 14:25:13 +00:00
errors: use anyhow::Context everywhere
This commit is contained in:
parent
a08b9a556d
commit
83ed58bff2
@ -1,5 +1,5 @@
|
|||||||
use crate::cookies::set_cookie;
|
use crate::cookies::set_cookie;
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::{anyhow, Context, Result};
|
||||||
use lldap_model::*;
|
use lldap_model::*;
|
||||||
|
|
||||||
use yew::callback::Callback;
|
use yew::callback::Callback;
|
||||||
@ -33,7 +33,7 @@ where
|
|||||||
Callback::once(move |response: Response<Result<Resp>>| {
|
Callback::once(move |response: Response<Result<Resp>>| {
|
||||||
let (meta, maybe_data) = response.into_parts();
|
let (meta, maybe_data) = response.into_parts();
|
||||||
let message = maybe_data
|
let message = maybe_data
|
||||||
.map_err(|e| anyhow!("Could not reach server: {}", e))
|
.context("Could not reach server")
|
||||||
.and_then(|data| handler(meta.status, data));
|
.and_then(|data| handler(meta.status, data));
|
||||||
callback.emit(message)
|
callback.emit(message)
|
||||||
})
|
})
|
||||||
@ -100,7 +100,7 @@ where
|
|||||||
callback,
|
callback,
|
||||||
move |status: http::StatusCode, data: String| {
|
move |status: http::StatusCode, data: String| {
|
||||||
if status.is_success() {
|
if status.is_success() {
|
||||||
serde_json::from_str(&data).map_err(|e| anyhow!("Could not parse response: {}", e))
|
serde_json::from_str(&data).context("Could not parse response")
|
||||||
} else {
|
} else {
|
||||||
Err(anyhow!("{}[{}]: {}", error_message, status, data))
|
Err(anyhow!("{}[{}]: {}", error_message, status, data))
|
||||||
}
|
}
|
||||||
@ -148,7 +148,7 @@ impl HostService {
|
|||||||
|status, data: String| {
|
|status, data: String| {
|
||||||
if status.is_success() {
|
if status.is_success() {
|
||||||
get_claims_from_jwt(&data)
|
get_claims_from_jwt(&data)
|
||||||
.map_err(|e| anyhow!("Could not parse response: {}", e))
|
.context("Could not parse response")
|
||||||
.and_then(|jwt_claims| {
|
.and_then(|jwt_claims| {
|
||||||
let is_admin = jwt_claims.groups.contains("lldap_admin");
|
let is_admin = jwt_claims.groups.contains("lldap_admin");
|
||||||
set_cookie("user_id", &jwt_claims.user, &jwt_claims.exp)
|
set_cookie("user_id", &jwt_claims.user, &jwt_claims.exp)
|
||||||
@ -156,7 +156,7 @@ impl HostService {
|
|||||||
set_cookie("is_admin", &is_admin.to_string(), &jwt_claims.exp)
|
set_cookie("is_admin", &is_admin.to_string(), &jwt_claims.exp)
|
||||||
})
|
})
|
||||||
.map(|_| (jwt_claims.user.clone(), is_admin))
|
.map(|_| (jwt_claims.user.clone(), is_admin))
|
||||||
.map_err(|e| anyhow!("Error clearing cookie: {}", e))
|
.context("Error clearing cookie")
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
Err(anyhow!(
|
Err(anyhow!(
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
use crate::api::HostService;
|
use crate::api::HostService;
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::{anyhow, Context, Result};
|
||||||
use lldap_model::*;
|
use lldap_model::*;
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
use yew::services::{fetch::FetchTask, ConsoleService};
|
use yew::services::{fetch::FetchTask, ConsoleService};
|
||||||
@ -48,7 +48,7 @@ impl CreateUserForm {
|
|||||||
};
|
};
|
||||||
self._task = Some(
|
self._task = Some(
|
||||||
HostService::create_user(req, self.link.callback(Msg::CreateUserResponse))
|
HostService::create_user(req, self.link.callback(Msg::CreateUserResponse))
|
||||||
.map_err(|e| anyhow!("Error trying to create user: {}", e))?,
|
.context("Error trying to create user")?,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
Msg::CreateUserResponse(r) => {
|
Msg::CreateUserResponse(r) => {
|
||||||
@ -73,7 +73,7 @@ impl CreateUserForm {
|
|||||||
req,
|
req,
|
||||||
self.link.callback(Msg::RegistrationStartResponse),
|
self.link.callback(Msg::RegistrationStartResponse),
|
||||||
)
|
)
|
||||||
.map_err(|e| anyhow!("Error trying to create user: {}", e))?,
|
.context("Error trying to create user")?,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
self.update(Msg::SuccessfulCreation);
|
self.update(Msg::SuccessfulCreation);
|
||||||
@ -97,7 +97,7 @@ impl CreateUserForm {
|
|||||||
req,
|
req,
|
||||||
self.link.callback(Msg::RegistrationFinishResponse),
|
self.link.callback(Msg::RegistrationFinishResponse),
|
||||||
)
|
)
|
||||||
.map_err(|e| anyhow!("Error trying to register user: {}", e))?,
|
.context("Error trying to register user")?,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
Msg::RegistrationFinishResponse(response) => {
|
Msg::RegistrationFinishResponse(response) => {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
use crate::api::HostService;
|
use crate::api::HostService;
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::{anyhow, Context, Result};
|
||||||
use lldap_model::*;
|
use lldap_model::*;
|
||||||
use wasm_bindgen::JsCast;
|
use wasm_bindgen::JsCast;
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
@ -61,9 +61,8 @@ impl LoginForm {
|
|||||||
let password = get_form_field("password")
|
let password = get_form_field("password")
|
||||||
.ok_or_else(|| anyhow!("Could not get password from form"))?;
|
.ok_or_else(|| anyhow!("Could not get password from form"))?;
|
||||||
let mut rng = rand::rngs::OsRng;
|
let mut rng = rand::rngs::OsRng;
|
||||||
let login_start_request =
|
let login_start_request = opaque::client::login::start_login(&password, &mut rng)
|
||||||
opaque::client::login::start_login(&password, &mut rng)
|
.context("Could not initialize login")?;
|
||||||
.map_err(|e| anyhow!("Could not initialize login: {}", e))?;
|
|
||||||
self.login_start = Some(login_start_request.state);
|
self.login_start = Some(login_start_request.state);
|
||||||
let req = login::ClientLoginStartRequest {
|
let req = login::ClientLoginStartRequest {
|
||||||
username,
|
username,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use anyhow::{anyhow, Result};
|
use anyhow::{Context, Result};
|
||||||
use figment::{
|
use figment::{
|
||||||
providers::{Env, Format, Serialized, Toml},
|
providers::{Env, Format, Serialized, Toml},
|
||||||
Figment,
|
Figment,
|
||||||
@ -93,19 +93,16 @@ fn get_server_setup(file_path: &str) -> Result<ServerSetup> {
|
|||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
let path = Path::new(file_path);
|
let path = Path::new(file_path);
|
||||||
if path.exists() {
|
if path.exists() {
|
||||||
let bytes = std::fs::read(file_path)
|
let bytes =
|
||||||
.map_err(|e| anyhow!("Could not read key file `{}`: {}", file_path, e))?;
|
std::fs::read(file_path).context(format!("Could not read key file `{}`", file_path))?;
|
||||||
Ok(ServerSetup::deserialize(&bytes)?)
|
Ok(ServerSetup::deserialize(&bytes)?)
|
||||||
} else {
|
} else {
|
||||||
let mut rng = rand::rngs::OsRng;
|
let mut rng = rand::rngs::OsRng;
|
||||||
let server_setup = ServerSetup::new(&mut rng);
|
let server_setup = ServerSetup::new(&mut rng);
|
||||||
std::fs::write(path, server_setup.serialize()).map_err(|e| {
|
std::fs::write(path, server_setup.serialize()).context(format!(
|
||||||
anyhow!(
|
"Could not write the generated server setup to file `{}`",
|
||||||
"Could not write the generated server setup to file `{}`: {}",
|
file_path,
|
||||||
file_path,
|
))?;
|
||||||
e
|
|
||||||
)
|
|
||||||
})?;
|
|
||||||
Ok(server_setup)
|
Ok(server_setup)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ use crate::{
|
|||||||
infra::{cli::*, configuration::Configuration, db_cleaner::Scheduler},
|
infra::{cli::*, configuration::Configuration, db_cleaner::Scheduler},
|
||||||
};
|
};
|
||||||
use actix::Actor;
|
use actix::Actor;
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::{Context, Result};
|
||||||
use futures_util::TryFutureExt;
|
use futures_util::TryFutureExt;
|
||||||
use log::*;
|
use log::*;
|
||||||
|
|
||||||
@ -24,20 +24,20 @@ async fn create_admin_user(handler: &SqlBackendHandler, config: &Configuration)
|
|||||||
})
|
})
|
||||||
.and_then(|_| register_password(handler, &config.ldap_user_dn, &config.ldap_user_pass))
|
.and_then(|_| register_password(handler, &config.ldap_user_dn, &config.ldap_user_pass))
|
||||||
.await
|
.await
|
||||||
.map_err(|e| anyhow!("Error creating admin user: {}", e))?;
|
.context("Error creating admin user")?;
|
||||||
let admin_group_id = handler
|
let admin_group_id = handler
|
||||||
.create_group(lldap_model::CreateGroupRequest {
|
.create_group(lldap_model::CreateGroupRequest {
|
||||||
display_name: "lldap_admin".to_string(),
|
display_name: "lldap_admin".to_string(),
|
||||||
})
|
})
|
||||||
.await
|
.await
|
||||||
.map_err(|e| anyhow!("Error creating admin group: {}", e))?;
|
.context("Error creating admin group")?;
|
||||||
handler
|
handler
|
||||||
.add_user_to_group(lldap_model::AddUserToGroupRequest {
|
.add_user_to_group(lldap_model::AddUserToGroupRequest {
|
||||||
user_id: config.ldap_user_dn.clone(),
|
user_id: config.ldap_user_dn.clone(),
|
||||||
group_id: admin_group_id,
|
group_id: admin_group_id,
|
||||||
})
|
})
|
||||||
.await
|
.await
|
||||||
.map_err(|e| anyhow!("Error adding admin user to group: {}", e))
|
.context("Error adding admin user to group")
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn run_server(config: Configuration) -> Result<()> {
|
async fn run_server(config: Configuration) -> Result<()> {
|
||||||
|
Loading…
Reference in New Issue
Block a user