Skip to content
Zend Db Adapter for Casbin, Casbin is a powerful and efficient open-source access control library.
PHP
Branch: master
Clone or download
Latest commit abfd157 Sep 7, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src First commit. Aug 27, 2019
tests First commit. Aug 27, 2019
.gitignore First commit. Aug 27, 2019
.travis.yml First commit. Aug 27, 2019
LICENSE Initial commit Aug 27, 2019
README.md Update README.md Sep 7, 2019
composer.json First commit. Aug 27, 2019
phpunit.xml First commit. Aug 27, 2019

README.md

Zend Db Adapter for PHP-Casbin

Build Status Coverage Status Latest Stable Version Total Downloads License

Zend-Db adapter for PHP-Casbin.

The list of officially supported drivers:

  • IbmDb2: The ext/ibm_db2 driver
  • Mysqli: The ext/mysqli driver
  • Oci8: The ext/oci8 driver
  • Pgsql: The ext/pgsql driver
  • Sqlsrv: The ext/sqlsrv driver (from Microsoft)
  • Pdo_Mysql: MySQL via the PDO extension
  • Pdo_Sqlite: SQLite via the PDO extension
  • Pdo_Pgsql: PostgreSQL via the PDO extension

Installation

Use Composer.

composer require casbin/zend-db-adapter

Usage

Before using it, you need to create a table named casbin_rule for Casbin to store the policy.

Take mysql as an example:

CREATE TABLE `casbin_rule` (
  `ptype` varchar(255) NOT NULL,
  `v0` varchar(255) DEFAULT NULL,
  `v1` varchar(255) DEFAULT NULL,
  `v2` varchar(255) DEFAULT NULL,
  `v3` varchar(255) DEFAULT NULL,
  `v4` varchar(255) DEFAULT NULL,
  `v5` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Then you can start like this:


require_once './vendor/autoload.php';

use Casbin\Enforcer;
use Casbin\Util\Log;
use CasbinAdapter\ZendDb\Adapter;

$adapter = new Adapter([
	'driver' => 'Pdo_Mysql', // IbmDb2, Mysqli, Oci8, Pgsql, Sqlsrv, Pdo_Mysql, Pdo_Sqlite, Pdo_Pgsql
	'hostname' => '127.0.0.1',
	'database' => 'test',
	'username' => 'root',
	'password' => '',
	'port' => '3306',
]);

$e = new Enforcer('path/to/model.conf', $adapter);

$sub = "alice"; // the user that wants to access a resource.
$obj = "data1"; // the resource that is going to be accessed.
$act = "read"; // the operation that the user performs on the resource.

if ($e->enforce($sub, $obj, $act) === true) {
    // permit alice to read data1
} else {
    // deny the request, show an error
}

Getting Help

License

This project is licensed under the Apache 2.0 license.

You can’t perform that action at this time.