PHP code example of nybbl / access-acl
1. Go to this page and download the library: Download nybbl/access-acl 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/ */
nybbl / access-acl example snippets
return [
...
'Nybbl\AccessAcl',
];
'access_manager' => [
'redirect_route_name' => 'application.home',
'default_access_all_role' => 'Guest',
],
'controllers' => [
'factories' => [
Controller\ApplicationController::class => InvokableFactory::class,
],
],
## This is where you can specify your resources
'access_manager' => [
'resources' => [
Controller\ApplicationController::class => [
[
'allow' => 'Guest',
'actions' => ['index'],
],
[
'allow' => 'Admin',
'actions' => ['home', 'users', 'posts'],
],
],
],
],
'service_manager' => [
'aliases' => [
Nybbl\AccessAcl\Contract\RoleProviderInterface::class => MyCustomRoleProvider::class,
],
],
class AdminRole implements RoleInterface
{
// Implement body methods.
}
use Nybbl\AccessAcl\Contract\DynamicAssertionInterface;
class ExampleAssertion implements DynamicAssertionInterface
{
/**
* @param string $resource
* @param null $privilege
* @param array $options
* @return bool|mixed
*/
public function assert(string $resource, $privilege = null, array $options = [])
{
// Implement yor logic based on the result...
if ($options['can.edit']) {
if ($options['identity']->id() === $options['blogPost']->ownerId()) {
return self:ACCESS_GRANTED;
}
}
}
}
public function editAction()
{
$this->assert(ExampleAssertion::class, 'index', 'can.edit', [
'identity' => $this->identity(),
'blogPost' => $blogPostEntity,
]);
return new ViewModel();
}