namespace Tests\Api;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Tests\TestCase;
class RolesApiTest extends TestCase
$resp = $this->getJson($this->baseEndpoint . '?count=1&sort=+id');
$resp->assertJson(['data' => [
[
- 'id' => $firstRole->id,
- 'display_name' => $firstRole->display_name,
- 'description' => $firstRole->description,
- 'mfa_enforced' => $firstRole->mfa_enforced,
+ 'id' => $firstRole->id,
+ 'display_name' => $firstRole->display_name,
+ 'description' => $firstRole->description,
+ 'mfa_enforced' => $firstRole->mfa_enforced,
+ 'external_auth_id' => $firstRole->external_auth_id,
'permissions_count' => $firstRole->permissions()->count(),
- 'users_count' => $firstRole->users()->count(),
- 'created_at' => $firstRole->created_at->toJSON(),
- 'updated_at' => $firstRole->updated_at->toJSON(),
+ 'users_count' => $firstRole->users()->count(),
+ 'created_at' => $firstRole->created_at->toJSON(),
+ 'updated_at' => $firstRole->updated_at->toJSON(),
],
]]);
'display_name' => 'My awesome role',
'description' => 'My great role description',
'mfa_enforced' => true,
+ 'external_auth_id' => 'auth_id',
'permissions' => [
'content-export',
- 'users-manage',
- 'page-view-own',
'page-view-all',
+ 'page-view-own',
+ 'users-manage',
]
]);
'display_name' => 'My awesome role',
'description' => 'My great role description',
'mfa_enforced' => true,
+ 'external_auth_id' => 'auth_id',
'permissions' => [
'content-export',
- 'users-manage',
- 'page-view-own',
'page-view-all',
+ 'page-view-own',
+ 'users-manage',
]
]);
'display_name' => 'My awesome role',
'description' => 'My great role description',
'mfa_enforced' => true,
+ 'external_auth_id' => 'auth_id',
]);
/** @var Role $role */
'description' => 'My new role',
]);
$resp->assertStatus(422);
- $resp->assertJson($this->validationResponse(['display_name' => ['The display_name field is required.']]));
+ $resp->assertJson($this->validationResponse(['display_name' => ['The display name field is required.']]));
$resp = $this->postJson($this->baseEndpoint, [
'name' => 'My great role with a too long desc',
'display_name' => $role->display_name,
'description' => $role->description,
'mfa_enforced' => $role->mfa_enforced,
- 'permissions' => $role->permissions()->pluck('name')->toArray(),
+ 'external_auth_id' => $role->external_auth_id,
+ 'permissions' => $role->permissions()->orderBy('name', 'asc')->pluck('name')->toArray(),
'users' => $role->users()->get()->map(function (User $user) {
return [
'id' => $user->id,
'display_name' => 'My updated role',
'description' => 'My great role description',
'mfa_enforced' => true,
+ 'external_auth_id' => 'updated_auth_id',
'permissions' => [
'content-export',
- 'users-manage',
- 'page-view-own',
'page-view-all',
+ 'page-view-own',
+ 'users-manage',
]
]);
'display_name' => 'My updated role',
'description' => 'My great role description',
'mfa_enforced' => true,
+ 'external_auth_id' => 'updated_auth_id',
'permissions' => [
'content-export',
- 'users-manage',
- 'page-view-own',
'page-view-all',
+ 'page-view-own',
+ 'users-manage',
]
]);
$role->refresh();
$this->assertEquals(4, $role->permissions()->count());
+ $this->assertActivityExists(ActivityType::ROLE_UPDATE);
}
public function test_update_endpoint_does_not_remove_info_if_not_provided()
$permissionCount = $role->permissions()->count();
$resp->assertStatus(200);
- $this->assertDatabaseHas('users', [
+ $this->assertDatabaseHas('roles', [
'id' => $role->id,
'display_name' => $role->display_name,
'description' => $role->description,
+ 'external_auth_id' => $role->external_auth_id,
]);
$role->refresh();