From 09de55d14d3272aa05e4096c32fb54dcd995876e Mon Sep 17 00:00:00 2001 From: Peter Deltchev Date: Sun, 24 Jan 2016 22:05:08 -0800 Subject: [PATCH] Handle slug collisions with disabled accounts properly. --- app/Console/Commands/RebuildArtists.php | 9 ++++++++- app/Http/Controllers/Api/Web/ArtistsController.php | 9 +++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/Console/Commands/RebuildArtists.php b/app/Console/Commands/RebuildArtists.php index 84e74d78..3f9bf502 100644 --- a/app/Console/Commands/RebuildArtists.php +++ b/app/Console/Commands/RebuildArtists.php @@ -56,12 +56,19 @@ class RebuildArtists extends Command */ public function handle() { + $numberOfUsers = User::count(); + + $bar = $this->output->createProgressBar($numberOfUsers); + foreach(User::with(['tracks' => function($query) { $query->published()->listed(); }])->get() as $user) { + $bar->advance(); $user->track_count = $user->tracks->count(); $user->save(); - $this->info('Updated user #'.$user->id.'!'); } + + $bar->finish(); + $this->line(''); } } diff --git a/app/Http/Controllers/Api/Web/ArtistsController.php b/app/Http/Controllers/Api/Web/ArtistsController.php index 5999432e..1c069d2c 100644 --- a/app/Http/Controllers/Api/Web/ArtistsController.php +++ b/app/Http/Controllers/Api/Web/ArtistsController.php @@ -35,12 +35,13 @@ class ArtistsController extends ApiControllerBase { public function getFavourites($slug) { - $user = User::whereSlug($slug)->first(); + $user = User::where('slug', $slug)->whereNull('disabled_at')->first(); if (!$user) { App::abort(404); } - $favs = Favourite::whereUserId($user->id)->with([ + $favs = Favourite::where('user_id', $user->id) + ->with([ 'track.genre', 'track.cover', 'track.user', @@ -75,7 +76,7 @@ class ArtistsController extends ApiControllerBase public function getContent($slug) { - $user = User::whereSlug($slug)->first(); + $user = User::where('slug', $slug)->whereNull('disabled_at')->first(); if (!$user) { App::abort(404); } @@ -110,7 +111,7 @@ class ArtistsController extends ApiControllerBase public function getShow($slug) { - $user = User::whereSlug($slug) + $user = User::where('slug', $slug) ->whereNull('disabled_at') ->userDetails() ->with([