ext person can also be shipmaster (and not cox)
This commit is contained in:
@ -127,7 +127,7 @@ pub enum LogbookUpdateError {
|
||||
OnlyAllowedToEndTripsEndingToday,
|
||||
TooFast(i64, i64),
|
||||
AlreadyFinalized,
|
||||
ExternalSteeringPersonMustSteer,
|
||||
ExternalSteeringPersonMustSteerOrShipmaster,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
@ -153,7 +153,7 @@ pub enum LogbookCreateError {
|
||||
CantChangeHandoperatableStatusForThisBoat,
|
||||
TooFast(i64, i64),
|
||||
AlreadyFinalized,
|
||||
ExternalSteeringPersonMustSteer,
|
||||
ExternalSteeringPersonMustSteerOrShipmaster,
|
||||
}
|
||||
|
||||
impl From<LogbookUpdateError> for LogbookCreateError {
|
||||
@ -421,9 +421,13 @@ ORDER BY departure DESC
|
||||
}
|
||||
|
||||
if user.name == "Externe Steuerperson" {
|
||||
if let Some(steering_id) = log.steering_person {
|
||||
if steering_id != user.id {
|
||||
return Err(LogbookCreateError::ExternalSteeringPersonMustSteer);
|
||||
if let (Some(steering_id), Some(shipmaster_id)) =
|
||||
(log.steering_person, log.shipmaster)
|
||||
{
|
||||
if steering_id != user.id && shipmaster_id != user.id {
|
||||
return Err(
|
||||
LogbookCreateError::ExternalSteeringPersonMustSteerOrShipmaster,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -623,12 +627,17 @@ ORDER BY departure DESC
|
||||
self.remove_rowers(db).await;
|
||||
for rower in &log.rowers {
|
||||
if user.name == "Externe Steuerperson" {
|
||||
if let Some(steering_id) = log.steering_person {
|
||||
if steering_id != user.id {
|
||||
return Err(LogbookUpdateError::ExternalSteeringPersonMustSteer);
|
||||
if let (Some(steering_id), Some(shipmaster_id)) =
|
||||
(log.steering_person, log.shipmaster)
|
||||
{
|
||||
if steering_id != user.id && shipmaster_id != user.id {
|
||||
return Err(
|
||||
LogbookUpdateError::ExternalSteeringPersonMustSteerOrShipmaster,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rower::create(db, self.id, *rower)
|
||||
.await
|
||||
.map_err(|e| LogbookUpdateError::RowerCreateError(*rower, e.to_string()))?;
|
||||
|
Reference in New Issue
Block a user