board members can open and close trips for others
This commit is contained in:
parent
4d634ce313
commit
d1fa3e0336
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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 %}
|
||||||
|
Loading…
Reference in New Issue
Block a user