PHP code example of amranibrahem / laravel-middleware-generator

1. Go to this page and download the library: Download amranibrahem/laravel-middleware-generator library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

amranibrahem / laravel-middleware-generator example snippets




namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class AdminMiddleware
{
    /**
     * Handle an incoming request.
     * 
     * @param  string  $role  Required role
     */
    public function handle(Request $request, Closure $next, string $role = 'admin'): Response
    {
        // Check if user has role = $role
        if ($request->user() && $request->user()->role === $role) {
            return $next($request);
        }

        return response()->json([
            'message' => 'Administrator access 



namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class CanEditMiddleware
{
    /**
     * Handle an incoming request.
     * 
     * @param  string  $permission  Required permission
     */
    public function handle(Request $request, Closure $next, string $permission = 'edit-posts'): Response
    {
        // Check if user has permission: $permission
        if ($request->user() && $request->user()->can($permission)) {
            return $next($request);
        }

        return response()->json([
            'message' => 'Insufficient permissions',
            'code' => 403
        ], 403);
    }
}



namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class InternalMiddleware
{
    /**
     * Handle an incoming request.
     */
    public function handle(Request $request, Closure $next): Response
    {
        // Check if request IP is in allowed list: 192.168.1.1,127.0.0.1
        if (in_array($request->ip(), ['192.168.1.1', '127.0.0.1'])) {
            return $next($request);
        }

        return response()->json([
            'message' => 'IP address not allowed',
            'code' => 403
        ], 403);
    }

    /**
     * Get allowed IP addresses
     */
    protected function getAllowedIps(): array
    {
        return ['192.168.1.1', '127.0.0.1'];
    }
}

Route::middleware('admin')->group(function () {
Route::get('/admin/dashboard', [DashboardController::class, 'admin']);
});

Route::middleware('admin:manager')->get('/manager', [ManagerController::class, 'index']);

Route::middleware('canedit')->group(function () {
Route::post('/posts', [PostController::class, 'store']);
});

Route::middleware('canedit:delete-users')->delete('/users/{id}', [UserController::class, 'destroy']);

Route::middleware('internal')->group(function () {
Route::get('/internal/api', [InternalController::class, 'index']);
});



namespace Tests\Unit\Middleware;

use Tests\TestCase;
use Illuminate\Http\Request;
use App\Http\Middleware\AdminMiddleware;
use Illuminate\Foundation\Testing\RefreshDatabase;

class AdminMiddlewareTest extends TestCase
{
    use RefreshDatabase;

    /** @test */
    public function it_allows_access_when_condition_met()
    {
        // TODO: Implement test based on your middleware logic
        $request = new Request();
        $middleware = new AdminMiddleware();
        
        $response = $middleware->handle($request, function ($req) {
            return response('OK');
        });

        $this->assertEquals('OK', $response->getContent());
    }

    /** @test */
    public function it_denies_access_when_condition_not_met()
    {
        // TODO: Implement test based on your middleware logic
        $request = new Request();
        $middleware = new AdminMiddleware();
        
        $response = $middleware->handle($request, function ($req) {
            return response('OK');
        });

        $this->assertEquals(403, $response->getStatusCode());
        $this->assertJsonStringEqualsJsonString(
            '{"message":"Administrator access 

๐Ÿš€ Starting Admin Middleware Generation...

๐ŸŽฏ Select Middleware Type:
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
> Role-based (user.role === "admin")

๐Ÿ“‹ Generation Summary:
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
๐Ÿ”น Middleware Name: Admin
๐Ÿ”น Type: role
๐Ÿ”น Role Check: 'admin'
๐Ÿ”น Status Code: 403
๐Ÿ”น User Model: User
๐Ÿ”น Guard: web
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

๐Ÿ“ Creating Middleware File...
โœ… Created middleware: AdminMiddleware.php

๐Ÿ“ Registering in Kernel...
โœ… Registered middleware in Kernel.php ($middlewareAliases)

โš™๏ธ  Updating Auth Configuration...
โœ… Added role guard to auth.php

๐Ÿ›ฃ๏ธ  Creating Route Example...
โœ… Added route example to api.php

๐Ÿงช Creating Test File...
โœ… Created test: AdminMiddlewareTest.php

๐ŸŽ‰ Middleware Generation Completed Successfully!
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
๐Ÿ“‹ Final Configuration:
   • Middleware: Admin
   • Type: role
   • Role: 'admin'
   • Field: 'role'
   • Boolean: No
   • Status Code: 403
   • Error Message: 'Administrator access 
bash
php artisan middleware:generate Admin
bash
php artisan middleware:generate Admin --role=admin
bash
php artisan middleware:generate CanEdit --type=permission --permission=edit-posts
bash
php artisan middleware:generate ApiAuth --guard=api
bash
php artisan middleware:generate Admin --test
bash
php artisan middleware:generate Internal --type=ip --ip="192.168.1.1,127.0.0.1"
bash
php artisan middleware:generate Premium --type=subscription --subscription=premium
bash
php artisan middleware:generate SuperAdmin --boolean --field=is_super_admin
bash
php artisan middleware:generate Admin --message="Administrator access 
bash
php artisan middleware:generate SuperAdmin --boolean --field=is_super_admin
bash
php artisan middleware:generate Auth --code=401 --message="Authentication 
bash
php artisan middleware:generate ApiAuth --guard=api --test
bash
php artisan middleware:generate InternalApi --type=ip --ip="10.0.0.0/8" --log