Browse Source

Add user's manager authorization to delete a user

pull/16/head
Nafies Luthfi 8 years ago
parent
commit
80e80a40f5
  1. 5
      app/Policies/UserPolicy.php
  2. 13
      tests/Unit/Policies/UserPolicyTest.php

5
app/Policies/UserPolicy.php

@ -13,4 +13,9 @@ class UserPolicy
{
return $editableUser->manager_id == $user->id;
}
public function delete(User $user, User $editableUser)
{
return $editableUser->manager_id == $user->id;
}
}

13
tests/Unit/Policies/UserPolicyTest.php

@ -3,19 +3,28 @@
namespace Tests\Unit\Policies;
use App\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
class UserPolicyTest extends TestCase
{
use RefreshDatabase;
/** @test */
public function admin_can_edit_users_profile()
public function manager_can_edit_users_profile()
{
$manager = factory(User::class)->create();
$user = factory(User::class)->create(['manager_id' => $manager->id]);
$this->assertTrue($manager->can('edit', $user));
}
/** @test */
public function manager_can_delete_a_user()
{
$manager = factory(User::class)->create();
$user = factory(User::class)->create(['manager_id' => $manager->id]);
$this->assertTrue($manager->can('delete', $user));
}
}
Loading…
Cancel
Save