<?php

namespace App\Filters;

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


class Role implements FilterInterface
{
    public function before(RequestInterface $request, $arguments = null)
    {

        // Ambil sesi pengguna
        $session = session();

        if (!$session->get('role')) {
            return redirect()->to('auth/login');
        }

        // Pisahkan peran-peran dalam string sesi menjadi array
        $userRoles = array_map('trim', explode(',', $session->get('role')));

        if (!is_array($arguments)) {
            return;
        }

        // Periksa apakah pengguna memiliki setidaknya satu dari peran yang diberikan
        foreach ($arguments as $requiredRole) {
            if (in_array($requiredRole, $userRoles)) {
                // Pengguna memiliki peran yang diperlukan, lanjutkan ke rute
                return;
            }
        }

        // Jika tidak ada peran yang cocok, beri respons atau lakukan tindakan lain
        return redirect()->to('/notallow');
    }

    public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
    {
        // Do something here
    }
}
