PHP code example of alichry / laminas-accesscontrol
1. Go to this page and download the library: Download alichry/laminas-accesscontrol 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/ */
alichry / laminas-accesscontrol example snippets
use AliChry\Laminas\AccessControl\ArrayAccessControlList as ACL;
use AliChry\Laminas\AccessControl\Lists\ArrayListAdapter as LA;
use AliChry\Laminas\AccessControl\Resource\ResourceIdentifier;
$controllers = [
TestController::class => ACL::ACCESS_ALL,
TestAuthController::class => ACL::ACCESS_AUTHENTICATED_ONLY,
TestMultipleController::class => [
// methods
'getAction' => ACL::ACCESS_ALL,
'disable' => ACL::ACCESS_REJECT_ALL,
'admin' => ACL::role('admin'),
'editAction' => ACL::permission('edit')
]
];
$identities = [
'[email protected] ' => [
'roles' => [
'admin'
],
'permissions' => []
]
];
$roles = [
'admin' => [
'special-admin-perm'
]
];
$permissions = [
'special-admin-perm',
'edit'
];
$acl = new ACL(
LA::MODE_STRICT,
ACL::POLICY_REJECT,
$controllers,
$identities,
$roles,
$permissions
);
$unauthStatus = $acl->getAccessStatus(
'[email protected] ',
new ResourceIdentifier(
TestMultipleController::class,
'editAction'
)
);
echo 'Code: ' . $unauthStatus->getCode() . PHP_EOL; // Code: -3 (UNAUTHORIZED)
echo 'Identity: ' . $unauthStatus->getIdentity() . PHP_EOL; // Identity: [email protected]
echo 'Messages: ' . implode(', ', $unauthStatus->getMessages()) . PHP_EOL; // Identity "[email protected] "