mirror of
https://github.com/wallabag/wallabag.git
synced 2025-01-31 07:47:28 +01:00
Fix API allowed_registration
Two configuration options need to be enabled to allow user registration via the API: 1) fosuser_registration, which indicates whether registration is allowed at all (frontend and API) 2) api_user_registration, which indicates whether registration is allowed via the API
This commit is contained in:
parent
2f665f0257
commit
5a5148707c
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Wallabag\ApiBundle\Controller;
|
namespace Wallabag\ApiBundle\Controller;
|
||||||
|
|
||||||
|
use Craue\ConfigBundle\Util\Config;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use FOS\RestBundle\Controller\AbstractFOSRestController;
|
use FOS\RestBundle\Controller\AbstractFOSRestController;
|
||||||
use JMS\Serializer\SerializationContext;
|
use JMS\Serializer\SerializationContext;
|
||||||
@ -75,12 +76,12 @@ class WallabagRestController extends AbstractFOSRestController
|
|||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
*/
|
*/
|
||||||
public function getInfoAction()
|
public function getInfoAction(Config $craueConfig)
|
||||||
{
|
{
|
||||||
$info = [
|
$info = [
|
||||||
'appname' => 'wallabag',
|
'appname' => 'wallabag',
|
||||||
'version' => $this->getParameter('wallabag_core.version'),
|
'version' => $this->getParameter('wallabag_core.version'),
|
||||||
'allowed_registration' => $this->getParameter('fosuser_registration'),
|
'allowed_registration' => $this->getParameter('fosuser_registration') && $craueConfig->get('api_user_registration'),
|
||||||
];
|
];
|
||||||
|
|
||||||
return (new JsonResponse())->setJson($this->serializer->serialize($info, 'json'));
|
return (new JsonResponse())->setJson($this->serializer->serialize($info, 'json'));
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Tests\Wallabag\ApiBundle\Controller;
|
namespace Tests\Wallabag\ApiBundle\Controller;
|
||||||
|
|
||||||
|
use Craue\ConfigBundle\Util\Config;
|
||||||
use Tests\Wallabag\ApiBundle\WallabagApiTestCase;
|
use Tests\Wallabag\ApiBundle\WallabagApiTestCase;
|
||||||
|
|
||||||
class WallabagRestControllerTest extends WallabagApiTestCase
|
class WallabagRestControllerTest extends WallabagApiTestCase
|
||||||
@ -35,4 +36,32 @@ class WallabagRestControllerTest extends WallabagApiTestCase
|
|||||||
|
|
||||||
$this->assertSame('wallabag', $content['appname']);
|
$this->assertSame('wallabag', $content['appname']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testAllowedRegistration()
|
||||||
|
{
|
||||||
|
// create a new client instead of using $this->client to be sure client isn't authenticated
|
||||||
|
$client = static::createClient();
|
||||||
|
|
||||||
|
if (!$client->getContainer()->getParameter('fosuser_registration')) {
|
||||||
|
$this->markTestSkipped('fosuser_registration is not enabled.');
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$client->getContainer()->get(Config::class)->set('api_user_registration', 1);
|
||||||
|
|
||||||
|
$client->request('GET', '/api/info');
|
||||||
|
|
||||||
|
$content = json_decode($client->getResponse()->getContent(), true);
|
||||||
|
|
||||||
|
$this->assertTrue($content['allowed_registration']);
|
||||||
|
|
||||||
|
$client->getContainer()->get(Config::class)->set('api_user_registration', 0);
|
||||||
|
|
||||||
|
$client->request('GET', '/api/info');
|
||||||
|
|
||||||
|
$content = json_decode($client->getResponse()->getContent(), true);
|
||||||
|
|
||||||
|
$this->assertFalse($content['allowed_registration']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user