1. Go to this page and download the library: Download samshal/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/ */
samshal / acl example snippets
Samshal\Acl;
use Samshal\Acl\{
Role\DefaultRole as Role,
Resource\DefaultResource as Resource,
Permission\DefaultPermission as Permission
};
$acl = new Acl();
...
$adminRole = new Role("Admin");
$accountantRole = new Role("Accountant", "This is optional: anybody who`s not an admin is an accountant");
$acl->add($adminRole);
$acl->add($accountantRole);
$patientFinancialHistoryResource = new Resource("patientFinancialHistory");
$acl->add($patientFinancialHistoryResource);
$editPermission = new Permission("edit");
$viewPermission = new Permission("view");
$acl->add($editPermission, $viewPermission);
...
...
$acl->addPermission('edit', 'view', 'create', 'print', 'delete'); //you can add even more permissions!
...
...
/**
* In the example below, admin is the name of a Role that's been added to the ACl using add() or addRole().
* Similarly view is a permission and patientFinancialHistory is a resource.
*
* Use the `can` keyword in between a role and a permission in a chain to set make the resource in question accessible or not to the role.
*/
$acl->admin->can->view('patientFinancialHistory');
$acl->accountant->cannot->delete('patientFinancialHistory'); //denying the role Accountant delete right on the PatienFinancialHistory resource.
...
...
$booleanResultIndicatingPermission = $acl->can->admin->view('patientFinancialHistory');
//We are asking a very simple question: can an Admin role View the patientFinancialHistory resource?
//even better, we could use it in a conditional
if ($acl->can->accountant->delete('patientFinancialHistory'))
{
//delete the patients financial history!
}
else
{
//this user does not have any permission to delete this resource, let him know that
}
...
...
$serializedAcl = serialize($acl);
//store $serializedAcl in a session
session_start();
$_SESSION["acl"] = $serializedAcl.
//or in a db
$sqlQuery = "INSERT INTO my_tbl VALUES ('$serializedAcl')";
/**
* File Name: patientHistories.php
*/
session_start();
$acl = unserialize($_SESSION["acl"]);
//use it!
if ($acl->can->accountant->delete('patientFinanicalHistory'))
{
//delete the patients financial history!
}
else
{
//this user does not have any permission to delete this resource, let him know that
}
...
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.