Skip to content

merodiro/simple-roles

Repository files navigation

SimpleRoles

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 [email protected] instead of using the issue tracker.

Credits

License

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