don't allow to add entry which is not completed today
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
use chrono::NaiveDateTime;
|
||||
use chrono::{NaiveDateTime, Utc};
|
||||
use rocket::FromForm;
|
||||
use serde::Serialize;
|
||||
use sqlx::{FromRow, Sqlite, SqlitePool, Transaction};
|
||||
@ -99,6 +99,7 @@ pub enum LogbookUpdateError {
|
||||
ShipmasterNotInRowers,
|
||||
SteeringPersonNotInRowers,
|
||||
UserNotAllowedToUseBoat,
|
||||
OnlyAllowedToEndTripsEndingToday,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
@ -120,6 +121,7 @@ pub enum LogbookCreateError {
|
||||
ShipmasterNotInRowers,
|
||||
NotYourEntry,
|
||||
ArrivalSetButNotRemainingTwo,
|
||||
OnlyAllowedToEndTripsEndingToday,
|
||||
}
|
||||
|
||||
impl From<LogbookUpdateError> for LogbookCreateError {
|
||||
@ -140,6 +142,9 @@ impl From<LogbookUpdateError> for LogbookCreateError {
|
||||
LogbookUpdateError::UserNotAllowedToUseBoat => {
|
||||
LogbookCreateError::UserNotAllowedToUseBoat
|
||||
}
|
||||
LogbookUpdateError::OnlyAllowedToEndTripsEndingToday => {
|
||||
LogbookCreateError::OnlyAllowedToEndTripsEndingToday
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -446,13 +451,8 @@ ORDER BY departure DESC
|
||||
}
|
||||
|
||||
if !boat.shipmaster_allowed(user).await && self.shipmaster != user.id {
|
||||
//second part:
|
||||
//shipmaster has
|
||||
//entered a
|
||||
//different user,
|
||||
//then the user
|
||||
//should be able
|
||||
//to `home` it
|
||||
//second part: shipmaster has entered a different user, then the user should be able to
|
||||
//`home` it
|
||||
return Err(LogbookUpdateError::UserNotAllowedToUseBoat);
|
||||
}
|
||||
|
||||
@ -468,6 +468,10 @@ ORDER BY departure DESC
|
||||
if arr.timestamp() <= dep.timestamp() {
|
||||
return Err(LogbookUpdateError::ArrivalNotAfterDeparture);
|
||||
}
|
||||
let today = Utc::now().date_naive();
|
||||
if arr.date() != today && !user.is_admin {
|
||||
return Err(LogbookUpdateError::OnlyAllowedToEndTripsEndingToday);
|
||||
}
|
||||
|
||||
Log::create_with_tx(db, format!("New trip: {log:?}")).await;
|
||||
|
||||
|
Reference in New Issue
Block a user