diff --git a/app/Http/Controllers/Frontend/ProfileController.php b/app/Http/Controllers/Frontend/ProfileController.php index 26e1d4df..0d3d15b8 100644 --- a/app/Http/Controllers/Frontend/ProfileController.php +++ b/app/Http/Controllers/Frontend/ProfileController.php @@ -101,10 +101,12 @@ class ProfileController extends Controller } $airports = $this->airportRepo->all(); + $userFields = $this->userRepo->getUserFields($user, true); return view('profile.index', [ - 'user' => $user, - 'airports' => $airports, + 'user' => $user, + 'userFields' => $userFields, + 'airports' => $airports, ]); } @@ -131,7 +133,7 @@ class ProfileController extends Controller $airlines = $this->airlineRepo->selectBoxList(); $airports = $this->airportRepo->selectBoxList(false, setting('pilots.home_hubs_only')); - $userFields = $this->userRepo->getUserFields($user); + $userFields = $this->userRepo->getUserFields($user, false); return view('profile.edit', [ 'user' => $user, diff --git a/app/Repositories/UserRepository.php b/app/Repositories/UserRepository.php index 20cf7a56..0d8debaf 100644 --- a/app/Repositories/UserRepository.php +++ b/app/Repositories/UserRepository.php @@ -31,13 +31,15 @@ class UserRepository extends Repository /** * Get all of the fields which has the mapped values * - * @param \App\Models\User $user + * @param User $user + * @param bool $only_public_fields Only include the user's public fields * * @return \App\Models\UserField[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection */ - public function getUserFields(User $user): Collection + public function getUserFields(User $user, $only_public_fields = true): Collection { - return (UserField::all())->map(function ($field, $_) use ($user) { + $fields = UserField::where(['private' => !$only_public_fields])->get(); + return $fields->map(function ($field, $_) use ($user) { foreach ($user->fields as $userFieldValue) { if ($userFieldValue->field->slug === $field->slug) { $field->value = $userFieldValue->value; @@ -59,11 +61,9 @@ class UserRepository extends Repository 'state' => UserState::PENDING, ]; - $users = $this->orderBy('created_at', 'desc') + return $this->orderBy('created_at', 'desc') ->findWhere($where, ['id']) ->count(); - - return $users; } /**