51 lines
1.8 KiB
Rust
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),
|
|
))
|
|
}
|