always show /p/user if /status/user exists; only limit past journeys

This commit is contained in:
Daniel Friesel 2023-03-04 13:22:13 +01:00
parent 67dc1c203a
commit 5461326f01
No known key found for this signature in database
GPG key ID: 100D5BFB5166E005
2 changed files with 43 additions and 38 deletions

View file

@ -638,10 +638,7 @@ sub public_profile {
my $name = $self->stash('name');
my $user = $self->users->get_privacy_by_name( name => $name );
if ( not $user
or $user->{past_visible} == 0
or ( $user->{past_visible} == 1 and not $self->is_user_authenticated ) )
{
if ( not $user ) {
$self->render('not_found');
return;
}
@ -677,38 +674,45 @@ sub public_profile {
$status->{arr_name} = undef;
}
my %opt = (
uid => $user->{id},
limit => 10,
with_datetime => 1
);
my @journeys;
if ( not $user->{past_all} ) {
my $now = DateTime->now( time_zone => 'Europe/Berlin' );
$opt{before} = DateTime->now( time_zone => 'Europe/Berlin' );
$opt{after} = $now->clone->subtract( weeks => 4 );
}
if (
$user->{default_visibility_str} eq 'public'
or ( $user->{default_visibility_str} eq 'travelynx'
and $self->is_user_authenticated )
)
if ( $user->{past_visible} == 2
or ( $user->{past_visible} == 1 and $self->is_user_authenticated ) )
{
$opt{with_default_visibility} = 1;
}
else {
$opt{with_default_visibility} = 0;
}
if ( $self->is_user_authenticated ) {
$opt{min_visibility} = 'travelynx';
}
else {
$opt{min_visibility} = 'public';
}
my %opt = (
uid => $user->{id},
limit => 10,
with_datetime => 1
);
my @journeys = $self->journeys->get(%opt);
if ( not $user->{past_all} ) {
my $now = DateTime->now( time_zone => 'Europe/Berlin' );
$opt{before} = DateTime->now( time_zone => 'Europe/Berlin' );
$opt{after} = $now->clone->subtract( weeks => 4 );
}
if (
$user->{default_visibility_str} eq 'public'
or ( $user->{default_visibility_str} eq 'travelynx'
and $self->is_user_authenticated )
)
{
$opt{with_default_visibility} = 1;
}
else {
$opt{with_default_visibility} = 0;
}
if ( $self->is_user_authenticated ) {
$opt{min_visibility} = 'travelynx';
}
else {
$opt{min_visibility} = 'public';
}
@journeys = $self->journeys->get(%opt);
}
$self->render(
'profile',

View file

@ -69,7 +69,7 @@
<div>
<label>
%= check_box past_status => 1
<span>Wenn nicht eingecheckt: letztes Fahrtziel unter <a href="/status/<%= $name %>">/status/<%= $name %></a> zeigen, sofern die zugehörige Reise für die aufrufende Person sichtbar ist. Caveat: Die derzeitige Implementierung dieses Features gibt preis, ob deine letzte Fahrt öffentlich / lokal sichtbar war (→ Ziel angegeben) oder nicht (→ kein Ziel angegeben).</span>
<span>Wenn nicht eingecheckt: letztes Fahrtziel anzeigen, sofern die zugehörige Reise für die aufrufende Person sichtbar ist. Caveat: Die derzeitige Implementierung dieses Features gibt preis, ob deine letzte Fahrt öffentlich / lokal sichtbar war (→ Ziel angegeben) oder nicht (→ kein Ziel angegeben).</span>
</label>
</div>
</div>
@ -106,11 +106,12 @@
</div>
<div class="row">
<div class="col s12">
Diese Einstellung bestimmt die Sichtbarkeit deines Profils unter <a
href="/p/<%= $name %>">/p/<%= $name %></a>. Bis zu zehn Fahrten, die
über die Standardeinstellung (siehe oben) oder per individueller
Einstellung für die aufrufende Person sichtbar sind, werden hier
verlinkt.
Diese Einstellung bestimmt die Sichtbarkeit vergangener Zugfahrten
unter <a href="/p/<%= $name %>">/p/<%= $name %></a>. Vergangene
Fahrten, die über die Standardeinstellung (siehe oben) oder per
individueller Einstellung für die aufrufende Person sichtbar sind,
werden hier verlinkt. Derzeit werden nur die letzten zehn Fahrten
angezeigt; dies kann sich in Zukunft ändern.
</div>
</div>
<h2>Vergangenheit</h2>