67 lines
2.4 KiB
PHP
67 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Filters;
|
|
|
|
use CodeIgniter\Filters\FilterInterface;
|
|
use CodeIgniter\HTTP\RequestInterface;
|
|
use CodeIgniter\HTTP\ResponseInterface;
|
|
|
|
class AuthFilter implements FilterInterface
|
|
{
|
|
/**
|
|
* Do whatever processing this filter needs to do.
|
|
* By default it should not return anything during
|
|
* normal execution. However, when an abnormal state
|
|
* is found, it should return an instance of
|
|
* CodeIgniter\HTTP\Response. If it does, script
|
|
* execution will end and that Response will be
|
|
* sent back to the client, allowing for error pages,
|
|
* redirects, etc.
|
|
*
|
|
* @param RequestInterface $request
|
|
* @param array|null $arguments
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function before(RequestInterface $request, $arguments = null)
|
|
{
|
|
// 로그인을 했으면
|
|
if (session()->get(SESSION_NAMES['ISLOGIN'])) {
|
|
$auth = session()->get(SESSION_NAMES['AUTH']);
|
|
// 회원 ROLES이 필요ROLE($arguments[0]) 목록에 존재하지 않으면(ACL)
|
|
if (!in_array($arguments[0], explode(DEFAULTS['DELIMITER_ROLE'], $auth['role']))) {
|
|
return redirect()->to(URLS['LOGIN'])->with(
|
|
'return_message',
|
|
sprintf(
|
|
"%s,%s회원님은 접속에 필요한 권한[%s]이 없습니다. ",
|
|
$auth['role'],
|
|
$auth['name'],
|
|
implode(",", $arguments)
|
|
)
|
|
);
|
|
}
|
|
} else {
|
|
dd(session()->get(SESSION_NAMES['AUTH']));
|
|
session()->setFlashdata(SESSION_NAMES['RETURN_URL'], $request->getUri()->getPath() . '?' . $request->getUri()->getQuery());
|
|
return redirect()->to(URLS['LOGIN'])->with('return_message', '로그인을하셔야합니다.');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Allows After filters to inspect and modify the response
|
|
* object as needed. This method does not allow any way
|
|
* to stop execution of other after filters, short of
|
|
* throwing an Exception or Error.
|
|
*
|
|
* @param RequestInterface $request
|
|
* @param ResponseInterface $response
|
|
* @param array|null $arguments
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
|
|
{
|
|
//
|
|
}
|
|
}
|