89 lines
3.1 KiB
Rust
89 lines
3.1 KiB
Rust
use crate::helper::check_access::check_access_legacy;
|
|
use crate::helper::session_cookies::model::SessionCookie;
|
|
use crate::helper::settings::Settings;
|
|
use crate::modules::api::member_management::controller::member_driving_permissions::{
|
|
add_member_driving_permission_or_error, add_member_license_or_error,
|
|
remove_member_license_or_error,
|
|
};
|
|
use crate::modules::api::member_management::controller::parser::{
|
|
get_member_or_error, parse_member_cookie, parse_uuid_string,
|
|
};
|
|
use crate::modules::api::model::api_outcome::{ApiError, ApiErrorWrapper};
|
|
use rocket::State;
|
|
use rocket::serde::json::Json;
|
|
|
|
#[put(
|
|
"/api/member_management/add_driving_license?<member_id>&<license_name>",
|
|
format = "json"
|
|
)]
|
|
pub fn api_member_add_driving_license(
|
|
cookie: SessionCookie,
|
|
settings: &State<Settings>,
|
|
member_id: String,
|
|
license_name: String,
|
|
) -> Result<(), Json<ApiErrorWrapper>> {
|
|
let caller = parse_member_cookie(cookie.member)?;
|
|
let member = get_member_or_error(parse_uuid_string(member_id)?, &settings)?;
|
|
|
|
if !check_access_legacy(
|
|
&settings,
|
|
&member,
|
|
caller.entity_id,
|
|
crate::permissions::modules::member_management::profile::drive_permissions_licenses::EDIT.to_string(),
|
|
) {
|
|
return Err(Json(ApiError::new(403, "Keine Berechtigung, Fahrberechtigungen zu ändern!".to_string()).to_wrapper()));
|
|
}
|
|
|
|
add_member_license_or_error(member.entity_id, license_name, &settings)
|
|
}
|
|
|
|
#[put(
|
|
"/api/member_management/add_driving_permission?<member_id>&<license_name>",
|
|
format = "json"
|
|
)]
|
|
pub fn api_member_add_driving_permission(
|
|
cookie: SessionCookie,
|
|
settings: &State<Settings>,
|
|
member_id: String,
|
|
license_name: String,
|
|
) -> Result<(), Json<ApiErrorWrapper>> {
|
|
let caller = parse_member_cookie(cookie.member)?;
|
|
let member = get_member_or_error(parse_uuid_string(member_id)?, &settings)?;
|
|
|
|
if !check_access_legacy(
|
|
&settings,
|
|
&member,
|
|
caller.entity_id,
|
|
crate::permissions::modules::member_management::profile::drive_permissions_licenses::EDIT.to_string(),
|
|
) {
|
|
return Err(Json(ApiError::new(403, "Keine Berechtigung, Fahrberechtigungen zu ändern!".to_string()).to_wrapper()));
|
|
}
|
|
|
|
add_member_driving_permission_or_error(member.entity_id, license_name, &settings)
|
|
}
|
|
|
|
#[put(
|
|
"/api/member_management/remove_driving_license?<member_id>&<license_name>",
|
|
format = "json"
|
|
)]
|
|
pub fn api_member_remove_driving_license(
|
|
cookie: SessionCookie,
|
|
settings: &State<Settings>,
|
|
member_id: String,
|
|
license_name: String,
|
|
) -> Result<(), Json<ApiErrorWrapper>> {
|
|
let caller = parse_member_cookie(cookie.member)?;
|
|
let member = get_member_or_error(parse_uuid_string(member_id)?, &settings)?;
|
|
|
|
if !check_access_legacy(
|
|
&settings,
|
|
&member,
|
|
caller.entity_id,
|
|
crate::permissions::modules::member_management::profile::drive_permissions_licenses::EDIT.to_string(),
|
|
) {
|
|
return Err(Json(ApiError::new(403, "Keine Berechtigung, Fahrberechtigungen zu ändern!".to_string()).to_wrapper()));
|
|
}
|
|
|
|
remove_member_license_or_error(member.entity_id, license_name, &settings)
|
|
}
|