1. Go to this page and download the library: Download geggleto/psr7-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/ */
geggleto / psr7-acl example snippets
//Define or Pull your ACL's into the following format
/*
$config = [
"resources" => ["/", "/no", "/yes"],
"roles" => ["guest", "user1", "user2"],
"assignments" => [
"allow" => [
"guest" => ["/"],
"user1" => ["/", "/no"],
"user2" => ["/", "/yes"]
],
"deny" => [
"guest" => ["/no", "/yes"],
"user1" => ["/yes"],
"user2" => ["/no"]
]
]
];
*/
//In Slim v3
$app->add(\Geggleto\Acl\AclRepository(["guest"],
//This should be in a nice php file by itself for easy inclusion...
$app->add(function (Request $request, Response $res, $next) {
/** @var $aclRepo AclRepository */
$aclRepo = $this->get(AclRepository::class); //In Slim 3 the container is bound to function definitions
$allowed = false; // We assume that the user cannot access the route
$route = '/' . ltrim($request->getUri()->getPath(), '/'); //We construct our path
try { //Check here... This will pass when a route is simple and there is no route parameters
$allowed = $aclRepo->isAllowedWithRoles($aclRepo->getRole(), $route);
} catch (InvalidArgumentException $iae) { //This is executed in cases where there is a route parameters... /user/{id:}
$fn = function (ServerRequestInterface $requestInterface, AclRepository $aclRepo) {
//This will likely only work in Slim 3... This
$acl = new Acl();
$acl->addWhitelistItem('/api');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.