|
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/ |
<?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');
}
}
}