Skip to content
Use Casbin in Laravel, Casbin is a powerful and efficient open-source access control library.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Increase the log interface for laravel Feb 28, 2019
database/migrations Added the config for casbin and optimized the code Nov 12, 2018
src
tests Added removeFilteredPolicy Mar 1, 2019
.gitignore Improve test code and fix bugs Feb 27, 2019
.travis.yml Improve test code and fix bugs Feb 27, 2019
LICENSE Initial commit Oct 18, 2018
README.md We now recommend laravel-authz Mar 11, 2019
composer.json Improve test code and fix bugs Feb 27, 2019
phpunit.xml Improve test code and fix bugs Feb 27, 2019

README.md

Laravel-Casbin

Build Status Coverage Status Latest Stable Version Total Downloads License

Use Casbin in Laravel.

It is worth mentioning that we now recommend laravel-authz.

Installation

Require this package in the composer.json of your Laravel project. This will download the package.

composer require casbin/laravel-adapter

The CasbinAdapter\Laravel\CasbinServiceProvider is auto-discovered and registered by default, but if you want to register it yourself:

Add the ServiceProvider in config/app.php

'providers' => [
    /*
     * Package Service Providers...
     */
    CasbinAdapter\Laravel\CasbinServiceProvider::class,
]

The Casbin facade is also auto-discovered, but if you want to add it manually:

Add the Facade in config/app.php

'aliases' => [
    // ...
    'Casbin' => CasbinAdapter\Laravel\Facades\Casbin::class,
]

To publish the config, run the vendor publish command:

php artisan vendor:publish

This will create a new model config file named config/casbin-basic-model.conf and a new casbin config file named config/casbin.php.

To migrate the migrations, run the migrate command:

php artisan migrate

This will create a new table named casbin_rule

Usage


use \Casbin;

$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 (Casbin::enforce($sub, $obj, $act) === true) {
    // permit alice to read data1
} else {
    // deny the request, show an error
}

Define your own model.conf

You can modify the config file named config/casbin-basic-model.conf

Learning Casbin

You can find the full documentation of Casbin on the website.

You can’t perform that action at this time.