mirror of
https://github.com/flarum/framework.git
synced 2025-01-11 05:43:40 +08:00
6e8884f190
Only users that have the new `viewHiddenGroups` permissions will be able to see these groups. You might want this when you want to give certain users special permissions, but don't want to make your authorization scheme public to regular users. Co-authored-by: luceos <daniel+github@klabbers.email>
83 lines
1.9 KiB
PHP
83 lines
1.9 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of Flarum.
|
|
*
|
|
* For detailed copyright and license information, please view the
|
|
* LICENSE file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Flarum\Tests\integration\api\groups;
|
|
|
|
use Flarum\Tests\integration\RetrievesAuthorizedUsers;
|
|
use Flarum\Tests\integration\TestCase;
|
|
use Illuminate\Support\Arr;
|
|
|
|
class ListTest extends TestCase
|
|
{
|
|
use RetrievesAuthorizedUsers;
|
|
|
|
public function setUp()
|
|
{
|
|
parent::setUp();
|
|
|
|
$this->prepareDatabase([
|
|
'users' => [
|
|
$this->adminUser(),
|
|
$this->normalUser(),
|
|
],
|
|
'groups' => [
|
|
$this->adminGroup(),
|
|
$this->hiddenGroup()
|
|
],
|
|
'group_user' => [
|
|
['user_id' => 1, 'group_id' => 1],
|
|
],
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*/
|
|
public function shows_limited_index_for_guest()
|
|
{
|
|
$response = $this->send(
|
|
$this->request('GET', '/api/groups')
|
|
);
|
|
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($response->getBody()->getContents(), true);
|
|
|
|
$this->assertEquals(['1'], Arr::pluck($data['data'], 'id'));
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*/
|
|
public function shows_index_for_admin()
|
|
{
|
|
$response = $this->send(
|
|
$this->request('GET', '/api/groups', [
|
|
'authenticatedAs' => 1,
|
|
])
|
|
);
|
|
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($response->getBody()->getContents(), true);
|
|
|
|
$this->assertEquals(['1', '10'], Arr::pluck($data['data'], 'id'));
|
|
}
|
|
|
|
protected function hiddenGroup(): array
|
|
{
|
|
return [
|
|
'id' => 10,
|
|
'name_singular' => 'Hidden',
|
|
'name_plural' => 'Ninjas',
|
|
'color' => null,
|
|
'icon' => 'fas fa-wrench',
|
|
'is_hidden' => 1
|
|
];
|
|
}
|
|
}
|