1. Go to this page and download the library: Download craftcamp/abac-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/ */
craftcamp / abac-bundle example snippets
class MarketController extends Controller
{
public function buyAction($productId) {
$product = $this->get('product_manager')->getProduct($productId);
// Call the "craftcamp_abac.security" to check if the user can buy the given product
$access = $this->get('craftcamp_abac.security')->enforce(
'product_buying_rule', // the rule name
$this->getUser(), // The current user
$product // The resource we want to check for access
);
if($access !== true) {
return new JsonResponse([
// In case of denied access, the library will return an array of the unmatched attributes slugs
'rejected_attributes' => $access
], 403);
}
}
}
// app/AppKernel.php
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = [
// ...
new CraftCamp\AbacBundle\CraftCampAbacBundle(),
];
// ...
return $bundles;
}
}
class VehicleHomologationController extends Controller
{
public function homologateAction($vehicleId) {
$vehicle = $this->get('vehicle_manager')->getProduct($vehicleId);
// Call the "craftcamp_abac.security" to check if the user can homologate the given vehicle
$access = $this->get('craftcamp_abac.security')->enforce(
'vehicle-homologation', // the rule name
$this->getUser(), // The current user
$vehicle // The resource we want to check for access
);
if($access !== true) {
return new JsonResponse([
// In case of denied access, the library will return an array of the unmatched attributes slugs
'rejected_attributes' => $access
], 403);
}
}
}
use PhpAbac\Abac;
class VehicleHomologationController extends Controller
{
public function homologateAction(Abac $abac, $vehicleId) {
$vehicle = $this->get('vehicle_manager')->getProduct($vehicleId);
$access = $abac->enforce(
'vehicle-homologation', // the rule name
$this->getUser(), // The current user
$vehicle // The resource we want to check for access
);
if($access !== true) {
return new JsonResponse([
// In case of denied access, the library will return an array of the unmatched attributes slugs
'rejected_attributes' => $access
], 403);
}
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.