Viewing File: /home/assersoft/public_html/doctor-assistant/app/Filters/ProviderFilter.php

<?php

namespace App\Filters;

use CodeIgniter\Filters\FilterInterface;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Config\Services;

helper('cookie');

class ProviderFilter implements FilterInterface
{
    public function before(RequestInterface $request, $arguments = null)
    {
        $accessToken = get_cookie('access_token');
        if (!$accessToken) {
            return Services::response()->setStatusCode(ResponseInterface::HTTP_UNAUTHORIZED)->setJSON(['error' => 'No access token provided']);
        }

        $decodedToken = decodeJWT($accessToken);
        if (isset($decodedToken['error'])) {
            return Services::response()->setStatusCode(ResponseInterface::HTTP_UNAUTHORIZED)->setJSON($decodedToken);
        }

        if($decodedToken->user_type !== 'provider') {
            return Services::response()->setStatusCode(ResponseInterface::HTTP_UNAUTHORIZED)->setJSON(['error' => 'Unauthorized access']);
        }
    }

    public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) {}
}
Back to Directory File Manager