1. Go to this page and download the library: Download yarhon/route-guard-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
yarhon / route-guard-bundle example snippets
namespace App\Service;
use Yarhon\RouteGuardBundle\Security\RouteAuthorizationCheckerInterface;
use Yarhon\RouteGuardBundle\Routing\RouteContext;
class SomeService
{
private $authorizationChecker;
public function __construct(RouteAuthorizationCheckerInterface $authorizationChecker)
{
$this->authorizationChecker = $authorizationChecker;
}
public function check()
{
$routeContext = new RouteContext('blog', ['page' => 10], 'GET');
return $this->authorizationChecker->isGranted($routeContext);
}
}
namespace App\Service;
use Yarhon\RouteGuardBundle\Security\RouteAuthorizationCheckerInterface;
use Yarhon\RouteGuardBundle\Routing\RouteContext;
class SomeService
{
private $authorizationChecker;
public function __construct(RouteAuthorizationCheckerInterface $authorizationChecker)
{
$this->authorizationChecker = $authorizationChecker;
}
public function check()
{
$routeContext = new RouteContext('blog', ['page' => 10], 'GET');
return $this->authorizationChecker->isGranted($routeContext);
}
}
namespace App\Service;
use Yarhon\RouteGuardBundle\Routing\AuthorizedUrlGeneratorInterface;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
class SomeService
{
private $urlGenerator;
public function __construct(AuthorizedUrlGeneratorInterface $urlGenerator)
{
$this->urlGenerator = $urlGenerator;
}
public function generateUrl()
{
return $this->urlGenerator->generate('blog', ['page' => 10], 'GET', UrlGeneratorInterface::ABSOLUTE_PATH);
}
}
namespace App\Service;
use Yarhon\RouteGuardBundle\Security\TestLoaderInterface;
use Yarhon\RouteGuardBundle\Routing\RouteContext;
class SomeService
{
private $testLoader;
public function __construct(TestLoaderInterface $testLoader)
{
$this->testLoader = $testLoader;
}
public function getTests()
{
$routeContext = new RouteContext('blog', ['page' => 10], 'GET');
return $this->testLoader->load($routeContext);
}
}
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Yarhon\RouteGuardBundle\Annotation\MethodCallAuthorizationTest;
class Controller extends AbstractController
{
public function testAdminIsGranted()
{
// some logic
$this->denyAccessUnlessGranted('ROLE_ADMIN');
}
/**
* @MethodCallAuthorizationTest("testAdminIsGranted")
*/
public function admin()
{
$this->testAdminIsGranted();
// ............
}
}