cfmgrv4 init...2
This commit is contained in:
parent
626b172c78
commit
a30c31cb3b
@ -25,24 +25,6 @@ $routes->group('cli', ['namespace' => 'App\Controllers\CLI'], function ($routes)
|
||||
});
|
||||
$routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'authFilter:manager'], function ($routes) {
|
||||
$routes->get('/', 'Home::index');
|
||||
$routes->group('user', function ($routes) {
|
||||
$routes->get('/', 'UserController::index');
|
||||
$routes->get('create', 'UserController::create_form', ['filter' => 'authFilter:master']);
|
||||
$routes->post('create', 'UserController::create', ['filter' => 'authFilter:master']);
|
||||
$routes->get('modify/(:num)', 'UserController::modify_form/$1');
|
||||
$routes->post('modify/(:num)', 'UserController::modify/$1');
|
||||
$routes->get('delete/(:num)', 'UserController::delete/$1', ['filter' => 'authFilter:master']);
|
||||
$routes->get('toggle/(:num)/(:any)', 'UserController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'UserController::batcjob');
|
||||
$routes->get('download/(:alpha)', 'UserController::download/$1');
|
||||
});
|
||||
$routes->group('usersns', function ($routes) {
|
||||
$routes->get('/', 'UserSNSController::index');
|
||||
$routes->get('delete/(:num)', 'UserSNSController::delete/$1', ['filter' => 'authFilter:master']);
|
||||
$routes->get('toggle/(:num)/(:any)', 'UserSNSController::toggle/$1/$2', ['filter' => 'authFilter:master']);
|
||||
$routes->post('batchjob', 'UserSNSController::batcjob', ['filter' => 'authFilter:master']);
|
||||
$routes->get('download/(:alpha)', 'UserSNSController::download/$1');
|
||||
});
|
||||
$routes->group('mapurl', function ($routes) {
|
||||
$routes->get('/', 'MapurlController::index');
|
||||
$routes->get('create', 'MapurlController::create_form');
|
||||
@ -54,13 +36,33 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
|
||||
$routes->post('batchjob', 'MapurlController::batcjob');
|
||||
$routes->get('download/(:alpha)', 'MapurlController::download/$1');
|
||||
});
|
||||
$routes->group('cloudflare', ['namespace' => 'App\Controllers\Admin\Cloudflare', 'filter' => 'authFilter:cloudflare'], function ($routes) {
|
||||
});
|
||||
$routes->group('admin/user', ['namespace' => 'App\Controllers\Admin'], function ($routes) {
|
||||
$routes->get('/', 'UserController::index', ['filter' => 'authFilter:manager']);
|
||||
$routes->get('create', 'UserController::create_form', ['filter' => 'authFilter:master']);
|
||||
$routes->post('create', 'UserController::create', ['filter' => 'authFilter:master']);
|
||||
$routes->get('modify/(:num)', 'UserController::modify_form/$1', ['filter' => 'authFilter:manager']);
|
||||
$routes->post('modify/(:num)', 'UserController::modify/$1', ['filter' => 'authFilter:manager']);
|
||||
$routes->get('delete/(:num)', 'UserController::delete/$1', ['filter' => 'authFilter:master']);
|
||||
$routes->get('toggle/(:num)/(:any)', 'UserController::toggle/$1/$2', ['filter' => 'authFilter:manager']);
|
||||
$routes->post('batchjob', 'UserController::batcjob', ['filter' => 'authFilter:manager']);
|
||||
$routes->get('download/(:alpha)', 'UserController::download/$1', ['filter' => 'authFilter:manager']);
|
||||
});
|
||||
$routes->group('admin/usersns', ['namespace' => 'App\Controllers\Admin'], function ($routes) {
|
||||
$routes->get('/', 'UserSNSController::index', ['filter' => 'authFilter:manager']);
|
||||
$routes->get('delete/(:num)', 'UserSNSController::delete/$1', ['filter' => 'authFilter:master']);
|
||||
$routes->get('toggle/(:num)/(:any)', 'UserSNSController::toggle/$1/$2', ['filter' => 'authFilter:master']);
|
||||
$routes->post('batchjob', 'UserSNSController::batcjob', ['filter' => 'authFilter:master']);
|
||||
$routes->get('download/(:alpha)', 'UserSNSController::download/$1', ['filter' => 'authFilter:manager']);
|
||||
});
|
||||
|
||||
$routes->group('admin/cloudflare', ['namespace' => 'App\Controllers\Admin\Cloudflare', 'filter' => 'authFilter:cloudflare'], function ($routes) {
|
||||
$routes->group('auth', function ($routes) {
|
||||
$routes->get('/', 'AuthController::index');
|
||||
$routes->get('create', 'AuthController::create_form');
|
||||
$routes->post('create', 'AuthController::create');
|
||||
$routes->get('modify/(:num)', 'AuthController::modify_form/$1');
|
||||
$routes->get('delete/(:num)', 'AuthController::delete/$1', ['filter' => 'authFilter:master']);
|
||||
$routes->get('delete/(:num)', 'AuthController::delete/$1');
|
||||
$routes->get('toggle/(:num)/(:any)', 'AuthController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'AuthController::batcjob');
|
||||
$routes->get('download/(:alpha)', 'AccountController::download/$1');
|
||||
@ -93,4 +95,3 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
|
||||
$routes->get('download/(:alpha)', 'RecordController::download/$1');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace Config;
|
||||
|
||||
use App\Libraries\MyAuth\MyAuth;
|
||||
use CodeIgniter\Config\BaseService;
|
||||
|
||||
/**
|
||||
@ -29,4 +30,12 @@ class Services extends BaseService
|
||||
* return new \CodeIgniter\Example();
|
||||
* }
|
||||
*/
|
||||
public static function myauth($getShared = true): MyAuth
|
||||
{
|
||||
if ($getShared) {
|
||||
return static::getSharedInstance('myauth');
|
||||
} else {
|
||||
return new MyAuth();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,8 +25,10 @@ class AuthFilter implements FilterInterface
|
||||
*/
|
||||
public function before(RequestInterface $request, $arguments = null)
|
||||
{
|
||||
$auth = service('myauth');
|
||||
// log_message("debug", var_export($arguments, true));
|
||||
// 로그인 않했으면
|
||||
if (!session()->has(SESSION_NAMES['ISLOGIN'])) {
|
||||
if (!$auth->isLoggedIn()) {
|
||||
$urlStack = session()->get('url_stack', []) ?? [];
|
||||
$urlStack[] = current_url() . ($request->getUri()->getQuery() ? "?" . $request->getUri()->getQuery() : "");;
|
||||
session()->set('url_stack', $urlStack);
|
||||
@ -34,8 +36,9 @@ class AuthFilter implements FilterInterface
|
||||
}
|
||||
//User Role 비교 // 회원 ROLES이 필요ROLE($arguments[0]) 목록에 존재하지 않으면(ACL)
|
||||
$auth = session()->get(SESSION_NAMES['AUTH']);
|
||||
if (!isset($auth['role']) || !in_array($arguments[0], explode(DEFAULTS['DELIMITER_ROLE'], $auth['role']))) {
|
||||
return redirect()->back()->with('error', "회원[{$auth['name']}]님은 접속에 필요한 권한이 없습니다. ");
|
||||
$roles = explode(DEFAULTS['DELIMITER_ROLE'], $auth['role']);
|
||||
if (!isset($auth['role']) || !in_array($arguments[0], $roles)) {
|
||||
return redirect()->back()->with('error', "회원[{$auth['name']}]님은 접속에 필요한 권한{$arguments[0]}이 없습니다. ");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -6,13 +6,17 @@ use App\Entities\UserEntity;
|
||||
use App\Libraries\CommonLibrary;
|
||||
|
||||
// 참고:https://github.com/SyntaxPhoenix/iloclient
|
||||
abstract class MyAuth extends CommonLibrary
|
||||
class MyAuth extends CommonLibrary
|
||||
{
|
||||
private $_session = null;
|
||||
protected function __construct()
|
||||
public function __construct()
|
||||
{
|
||||
$this->_session = \Config\Services::session();
|
||||
}
|
||||
final public function isLoggedIn(): bool
|
||||
{
|
||||
return $this->_session->has(SESSION_NAMES['ISLOGIN']);
|
||||
}
|
||||
|
||||
final public function login(UserEntity $entity): void
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user