mitul456/laravel-multi-role-auth

A comprehensive multi-role authentication system for Laravel

Maintainers

Package info

github.com/mitul456/laravel-multi-role-auth

pkg:composer/mitul456/laravel-multi-role-auth

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-04-17 03:50 UTC

This package is auto-updated.

Last update: 2026-05-17 04:12:08 UTC


README

Laravel Version PHP Version License Downloads

A powerful, flexible, and production-ready multi-role authentication system for Laravel applications.

๐Ÿ“‹ Table of Contents

  • Features
  • Requirements
  • Quick Start
  • Installation
  • Configuration
  • Usage Guide
  • Dynamic Role Management
  • Artisan Commands
  • Helper Functions
  • Testing
  • Troubleshooting
  • Security
  • License

โœจ Features

  • ๐ŸŽญ Unlimited Roles
  • ๐Ÿ“Š Role Hierarchy (priority-based)
  • ๐Ÿ” Permission-based access control
  • ๐Ÿ›ก๏ธ Multi-Guard Support (web, api)
  • ๐ŸŽฏ Smart role-based redirects
  • ๐Ÿš€ Middleware protection (role:admin)
  • ๐ŸŽจ Blade directives (@role, @hasrole)
  • ๐Ÿ“ฑ API ready
  • ๐ŸŽ›๏ธ Admin panel support
  • โŒจ๏ธ Artisan commands

๐Ÿ“ฆ Requirements

  • PHP >= 8.1
  • Laravel 10.x / 11.x / 12.x
  • Composer (latest)
  • Supported DB: MySQL, PostgreSQL, SQLite, SQL Server

๐Ÿš€ Quick Start

composer require mitul456/laravel-multi-role-auth
php artisan multirole:install
php artisan migrate

Add trait to User model:

use LaravelMultiRoleAuth\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;
}

โš™๏ธ Installation (Detailed)

composer require mitul456/laravel-multi-role-auth
php artisan multirole:install

(Optional)

php artisan vendor:publish --tag=multirole-config

โš™๏ธ Configuration

config/multirole.php

return [
    'default_role' => 'User',

    'role_hierarchy' => [
        'SuperAdmin',
        'Admin',
        'Moderator',
        'Editor',
        'User',
    ],

    'redirect_paths' => [
        'SuperAdmin' => '/superadmin/dashboard',
        'Admin' => '/admin/dashboard',
        'default' => '/dashboard',
    ],
];

๐Ÿ“– Usage Guide

Assign Role

$user->assignRole('Admin');
$user->syncRoles(['Editor', 'Moderator']);

Check Role

$user->hasRole('Admin');
$user->hasRole(['Admin', 'SuperAdmin']);

Middleware

Route::middleware(['auth', 'role:Admin'])->group(function () {
    //
});

Blade

@role('admin')
    <p>Admin only</p>
@endrole

Permission

$user->can('edit-articles');

๐ŸŽฏ Dynamic Role Management

Role::create(['name' => 'Manager']);

$user->assignRole('Manager');

if ($user->hasRole('Manager')) {
    //
}

โŒจ๏ธ Artisan Commands

php artisan multirole:install
php artisan role:create "Manager"
php artisan role:assign 1 "Admin"
php artisan role:sync 1 "Editor" "Moderator"

๐Ÿ”ง Helper Functions

hasRole($user, 'Admin');
currentUserRole();
canPerform('manage-users');

๐Ÿงช Testing

php artisan test

๐Ÿ”ง Troubleshooting

php artisan optimize:clear
composer dump-autoload

๐Ÿ”’ Security Tips

  • Always use middleware
  • Avoid client-side role checks
  • Use permissions for sensitive actions

๐Ÿ“„ License

MIT License

Made with โค๏ธ by Mitul