journey details: require valid token if too old

This commit is contained in:
Daniel Friesel 2023-03-02 18:31:17 +01:00
parent 41985327e4
commit 792ab9fe23

View file

@ -745,18 +745,26 @@ sub public_journey_details {
return; return;
} }
my $is_past;
if ( not $user->{past_all} ) {
my $now = DateTime->now( time_zone => 'Europe/Berlin' );
if ( $journey->{sched_dep_ts} < $now->subtract( weeks => 4 )->epoch ) {
$is_past = 1;
}
}
my $visibility my $visibility
= $self->compute_effective_visibility( $user->{default_visibility_str}, = $self->compute_effective_visibility( $user->{default_visibility_str},
$journey->{visibility_str} ); $journey->{visibility_str} );
if ( if (
not( not(
$visibility eq 'public' ( $visibility eq 'public' and not $is_past )
or ( $visibility eq 'unlisted' or ( $visibility eq 'unlisted'
and $self->journey_token_ok($journey) ) and $self->journey_token_ok($journey) )
or ( or (
$visibility eq 'travelynx' $visibility eq 'travelynx'
and ( $self->is_user_authenticated and ( ( $self->is_user_authenticated and not $is_past )
or $self->journey_token_ok($journey) ) or $self->journey_token_ok($journey) )
) )
) )
@ -771,8 +779,6 @@ sub public_journey_details {
return; return;
} }
# TODO re-add age check unless status_token_ok (helper function?)
my $title = sprintf( 'Fahrt von %s nach %s am %s', my $title = sprintf( 'Fahrt von %s nach %s am %s',
$journey->{from_name}, $journey->{to_name}, $journey->{from_name}, $journey->{to_name},
$journey->{rt_arrival}->strftime('%d.%m.%Y') ); $journey->{rt_arrival}->strftime('%d.%m.%Y') );