From 93e3e47c88a5296cf36fe9dcb3187c59fdb07ac0 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sun, 15 Oct 2017 20:03:49 +0800 Subject: [PATCH] Refactor user role relation --- app/Entities/Users/User.php | 17 ++++++++--------- tests/Traits/DatabaseMigrateSeeds.php | 4 ---- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/Entities/Users/User.php b/app/Entities/Users/User.php index 5472902..974d49b 100644 --- a/app/Entities/Users/User.php +++ b/app/Entities/Users/User.php @@ -43,9 +43,8 @@ class User extends Authenticatable */ public function assignRole($role) { - return $this->roles()->save( - Role::whereName($role)->firstOrFail() - ); + $roleId = Role::whereName($role)->firstOrFail()->id; + return $this->roles()->attach($roleId); } /** @@ -56,9 +55,8 @@ class User extends Authenticatable */ public function removeRole($role) { - return $this->roles()->detach( - Role::whereName($role)->firstOrFail() - ); + $roleId = Role::whereName($role)->firstOrFail()->id; + return $this->roles()->detach($roleId); } /** @@ -78,9 +76,10 @@ class User extends Authenticatable public function hasRoles(array $roleNameArray) { - return $this->roles->contains(function($role, $key) use ($roleNameArray) { - return in_array($role->name, $roleNameArray); - }); + return $this->roles->pluck('name') + ->contains(function($role, $key) use ($roleNameArray) { + return in_array($role, $roleNameArray); + }); } public function scopeHasRoles($query, array $roleNameArray) diff --git a/tests/Traits/DatabaseMigrateSeeds.php b/tests/Traits/DatabaseMigrateSeeds.php index 55134e8..de59cd9 100644 --- a/tests/Traits/DatabaseMigrateSeeds.php +++ b/tests/Traits/DatabaseMigrateSeeds.php @@ -17,9 +17,5 @@ trait DatabaseMigrateSeeds $this->artisan('db:seed'); $this->app[Kernel::class]->setArtisan(null); - - $this->beforeApplicationDestroyed(function () { - $this->artisan('migrate:rollback'); - }); } }