improve permission checks for timesheets with activated lockdown (#2271)

This commit is contained in:
Kevin Papst
2021-01-17 17:50:37 +01:00
committed by GitHub
parent 8d72d114c7
commit 67d5cba09f
24 changed files with 595 additions and 111 deletions

View File

@@ -11,29 +11,18 @@ namespace App\Tests\Voter;
use App\Entity\User;
use App\Repository\RolePermissionRepository;
use App\Security\AclDecisionManager;
use App\Security\RolePermissionManager;
use App\Voter\AbstractVoter;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Security\Core\Authorization\Voter\Voter;
abstract class AbstractVoterTest extends TestCase
{
/**
* @param string $voterClass
* @param User $user
* @return AbstractVoter
* @throws \ReflectionException
*/
protected function getVoter(string $voterClass, User $user)
protected function getVoter(string $voterClass): Voter
{
$isAuthenticated = empty($user->getRoles());
$accessManager = $this->getMockBuilder(AclDecisionManager::class)->disableOriginalConstructor()->getMock();
$accessManager->method('isFullyAuthenticated')->willReturn($isAuthenticated);
$class = new \ReflectionClass($voterClass);
/** @var AbstractVoter $voter */
$voter = $class->newInstance($accessManager, $this->getRolePermissionManager());
self::assertInstanceOf(AbstractVoter::class, $voter);
/** @var Voter $voter */
$voter = $class->newInstance($this->getRolePermissionManager());
self::assertInstanceOf(Voter::class, $voter);
return $voter;
}