ondrejbakan/permissions

There is no license information available for the latest version (v1.0.0) of this package.

Very simple roles and permissions for Laravel 5.

v1.0.0 2016-08-18 22:33 UTC

This package is not auto-updated.

Last update: 2024-09-06 21:35:52 UTC


README

Every User should have one or more Roles. Role table should include column name, which is then used as key in your permissions config.

This package is very, VERY, simple. You don't have to use the Traits included, you can copy&paste methods inside them, or even customize them to fit your own models.

Installation

Install the package with composer:

composer require ondrejbakan/permissions

Once the package is downloaded, add the service provider by opening config/app.php and making the following changes:

Add a new item to the providers array:

OndrejBakan\Permissions\PermissionsServiceProvider::class,

Add trait to your User model:

use OndrejBakan\Permissions\Traits\HasRoles;

class User extends Model
{
    use HasRoles;
}

Add trait to your Role Model:

use OndrejBakan\Permissions\Traits\HasPermissions;

class Role extends Model
{
    use HasPermissions;
}

Publish config with:

php artisan vendor:publish

Open and edit ondrejbakan/permissions/config.php in Laravel's config folder, for example:

<?php

    return [
        'permissions' => [
            'admin' => [
                'posts.create',
                'posts.read',
                'posts.update',
                'posts.delete',
            ],
            'user' => [
                'posts.read',
            ],
        ]
    ];

Usage

All this package does is register simple permissions at Laravel's Gate, so you can check them via standard Laravel Authorization methods described in the docs, for example:

$user->can('posts.create');

And that's all. As I said, this package is very simple, no magic involved. On the other side, it does not cripple your database and it does not force you to use someone else's database structure.