merodiro/simple-roles

Simple laravel roles

v1.0 2018-04-10 20:18 UTC

This package is not auto-updated.

Last update: 2024-04-24 23:22:50 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

SimpleRoles is a simple way to have roles in your laravel projects.

preview

Installation

Via Composer

$ composer require merodiro/simple-roles

Run the command to publish the package migration

php artisan vendor:publish --provider="Merodiro\SimpleRoles\SimpleRolesServiceProvider"

Migrate database

It assumes that users are in the users table, if not you can change the config file

php artisan migrate

add middleware in app/Http/Kernel.php

protected $routeMiddleware = [
    ...
    'role'      => \Merodiro\SimpleRoles\Middleware\RoleMiddleware::class,        
];

Usage

add roles to roles array in simple-roles config file first

Set Role

$user->setRole('admin');

Remove Role

$user->removeRole();

Has Role

if($user->hasRole('admin')){
    // do something
}

Blade Templates

to show content to admins only

@role('admin')
    <h3>this is visible to admins only</h3>
@endrole

to show different content to admins and non-admins users

@role('admin')
    <h3>this is visible to admins only</h3>
@else
    <h3>this is visible to non admins only</h3>
@endrole

middleware

you can use middleware to limit accessing a certain route to admins only

Route::get('/admin', function () {
    ...
})->middleware('role:admin');

Testing

$ composer test

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

Security

If you discover any security-related issues, please email merodiro@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.