board members can open and close trips for others
All checks were successful
CI/CD Pipeline / test (push) Successful in 10m15s
CI/CD Pipeline / deploy-staging (push) Successful in 5m15s
CI/CD Pipeline / deploy-main (push) Has been skipped

This commit is contained in:
philipp 2024-03-16 19:47:04 +01:00
parent 4d634ce313
commit d1fa3e0336
3 changed files with 12 additions and 5 deletions

View File

@ -472,7 +472,7 @@ ORDER BY departure DESC
mut log: LogToFinalize, mut log: LogToFinalize,
) -> Result<(), LogbookUpdateError> { ) -> Result<(), LogbookUpdateError> {
//TODO: extract common tests with `create()` //TODO: extract common tests with `create()`
if user.id != self.shipmaster { if !user.has_role_tx(db, "Vorstand").await && user.id != self.shipmaster {
return Err(LogbookUpdateError::NotYourEntry); return Err(LogbookUpdateError::NotYourEntry);
} }
@ -549,7 +549,10 @@ ORDER BY departure DESC
pub async fn delete(&self, db: &SqlitePool, user: &User) -> Result<(), LogbookDeleteError> { pub async fn delete(&self, db: &SqlitePool, user: &User) -> Result<(), LogbookDeleteError> {
Log::create(db, format!("{user:?} deleted trip: {self:?}")).await; Log::create(db, format!("{user:?} deleted trip: {self:?}")).await;
if user.has_role(db, "admin").await || user.id == self.shipmaster { if user.has_role(db, "admin").await
|| user.has_role(db, "Vorstand").await
|| user.id == self.shipmaster
{
sqlx::query!("DELETE FROM logbook WHERE id=?", self.id) sqlx::query!("DELETE FROM logbook WHERE id=?", self.id)
.execute(db) .execute(db)
.await .await

View File

@ -137,9 +137,11 @@
{{ rower.name }} {{ rower.name }}
{% if rower.id == log.shipmaster or rower.id == log.steering_person %} {% if rower.id == log.shipmaster or rower.id == log.steering_person %}
<small class="text-gray-600 dark:text-primary-100">( <small class="text-gray-600 dark:text-primary-100">(
{%- if rower.id == log.shipmaster %}Schiffsführer{% endif -%} {%- if rower.id == log.shipmaster %}Schiffsführer
{% if rower.id == log.shipmaster and rower.id == log.steering_person %} / {% endif %} {% endif -%}
{%- if rower.id == log.steering_person %}Steuerperson{% endif -%} {% if rower.id == log.shipmaster and rower.id == log.steering_person %}/{% endif %}
{%- if rower.id == log.steering_person %}Steuerperson
{% endif -%}
)</small> )</small>
{% endif %} {% endif %}
</p> </p>

View File

@ -19,6 +19,8 @@
{% for log in on_water %} {% for log in on_water %}
{% if log.shipmaster == loggedin_user.id %} {% if log.shipmaster == loggedin_user.id %}
{{ log::show(log=log, state="on_water", allowed_to_close=true, only_ones="cox" not in loggedin_user.roles) }} {{ log::show(log=log, state="on_water", allowed_to_close=true, only_ones="cox" not in loggedin_user.roles) }}
{% elif "Vorstand" in loggedin_user.roles %}
{{ log::show(log=log, state="on_water", allowed_to_close=true, only_ones="cox" not in loggedin_user.roles) }}
{% else %} {% else %}
{{ log::show(log=log, state="on_water", only_ones=true) }} {{ log::show(log=log, state="on_water", only_ones=true) }}
{% endif %} {% endif %}