Files
freeu-project/app/Http/Middleware/AccessPermitted.php
Ritikesh yadav c661166e1d first commit
2024-03-28 14:52:40 +05:30

60 lines
2.1 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Role;
use App\Models\Admin\AppResource;
use App\Models\Admin\AppResourceAction;
use App\Models\Admin\RoleAppResouceActionLink;
use App\Models\Permission;
class AccessPermitted
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next, $text)
{
return $next($request);
$checkRole = User::with('manyRoles.roles')->where('id', \Auth::user()->id)->get();
$totalRolesAssigned = array();
foreach ($checkRole as $data) {
foreach ($data->manyRoles as $role) {
array_push($totalRolesAssigned, $role->roles->slug);
}
}
if (in_array('super-admin', $totalRolesAssigned)) {
// return true;
return $next($request);
}
foreach ($totalRolesAssigned as $slug) {
$roleData = Role::where('slug', $slug)->first();
if ($roleData) {
$appResource = AppResource::where('slug', $text)->first();
$permission = Permission::where('slug', 'view')->first();
if ($appResource && $permission) {
$appResourceAction = AppResourceAction::where('app_resource_xid', $appResource->id)->where('app_action_xid', $permission->id)->first();
if ($appResourceAction) {
$isRoleLinkWithResource = RoleAppResouceActionLink::where('app_resource_action_xid', $appResourceAction->id)->where('role_xid', $roleData->id)->exists();
if ($isRoleLinkWithResource) {
// return true;
return $next($request);
}
}
}
}
}
// return $next($request);
abort(403);
}
}