Skip to content
This repository was archived by the owner on Oct 27, 2020. It is now read-only.

php-casbin/laravel-casbin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

945092c · Apr 2, 2019

History

12 Commits
Feb 28, 2019
Nov 12, 2018
Apr 2, 2019
Mar 1, 2019
Feb 27, 2019
Feb 27, 2019
Oct 18, 2018
Mar 11, 2019
Feb 27, 2019
Feb 27, 2019

Repository files navigation

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.