From ce8c0bf720238aee97ee7dcbb78d9b1652f66d60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=ED=9D=A0?= Date: Tue, 7 May 2024 19:39:52 +0900 Subject: [PATCH] vhost init...2 --- app/Controllers/Front/BoardController.php | 12 ++++++++- app/Controllers/Front/FrontController.php | 26 ++++++++----------- app/Controllers/Front/SitepageController.php | 4 ++- .../front/top_navigator/member_link.php | 2 +- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/app/Controllers/Front/BoardController.php b/app/Controllers/Front/BoardController.php index bcba7ef..d66545f 100644 --- a/app/Controllers/Front/BoardController.php +++ b/app/Controllers/Front/BoardController.php @@ -47,6 +47,8 @@ class BoardController extends FrontController //Insert관련 protected function insert_form_process() { + //Category 확인 + $this->checkCategory(); //권한체크 $this->isRole('isaccess'); parent::insert_form_process(); @@ -60,6 +62,8 @@ class BoardController extends FrontController //Update관련 protected function update_form_process($entity) { + //Category 확인 + $this->checkCategory(); //본인이 작성한글인지 최종확인용 정상접속이 아닌 위회해서 수정을 시도방지용 if (!$this->_viewDatas[SESSION_NAMES['ISLOGIN']] || $entity->user_uid != $this->_viewDatas['auth'][AUTH_FIELDS['ID']]) { throw new \Exception("작성자 본인글인지 여부가 확인되지 않습니다."); @@ -77,6 +81,8 @@ class BoardController extends FrontController //Reply관련($entity는 부모의것임을 주의) protected function reply_form_process($entity) { + //Category 확인 + $this->checkCategory(); //권한체크 $this->isRole('isreply'); return parent::reply_form_process($entity); @@ -93,6 +99,8 @@ class BoardController extends FrontController //View관련 protected function view_process($entity) { + //Category 확인 + $this->checkCategory(); //권한체크 $this->isRole('view'); //조회수 올리기 @@ -102,6 +110,8 @@ class BoardController extends FrontController //Index관련 protected function index_process() { + //Category 확인 + $this->checkCategory(); //권한체크 $this->isRole('index'); parent::index_process(); @@ -109,7 +119,7 @@ class BoardController extends FrontController //Category 및 Status 조건추가 protected function index_setCondition() { - $this->_model->where("category_uid", $this->getCurrentCategory()->getPrimaryKey()); + $this->_model->where("category_uid", $this->_viewDatas['currentCategory']->getPrimaryKey()); $this->_model->where("status", DEFAULTS['STATUS']); parent::index_setCondition(); } diff --git a/app/Controllers/Front/FrontController.php b/app/Controllers/Front/FrontController.php index 24c5cdf..20cc139 100644 --- a/app/Controllers/Front/FrontController.php +++ b/app/Controllers/Front/FrontController.php @@ -3,7 +3,6 @@ namespace App\Controllers\Front; use App\Controllers\BaseController; -use App\Entities\CategoryEntity; use App\Models\CategoryModel; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; @@ -12,7 +11,6 @@ use Psr\Log\LoggerInterface; abstract class FrontController extends BaseController { private $_categoryModel = null; - private $_currentCategory = null; public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { parent::initController($request, $response, $logger); @@ -22,24 +20,12 @@ abstract class FrontController extends BaseController $this->_viewDatas['title'] = '사용자화면'; $this->_viewDatas['class_icon'] = ''; $this->_viewDatas['menus'] = $this->getCategoryModel()->getMenus(); - $this->_viewDatas['category'] = false; } final protected function getCategoryModel(): CategoryModel { return $this->_categoryModel = $this->_categoryModel ?: new CategoryModel(); } - final protected function getCurrentCategory(): CategoryEntity - { - if ($this->_currentCategory === null) { - $this->_viewDatas['category'] = $this->request->getVar('category'); - $this->_viewDatas['category'] ?: throw new \Exception("분류를 지정하지 않으셨습니다."); - $this->_currentCategory = $this->_viewDatas['currentCategory'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_viewDatas['category']]); - //$this->_viewDatas['parent_category'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_viewDatas['category']->getHierarchy_ParentUID()]); - } - return $this->_currentCategory; - } - //권한체크 protected function isRole($action) { @@ -66,7 +52,7 @@ abstract class FrontController extends BaseController //사용자가 Category에서 해당 게시판의 해당권한이 있는지 확인 if (!isRole_CommonHelper( $this->_viewDatas['currentRoles'], - $this->getCurrentCategory(), + $this->_viewDatas['currentCategory'], $category_field, )) { // echo var_export($this->_viewDatas['currentRoles'], true); @@ -78,4 +64,14 @@ abstract class FrontController extends BaseController throw new \Exception("고객님은 " . lang("Category.label." . $category_field) . "이 없습니다."); } } + + final protected function checkCategory() + { + //Category 확인 + $this->_viewDatas['category'] = $this->request->getVar('category'); + if (!$this->_viewDatas['category']) { + throw new \Exception("분류코드가 지정되지 않았습니다."); + } + $this->_viewDatas['currentCategory'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_viewDatas['category']]); + } } diff --git a/app/Controllers/Front/SitepageController.php b/app/Controllers/Front/SitepageController.php index 8d76f5c..806e762 100644 --- a/app/Controllers/Front/SitepageController.php +++ b/app/Controllers/Front/SitepageController.php @@ -47,6 +47,8 @@ class SitepageController extends FrontController //Index관련 protected function index_process() { + //Category 확인 + $this->checkCategory(); //권한체크 $this->isRole('index'); return parent::index_process(); @@ -54,7 +56,7 @@ class SitepageController extends FrontController //Category 및 Status 조건추가 protected function index_setCondition() { - $this->_model->where("category_uid", $this->getCurrentCategory()->getPrimaryKey()); + $this->_model->where("category_uid", $this->_viewDatas['currentCategory']->getPrimaryKey()); $this->_model->where("status", DEFAULTS['STATUS']); parent::index_setCondition(); } diff --git a/app/Views/layouts/front/top_navigator/member_link.php b/app/Views/layouts/front/top_navigator/member_link.php index 2a3461d..c187bf6 100644 --- a/app/Views/layouts/front/top_navigator/member_link.php +++ b/app/Views/layouts/front/top_navigator/member_link.php @@ -4,7 +4,7 @@ get(SESSION_NAMES['AUTH'])[AUTH_FIELDS['TITLE']] ?>