Giter Site home page Giter Site logo

acl's Introduction

laravolt/acl

Installation

Composer

composer require laravolt/acl

Service Provider

Skip this step if you are using Laravel 5.5 or above.

Laravolt\Acl\ServiceProvider::class,

Migrations

Publish migration file (optional):

php artisan vendor:publish --provider="Laravolt\Acl\ServiceProvider" --tag=migrations

Run migration:

php artisan migrate

Publish Configuration (Optional)

php artisan vendor:publish --provider="Laravolt\Acl\ServiceProvider" --tag=config

Usage

Add Laravolt\Acl\Traits\HasRoleAndPermission trait to User model:

<?php

namespace App;

use Laravolt\Acl\Traits\HasRoleAndPermission;

class User
{
    use HasRoleAndPermission;
}

After that, User will have following methods:

$user->roles()

Relationships that defines User has many Laravolt\Acl\Models\Role.

$user->hasRole($role, $checkAll = false)

Check if specific User has one or many roles. Return boolean true or false.

$user->assignRole($role)

Assign one or many roles to specific User. Possible values for $role are: id, array of id, role name, Role object, or array of Role object.

$user->revokeRole($role)

Revoke/remove one or many roles from specific User. Possible values for $role are: id, array of id, role name, Role object, or array of Role object.

$user->hasPermission($permission, $checkAll = false)

Check if specific User has one or many permissions. Return boolean true or false.

Command

php artisan laravolt:acl:sync-permission

Bypass Authorization

You can bypass authorization checking using Laravel built-in method:

// Place it somewhere before application running, e.g. in `AppServiceProvider`.
Gate::before(function($user){
    // check if $user superadmin
    // and then return true to skip all authorization checking
});

acl's People

Contributors

uyab avatar yohangdev avatar therour avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.