An admin panel for managing users, roles, permissions & crud.
Laravel >=5.5
PHP >= 7.0
- User, Role & Permission Manager
- CRUD Generator
- Activity Log
- Page CRUD
- Settings
-
Run
composer require appzcoder/laravel-admin
-
Install the admin package.
php artisan laravel-admin:install
Service provider will be discovered automatically.
-
Make sure your user model's has a
HasRoles
trait app/Models/User.php.class User extends Authenticatable { use Notifiable, HasRoles; ...
-
You can generate CRUD easily through generator tool now.
Note: If you are using Laravel 7+ then scaffold the authentication with bootstrap for a better experience.
-
Create some permissions.
-
Create some roles.
-
Assign permission(s) to role.
-
Create user(s) with role.
-
For checking authenticated user's role see below:
// 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:
if ($user->can('permission-name')) { // Do something }
Learn more about ACL from here
For activity log please read spatie/laravel-activitylog
docs
This project is licensed under the MIT License - see the License File for details