Skip to content

php-casbin/laminas-db-adapter

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

Laminas-db Adapter for PHP-Casbin

Build Status Coverage Status Latest Stable Version Total Downloads License

Laminas-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/laminas-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\LaminasDb\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.