Laravel Admin Panel
An admin panel for managing users, roles, permissions & crud., (*1)
Requirements
Laravel >=5.5
PHP >= 7.0
Features
- User, Role & Permission Manager
- CRUD Generator
- Activity Log
- Page CRUD
- Settings
Installation
-
Run, (*2)
composer require appzcoder/laravel-admin
-
Install the admin package., (*3)
php artisan laravel-admin:install
Service provider will be discovered automatically., (*4)
-
Make sure your user model's has a HasRoles trait app/Models/User.php., (*5)
class User extends Authenticatable
{
use Notifiable, HasRoles;
...
-
You can generate CRUD easily through generator tool now., (*6)
Note: If you are using Laravel 7+ then scaffold the authentication with bootstrap for a better experience., (*7)
Usage
-
Create some permissions., (*8)
-
Create some roles., (*9)
-
Assign permission(s) to role., (*10)
-
Create user(s) with role., (*11)
-
For checking authenticated user's role see below:, (*12)
// Add role middleware in app/Http/Kernel.php
protected $routeMiddleware = [
...
'role' => \App\Http\Middleware\CheckRole::class,
];
// Check role anywhere
if (Auth::check() && Auth::user()->hasRole('admin')) {
// Do admin stuff here
} else {
// Do nothing
}
// Check role in route middleware
Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => ['auth', 'role:admin']], function () {
Route::get('/', ['uses' => 'AdminController@index']);
});
// Check permission in route middleware
Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => ['auth', 'can:write_user']], function () {
Route::get('/', ['uses' => 'AdminController@index']);
});
-
For checking permissions see below:, (*13)
if ($user->can('permission-name')) {
// Do something
}
Learn more about ACL from here, (*14)
For activity log please read spatie/laravel-activitylog docs, (*15)
Screenshots
, (*16)
, (*17)
, (*18)
, (*19)
Author
Sohel Amin :email: Email Me, (*20)
License
This project is licensed under the MIT License - see the License File for details, (*21)