<?php 
namespace App\Filters;

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

class AuthFilter implements FilterInterface {
    
    public function before(RequestInterface $request, $arguments = null) {
    $session = session();
    
    // 1. Cek Login
    if (!$session->get('isLoggedIn')) {
        return redirect()->to(base_url('login'));
    }

    // 2. Cek Hak Akses (Role)
    if ($arguments) {
        $roleUser = $session->get('role');
        
        // Cek apakah roleUser ada dan sesuai dengan argumen (admin/penulis/kaprodi)
        // Kita gunakan strtolower untuk memastikan tidak ada masalah huruf besar/kecil
        if (!$roleUser || !in_array(strtolower($roleUser), $arguments)) {
            // Jika gagal, lempar ke dashboard
            return redirect()->to(base_url('admin'))->with('error', 'Hak akses tidak dikenali sebagai: ' . $roleUser);
        }
    }
}

    public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) {
        // Tidak perlu diisi
    }
}