selfreliance / fixroles
Powerful package for handling roles and permissions in Laravel 5 [FIX]
This package's canonical repository appears to be gone and the package has been frozen as a result.
1.0.35
2017-11-30 11:06 UTC
Requires
- php: >=5.5.9
- illuminate/support: ~5.0
- selfreliance/adminamazing: ^1.0
- selfreliance/adminrole: ^1.0
README
How to install
Install via composer
composer require selfreliance/fixroles
Config, migrations and seed
php artisan vendor:publish --provider="Selfreliance\fixroles\RolesServiceProvider" --force php artisan migrate php artisan db:seed --class="CreateOrAttachAdmin"
Edit model User (App/User.php)
use Selfreliance\fixroles\Traits\HasRole; use Selfreliance\fixroles\Contracts\HasRole as HasRoleContract; class User extends Authenticatable implements HasRoleContract { use HasRole; protected $fillable = [ 'role_id', // ] // }
Edit model Kernel (App/Http/Kernel.php)
Transfer from protected $middlewareGroups to protected $middleware
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Session\Middleware\StartSession::class,
Add to $routeMiddleware
'CheckAccess' => \Selfreliance\Adminamazing\middleware\CheckAccess::class
Usage
Creating Role
use Selfreliance\fixroles\Models\Role; $accessible = array( config('adminamazing.path'), "adminrole", "adminmenu" ); $adminRole = Role::create([ 'name' => 'Admin', 'slug' => 'admin', 'accessible_pages' => json_encode($accessible) ]);
Because of
Slugable
trait, if you make a mistake and for example leave a space in slug parameter, it'll be replaced with a dot automatically, because ofstr_slug
function.
Attaching and Detaching Role
use App\User; $user = User::find($id); $user->attachRole($adminRole->id); // you can pass id, name or slug
$user->detachRole($adminRole->id); // you can pass id, name or slug
Checking For Role
if($user->hasRole($adminRole->id)) // you can pass id, name or slug { // }
Blade Extensions
There are four Blade extensions. Basically, it is replacement for classic if statements.
@checkrole('admin') // @if(Auth::check() && Auth::user()->checkRole($prefix)) // user role has the specified prefix => admin @endcheck