translations fixed to be safe
This commit is contained in:
@@ -8,7 +8,7 @@ use axum::{
|
||||
use crate::{
|
||||
AppState,
|
||||
{i18n::Locale, tr},
|
||||
services::authenticated_request,
|
||||
services::{authenticated_request, reject_cross_site},
|
||||
};
|
||||
|
||||
use super::{
|
||||
@@ -29,23 +29,13 @@ pub(crate) async fn create_logic(
|
||||
headers: HeaderMap,
|
||||
Form(form): Form<CreateLogicForm>,
|
||||
) -> Response {
|
||||
if let Some(rejection) = reject_cross_site(&headers) {
|
||||
return rejection;
|
||||
}
|
||||
let submitted = form.clone();
|
||||
if let Err(error) = load_page(state.clone(), &headers, submitted.clone(), None).await {
|
||||
return render_loaded(&headers, Err(error));
|
||||
}
|
||||
if headers
|
||||
.get("sec-fetch-site")
|
||||
.is_some_and(|value| value == "cross-site")
|
||||
{
|
||||
return (
|
||||
StatusCode::FORBIDDEN,
|
||||
tr!(
|
||||
Locale::from_headers(&headers),
|
||||
"services-cross-site-rejected"
|
||||
),
|
||||
)
|
||||
.into_response();
|
||||
}
|
||||
let request = match form.into_request(Locale::from_headers(&headers)) {
|
||||
Ok(request) => request,
|
||||
Err(message) => {
|
||||
@@ -79,26 +69,21 @@ pub(crate) async fn create_logic(
|
||||
}
|
||||
|
||||
fn render_loaded(headers: &HeaderMap, result: Result<super::state::AddLogicPageState, LoadError>) -> Response {
|
||||
let locale = Locale::from_headers(headers);
|
||||
match result {
|
||||
Ok(page) => Html(ui::render_page(&page)).into_response(),
|
||||
Err(LoadError::Unauthenticated) => Redirect::to("/login").into_response(),
|
||||
Err(LoadError::Forbidden) => (
|
||||
StatusCode::FORBIDDEN,
|
||||
Html(ui::render_submission_error(
|
||||
Locale::from_headers(&headers),
|
||||
&tr!(
|
||||
Locale::from_headers(&headers),
|
||||
"add-logic-err-permission"
|
||||
),
|
||||
)),
|
||||
)
|
||||
.into_response(),
|
||||
Err(LoadError::Forbidden) => {
|
||||
let message = tr!(locale, "add-logic-err-permission");
|
||||
(
|
||||
StatusCode::FORBIDDEN,
|
||||
Html(ui::render_submission_error(locale, &message)),
|
||||
)
|
||||
.into_response()
|
||||
}
|
||||
Err(LoadError::Backend(message)) => (
|
||||
StatusCode::BAD_GATEWAY,
|
||||
Html(ui::render_submission_error(
|
||||
Locale::from_headers(&headers),
|
||||
&message,
|
||||
)),
|
||||
Html(ui::render_submission_error(locale, &message)),
|
||||
)
|
||||
.into_response(),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user