diff --git a/lib/Travelynx/Controller/Account.pm b/lib/Travelynx/Controller/Account.pm index a799ba1..1fa762a 100644 --- a/lib/Travelynx/Controller/Account.pm +++ b/lib/Travelynx/Controller/Account.pm @@ -994,7 +994,7 @@ sub webfinger { } my $name = $+{name}; - my $user = $self->users->get_privacy_by_name( name => $name ); + my $user = $self->users->get_privacy_by( name => $name ); if ( not $user ) { $self->render( 'not_found', status => 404 ); diff --git a/lib/Travelynx/Controller/Profile.pm b/lib/Travelynx/Controller/Profile.pm index dcd4075..6754159 100755 --- a/lib/Travelynx/Controller/Profile.pm +++ b/lib/Travelynx/Controller/Profile.pm @@ -63,7 +63,7 @@ sub profile { my ($self) = @_; my $name = $self->stash('name'); - my $user = $self->users->get_privacy_by_name( name => $name ); + my $user = $self->users->get_privacy_by( name => $name ); if ( not $user ) { $self->render('not_found'); @@ -157,7 +157,7 @@ sub journey_details { my ($self) = @_; my $name = $self->stash('name'); my $journey_id = $self->stash('id'); - my $user = $self->users->get_privacy_by_name( name => $name ); + my $user = $self->users->get_privacy_by( name => $name ); $self->param( journey_id => $journey_id ); @@ -290,7 +290,7 @@ sub user_status { my $name = $self->stash('name'); my $ts = $self->stash('ts') // 0; - my $user = $self->users->get_privacy_by_name( name => $name ); + my $user = $self->users->get_privacy_by( name => $name ); if ( not $user ) { $self->render('not_found'); @@ -434,7 +434,7 @@ sub status_card { my $name = $self->stash('name'); $name =~ s{[.]html$}{}; - my $user = $self->users->get_privacy_by_name( name => $name ); + my $user = $self->users->get_privacy_by( name => $name ); delete $self->stash->{layout}; diff --git a/lib/Travelynx/Model/Users.pm b/lib/Travelynx/Model/Users.pm index af2a6dc..67296ca 100644 --- a/lib/Travelynx/Model/Users.pm +++ b/lib/Travelynx/Model/Users.pm @@ -154,19 +154,21 @@ sub get_uid_by_name_and_mail { return; } -sub get_privacy_by_name { +sub get_privacy_by { my ( $self, %opt ) = @_; - my $db = $opt{db} // $self->{pg}->db; - my $name = $opt{name}; + my $db = $opt{db} // $self->{pg}->db; - my $res = $db->select( - 'users', - [ 'id', 'public_level' ], - { - name => $name, - status => 1 - } - ); + my %where; + + if ( $opt{name} ) { + $where{name} = $opt{name}; + } + else { + $where{id} = $opt{uid}; + } + + my $res = $db->select( 'users', [ 'id', 'public_level' ], + { %where, status => 1 } ); if ( my $user = $res->hash ) { return {