https://github.com/hexters/rolevel
Role & Permissions base on file for laravel
https://github.com/hexters/rolevel
laravel-roles laravel-roles-permissions roles
Last synced: about 1 year ago
JSON representation
Role & Permissions base on file for laravel
- Host: GitHub
- URL: https://github.com/hexters/rolevel
- Owner: hexters
- License: mit
- Created: 2019-08-30T03:04:59.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-03-05T03:53:46.000Z (over 6 years ago)
- Last Synced: 2025-03-16T14:57:08.818Z (about 1 year ago)
- Topics: laravel-roles, laravel-roles-permissions, roles
- Language: PHP
- Homepage:
- Size: 47.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## ROLEVEL
Package for hendle role & permission in laravel
### Require
* Bootstrap 4
### Installation
You can install this package via composer:
```
$ composer require hexters/rolevel
```
Publish vendor
```
$ php artisan vendor:publish --tag=rolevel
```
Put trait to your User Model
```
'Menu Access', // display name
'gate' => 'module.access.index', // must uniq
'url' => null, // URL can set null if menu have submenu
'classId' => '', // id attribute
'className' => '', // class style attribute
'classIcon' => '', // font icon code
/*
| ------ Submenu ------
*/
'childs' => [
[
'display' => 'Assign Permissions',
'gate' => 'module.access.assign.permission.index',
'url' => '/admin/assign/permission',
'classId' => '',
'className' => '',
'classIcon' => '',
'permissions' => [
[
'gate' => 'module.access.assign.permission.show',
'name' => 'Detail Permissions', // title
'description' => 'Show detail for permission' // info description
],
[
// More permission...
]
]
],
[
// More submenu...
]
]
],
[
// More menu...
]
];
```
After that please put script in your master layout, for showing menu access.
```
@if(auth()->check())
@php
$permissions = auth()->user()->permissions();
$viewMenu = function($menus) use (&$viewMenu, $permissions) {
$html = '';
foreach($menus as $menu) {
if(in_array($menu['gate'], $permissions)) {
$html .= view('vendor.rolevel.menu', ['menu' => $menu, 'view' => $viewMenu]);
}
}
return $html;
}
@endphp
- Dashboard
{!! $viewMenu(rolevel()->menus()) !!}
@endif
@yield('content')
```
You can custom style for your menu, open blade file in `resources/views/vendor/rolevel/menu.blade.php`
You should assign role to your User account before.
```
$user = App\User::find(1);
$role = App\Role::find(1);
$user->roles()->sync([ $role->id ], false);
```
In your any controller you should declaration `Gate` to provide access to your module, for example
```
Create Account
@endcan
// OR
if($user->can('module.access.assign.permission.store')) {
// Condition
}
```
You can check [this link](https://laravel.com/docs/5.8/authorization#via-blade-templates) and [this link](https://laravel.com/docs/5.8/authorization#via-the-user-model)
Check config file in `config/rolevel.php` if you have change such as:
* Model Role possition
* Link admin prefix
* Middleware for access module assign
* Template reference
For default you can access module assign permission in `http://localhost:8000/admin/roles`