48 lines
1.2 KiB
PHP
48 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use CodeIgniter\Controller;
|
|
use CodeIgniter\HTTP\RequestInterface;
|
|
use CodeIgniter\HTTP\ResponseInterface;
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
/**
|
|
* BaseController provides a convenient place for loading components
|
|
* and performing functions that are needed by all your controllers.
|
|
*
|
|
* Extend this class in any new controllers:
|
|
* ```
|
|
* class Home extends BaseController
|
|
* ```
|
|
*
|
|
* For security, be sure to declare any new methods as protected or private.
|
|
*/
|
|
abstract class BaseController extends Controller
|
|
{
|
|
/**
|
|
* Be sure to declare properties for any property fetch you initialized.
|
|
* The creation of dynamic property is deprecated in PHP 8.2.
|
|
*/
|
|
|
|
// protected $session;
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
|
{
|
|
// Caution: Do not edit this line.
|
|
parent::initController($request, $response, $logger);
|
|
}
|
|
|
|
protected function requireRole(string $role): ?ResponseInterface
|
|
{
|
|
if (session()->get('role') !== $role) {
|
|
return redirect()->to(site_url('/'))->with('error', 'Access denied.');
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|