mirror of
https://github.com/wallabag/wallabag.git
synced 2025-06-27 16:36:00 +00:00
Add IsGranted to EntryRestController
This commit is contained in:
parent
67c359a6dd
commit
ecb8b8ff49
7 changed files with 75 additions and 65 deletions
|
@ -6,7 +6,6 @@ use Doctrine\ORM\EntityManagerInterface;
|
|||
use Symfony\Component\DependencyInjection\Container;
|
||||
use Wallabag\Entity\Entry;
|
||||
use Wallabag\Entity\Tag;
|
||||
use Wallabag\Entity\User;
|
||||
use Wallabag\Helper\ContentProxy;
|
||||
|
||||
class EntryRestControllerTest extends WallabagApiTestCase
|
||||
|
@ -535,7 +534,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
public function testDeleteEntry()
|
||||
{
|
||||
$em = $this->client->getContainer()->get(EntityManagerInterface::class);
|
||||
$entry = new Entry($em->getReference(User::class, 1));
|
||||
$entry = new Entry($this->user);
|
||||
$entry->setUrl('http://0.0.0.0/test-delete-entry');
|
||||
$entry->setTitle('Test delete entry');
|
||||
$em->persist($entry);
|
||||
|
@ -569,7 +568,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
public function testDeleteEntryExpectId()
|
||||
{
|
||||
$em = $this->client->getContainer()->get(EntityManagerInterface::class);
|
||||
$entry = new Entry($em->getReference(User::class, 1));
|
||||
$entry = new Entry($this->user);
|
||||
$entry->setUrl('http://0.0.0.0/test-delete-entry-id');
|
||||
$em->persist($entry);
|
||||
$em->flush();
|
||||
|
@ -659,7 +658,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
public function testPostSameEntry()
|
||||
{
|
||||
$em = $this->client->getContainer()->get(EntityManagerInterface::class);
|
||||
$entry = new Entry($em->getReference(User::class, $this->getUserId()));
|
||||
$entry = new Entry($this->user);
|
||||
$entry->setUrl('https://www.20minutes.fr/sport/jo_2024/4095122-20240712-jo-paris-2024-saut-ange-bombe-comment-anne-hidalgo-va-plonger-seine-si-fait-vraiment');
|
||||
$entry->setArchived(true);
|
||||
$entry->addTag((new Tag())->setLabel('google'));
|
||||
|
@ -1355,7 +1354,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
public function testDeleteEntriesTagsListAction()
|
||||
{
|
||||
$em = $this->client->getContainer()->get(EntityManagerInterface::class);
|
||||
$entry = new Entry($em->getReference(User::class, $this->getUserId()));
|
||||
$entry = new Entry($this->user);
|
||||
$entry->setUrl('http://0.0.0.0/test-entry');
|
||||
$entry->addTag((new Tag())->setLabel('foo-tag'));
|
||||
$entry->addTag((new Tag())->setLabel('bar-tag'));
|
||||
|
@ -1423,7 +1422,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
public function testDeleteEntriesListAction()
|
||||
{
|
||||
$em = $this->client->getContainer()->get(EntityManagerInterface::class);
|
||||
$em->persist((new Entry($em->getReference(User::class, $this->getUserId())))->setUrl('http://0.0.0.0/test-entry1'));
|
||||
$em->persist((new Entry($this->user))->setUrl('http://0.0.0.0/test-entry1'));
|
||||
|
||||
$em->flush();
|
||||
|
||||
|
@ -1483,7 +1482,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
public function testRePostEntryAndReUsePublishedAt()
|
||||
{
|
||||
$em = $this->client->getContainer()->get(EntityManagerInterface::class);
|
||||
$entry = new Entry($em->getReference(User::class, $this->getUserId()));
|
||||
$entry = new Entry($this->user);
|
||||
$entry->setTitle('Antoine de Caunes : « Je veux avoir le droit de tâtonner »');
|
||||
$entry->setContent('hihi');
|
||||
$entry->setUrl('https://www.lemonde.fr/m-perso/article/2017/06/25/antoine-de-caunes-je-veux-avoir-le-droit-de-tatonner_5150728_4497916.html');
|
||||
|
|
|
@ -189,6 +189,20 @@ class EntryVoterTest extends TestCase
|
|||
$this->assertSame(VoterInterface::ACCESS_GRANTED, $this->entryVoter->vote($this->token, $this->entry, [EntryVoter::CREATE_ANNOTATIONS]));
|
||||
}
|
||||
|
||||
public function testVoteReturnsDeniedForNonEntryUserListTags(): void
|
||||
{
|
||||
$this->token->method('getUser')->willReturn(new User());
|
||||
|
||||
$this->assertSame(VoterInterface::ACCESS_DENIED, $this->entryVoter->vote($this->token, $this->entry, [EntryVoter::LIST_TAGS]));
|
||||
}
|
||||
|
||||
public function testVoteReturnsGrantedForEntryUserListTags(): void
|
||||
{
|
||||
$this->token->method('getUser')->willReturn($this->user);
|
||||
|
||||
$this->assertSame(VoterInterface::ACCESS_GRANTED, $this->entryVoter->vote($this->token, $this->entry, [EntryVoter::LIST_TAGS]));
|
||||
}
|
||||
|
||||
public function testVoteReturnsDeniedForNonEntryUserTag(): void
|
||||
{
|
||||
$this->token->method('getUser')->willReturn(new User());
|
||||
|
|
|
@ -112,6 +112,20 @@ class MainVoterTest extends TestCase
|
|||
$this->assertSame(VoterInterface::ACCESS_GRANTED, $this->mainVoter->vote($this->token, null, [MainVoter::IMPORT_ENTRIES]));
|
||||
}
|
||||
|
||||
public function testVoteReturnsDeniedForNonUserDeleteEntries(): void
|
||||
{
|
||||
$this->security->method('isGranted')->with('ROLE_USER')->willReturn(false);
|
||||
|
||||
$this->assertSame(VoterInterface::ACCESS_DENIED, $this->mainVoter->vote($this->token, null, [MainVoter::DELETE_ENTRIES]));
|
||||
}
|
||||
|
||||
public function testVoteReturnsGrantedForUserDeleteEntries(): void
|
||||
{
|
||||
$this->security->method('isGranted')->with('ROLE_USER')->willReturn(true);
|
||||
|
||||
$this->assertSame(VoterInterface::ACCESS_GRANTED, $this->mainVoter->vote($this->token, null, [MainVoter::DELETE_ENTRIES]));
|
||||
}
|
||||
|
||||
public function testVoteReturnsDeniedForNonUserListTags(): void
|
||||
{
|
||||
$this->security->method('isGranted')->with('ROLE_USER')->willReturn(false);
|
||||
|
@ -140,6 +154,20 @@ class MainVoterTest extends TestCase
|
|||
$this->assertSame(VoterInterface::ACCESS_GRANTED, $this->mainVoter->vote($this->token, null, [MainVoter::CREATE_TAGS]));
|
||||
}
|
||||
|
||||
public function testVoteReturnsDeniedForNonUserDeleteTags(): void
|
||||
{
|
||||
$this->security->method('isGranted')->with('ROLE_USER')->willReturn(false);
|
||||
|
||||
$this->assertSame(VoterInterface::ACCESS_DENIED, $this->mainVoter->vote($this->token, null, [MainVoter::DELETE_TAGS]));
|
||||
}
|
||||
|
||||
public function testVoteReturnsGrantedForUserDeleteTags(): void
|
||||
{
|
||||
$this->security->method('isGranted')->with('ROLE_USER')->willReturn(true);
|
||||
|
||||
$this->assertSame(VoterInterface::ACCESS_GRANTED, $this->mainVoter->vote($this->token, null, [MainVoter::DELETE_TAGS]));
|
||||
}
|
||||
|
||||
public function testVoteReturnsDeniedForNonUserListSiteCredentials(): void
|
||||
{
|
||||
$this->security->method('isGranted')->with('ROLE_USER')->willReturn(false);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue