Handle slug collisions with disabled accounts properly.

This commit is contained in:
Peter Deltchev 2016-01-24 22:05:08 -08:00
parent 4e540de38e
commit 09de55d14d
2 changed files with 13 additions and 5 deletions

View file

@ -56,12 +56,19 @@ class RebuildArtists extends Command
*/ */
public function handle() public function handle()
{ {
$numberOfUsers = User::count();
$bar = $this->output->createProgressBar($numberOfUsers);
foreach(User::with(['tracks' => function($query) { foreach(User::with(['tracks' => function($query) {
$query->published()->listed(); $query->published()->listed();
}])->get() as $user) { }])->get() as $user) {
$bar->advance();
$user->track_count = $user->tracks->count(); $user->track_count = $user->tracks->count();
$user->save(); $user->save();
$this->info('Updated user #'.$user->id.'!');
} }
$bar->finish();
$this->line('');
} }
} }

View file

@ -35,12 +35,13 @@ class ArtistsController extends ApiControllerBase
{ {
public function getFavourites($slug) public function getFavourites($slug)
{ {
$user = User::whereSlug($slug)->first(); $user = User::where('slug', $slug)->whereNull('disabled_at')->first();
if (!$user) { if (!$user) {
App::abort(404); App::abort(404);
} }
$favs = Favourite::whereUserId($user->id)->with([ $favs = Favourite::where('user_id', $user->id)
->with([
'track.genre', 'track.genre',
'track.cover', 'track.cover',
'track.user', 'track.user',
@ -75,7 +76,7 @@ class ArtistsController extends ApiControllerBase
public function getContent($slug) public function getContent($slug)
{ {
$user = User::whereSlug($slug)->first(); $user = User::where('slug', $slug)->whereNull('disabled_at')->first();
if (!$user) { if (!$user) {
App::abort(404); App::abort(404);
} }
@ -110,7 +111,7 @@ class ArtistsController extends ApiControllerBase
public function getShow($slug) public function getShow($slug)
{ {
$user = User::whereSlug($slug) $user = User::where('slug', $slug)
->whereNull('disabled_at') ->whereNull('disabled_at')
->userDetails() ->userDetails()
->with([ ->with([