HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/tracking.naniguide.com/app/middleware/RolePermission.php
<?php
/**
 * =======================================================================================
 *                           GemFramework (c) GemPixel                                     
 * ---------------------------------------------------------------------------------------
 *  This software is packaged with an exclusive framework as such distribution
 *  or modification of this framework is not allowed before prior consent from
 *  GemPixel. If you find that this framework is packaged in a software not distributed 
 *  by GemPixel or authorized parties, you must not use this software and contact GemPixel
 *  at https://gempixel.com/contact to inform them of this misuse.
 * =======================================================================================
 *
 * @package GemPixel\Premium-URL-Shortener
 * @author GemPixel (https://gempixel.com) 
 * @license https://gempixel.com/licenses
 * @link https://gempixel.com  
 */

namespace Middleware;

use Core\Helper;
use Core\Auth;

class RolePermission {
    
    /**
     * Handle Role Permission Check
     *
     * @author GemPixel <https://gempixel.com> 
     * @version 7.6.6
     * @param string $permission
     * @return void
     */
    public function handle($permission = null){
        
        if(!Auth::check()) {
            return Helper::redirect()->to(route('login'))->with('danger', e('Please login to continue.'));
        }

        $user = Auth::user();

        // Super admin has all permissions
        if($user->admin) {
            return true;
        }

        // Check if user has role permission
        if($permission && !$user->hasRolePermission($permission)) {
            return Helper::redirect()->to(route('admin'))->with('danger', e('You do not have permission to access this page.'));
        }

        return true;
    }
}