58 lines
1.7 KiB
Rust
58 lines
1.7 KiB
Rust
|
|
use rocket::http::Status;
|
|
|
|
|
|
use crate::helper::session_cookies::model::SessionCookie;
|
|
use crate::helper::sitebuilder::model::general::{Header, Footer, Stylesheet, Script};
|
|
use crate::helper::sitebuilder::model::sidebar::Sidebar;
|
|
use crate::helper::sitebuilder::model::alerts::Alert;
|
|
use rocket_dyn_templates::Template;
|
|
|
|
#[derive(Serialize)]
|
|
pub struct CommunicatorEmailTemplate{
|
|
pub header: Header,
|
|
pub footer: Footer,
|
|
pub sidebar: Sidebar,
|
|
pub alert: Option<Alert>,
|
|
pub to: Option<String>,
|
|
pub cc: Option<String>,
|
|
pub bcc: Option<String>
|
|
}
|
|
|
|
#[get("/portal/communicator/email?<to>&<cc>&<bcc>")]
|
|
pub fn communicator_email_get(cookie: SessionCookie, to: Option<String>, cc: Option<String>, bcc: Option<String>) -> Result<Template, Status> {
|
|
let caller = 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),
|
|
};
|
|
|
|
if !caller.has_permission(crate::permissions::modules::communicator::VIEW.to_string()){
|
|
return Err(Status::Forbidden)
|
|
}
|
|
|
|
let header = Header{
|
|
html_language: "de".to_string(),
|
|
site_title: "Email versenden".to_string(),
|
|
stylesheets: vec![Stylesheet {
|
|
path: "/css/errms.css".to_string(),
|
|
}]
|
|
};
|
|
|
|
let footer = Footer { scripts: vec![Script{ path: "/js/communicator.js".to_string() }] };
|
|
|
|
let mut sidebar = Sidebar::new(caller);
|
|
sidebar.communicator.active=true;
|
|
|
|
let templ = CommunicatorEmailTemplate{
|
|
header,
|
|
footer,
|
|
sidebar,
|
|
alert: None,
|
|
to,
|
|
cc,
|
|
bcc
|
|
};
|
|
|
|
Ok(Template::render("module_communicator_email", templ))
|
|
} |