From ac816c09b23233c9e3de0f1b12cc905a921ca85a Mon Sep 17 00:00:00 2001
From: Derf Null <derf@finalrewind.org>
Date: Wed, 24 May 2023 21:36:06 +0200
Subject: [PATCH] rename get_privacy_by_name to get_privacy_by, allow requests
 by uid

---
 lib/Travelynx/Controller/Account.pm |  2 +-
 lib/Travelynx/Controller/Profile.pm |  8 ++++----
 lib/Travelynx/Model/Users.pm        | 24 +++++++++++++-----------
 3 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/lib/Travelynx/Controller/Account.pm b/lib/Travelynx/Controller/Account.pm
index a799ba1a..1fa762a9 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 dcd4075c..6754159f 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 af2a6dc6..67296cad 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 {
-- 
GitLab