diff options
Diffstat (limited to 'lib/Travelynx/Controller/Traveling.pm')
-rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index f094279..316ee08 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -745,18 +745,26 @@ sub public_journey_details { 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 = $self->compute_effective_visibility( $user->{default_visibility_str}, $journey->{visibility_str} ); if ( not( - $visibility eq 'public' + ( $visibility eq 'public' and not $is_past ) or ( $visibility eq 'unlisted' and $self->journey_token_ok($journey) ) or ( $visibility eq 'travelynx' - and ( $self->is_user_authenticated + and ( ( $self->is_user_authenticated and not $is_past ) or $self->journey_token_ok($journey) ) ) ) @@ -771,8 +779,6 @@ sub public_journey_details { return; } - # TODO re-add age check unless status_token_ok (helper function?) - my $title = sprintf( 'Fahrt von %s nach %s am %s', $journey->{from_name}, $journey->{to_name}, $journey->{rt_arrival}->strftime('%d.%m.%Y') ); |