1. Go to this page and download the library: Download crisu83/overseer 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/ */
crisu83 / overseer example snippets
re(__DIR__ . '/User.php');
equire(__DIR__ . '/AuthorRule.php');
use Crisu83\Overseer\Entity\Assignment;
use Crisu83\Overseer\Entity\Permission;
use Crisu83\Overseer\Entity\Role;
use Crisu83\Overseer\Overseer;
use Crisu83\Overseer\Runtime\AssignmentStorage;
use Crisu83\Overseer\Runtime\PermissionStorage;
use Crisu83\Overseer\Runtime\RoleStorage;
$roleStorage = new RoleStorage;
$permissionStorage = new PermissionStorage;
$assignmentStorage = new AssignmentStorage;
$overseer = new Overseer($roleStorage, $permissionStorage, $assignmentStorage);
$myUser = new User(1); // subject
$myBook = new Book(1); // resource
$writer = new Role('writer');
$editor = new Role('editor');
$write = new Permission('book.write', 'book');
$author = new Permission('book.author', 'book');
$read = new Permission('book.read', 'book');
$author->addRule(new AuthorRule);
$writer->addPermission('book.write');
$writer->addPermission('book.author');
$editor->addPermission('book.read');
$overseer->saveRole($writer);
$overseer->saveRole($editor);
$overseer->savePermission($read);
$overseer->savePermission($write);
$overseer->savePermission($author);
$overseer->saveAssignment(new Assignment(1, ['writer', 'editor']));
echo "My permissions: " . PHP_EOL;
echo " " . implode(', ', $overseer->getPermissions($myUser)) . PHP_EOL;
echo "My permissions to the book: " . PHP_EOL;
echo " " . implode(', ', $overseer->getPermissions($myUser, $myBook)) . PHP_EOL;
if ($overseer->hasPermission('book.author', $myUser, $myBook)) {
echo "I am the author of the book." . PHP_EOL;
} else {
echo "I am not the author of the book" . PHP_EOL;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.