EinsatzOnline/src/modules/dashboard/view/mod.rs

51 lines
1.8 KiB
Rust

use super::controller::render::get_context;
use crate::helper::session_cookies::model::SessionCookie;
use crate::helper::sitebuilder::model::alerts::{Alert, AlertClass};
use rocket::http::Status;
use rocket::State;
use crate::helper::settings::Settings;
use rocket_dyn_templates::Template;
#[get("/portal?<error>")]
pub fn dashboard(settings: &State<Settings>, cookie: SessionCookie, error: Option<String>) -> Result<Template, Status> {
let member = match cookie.member {
//Unwraps member from cookie or send user to login if no member specified (user skipped member selection)
Some(member) => member,
None => return Err(Status::Unauthorized),
};
let alert = match error {
Some(error) => match error.as_str() {
"notimplemented" => Some(Alert::new(
AlertClass::Warning,
"Die angeforderte Funktion ist noch nicht implementiert!".to_string(),
)),
"notfound" => Some(Alert::new(
AlertClass::Warning,
"Die angeforderte Seite konnte nicht gefunden werden!".to_string(),
)),
"unauthorized" => Some(Alert::new(
AlertClass::Warning,
"Sie haben nicht die nötigen Rechte, um auf diese Ressource zuzugreifen."
.to_string(),
)),
"forbidden" => Some(Alert::new(
AlertClass::Warning,
"Sie haben nicht die nötigen Rechte, um auf diese Ressource zuzugreifen."
.to_string(),
)),
_ => Some(Alert::new(
AlertClass::Warning,
"Es ist ein unbekannter Fehler aufgetreten.".to_string(),
)),
},
None => None,
};
Ok(Template::render(
"module_dashboard",
&get_context(settings, member, alert),
))
}