vhost/app/Controllers/Front/FrontController.php
2024-05-07 20:50:15 +09:00

79 lines
2.8 KiB
PHP

<?php
namespace App\Controllers\Front;
use App\Controllers\BaseController;
use App\Models\CategoryModel;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
abstract class FrontController extends BaseController
{
private $_categoryModel = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
$this->_viewPath = 'front/';
$this->_viewDatas['control'] = 'front';
$this->_viewDatas['layout'] = LAYOUTS['front'];
$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();
}
//권한체크
protected function isRole($action)
{
switch ($action) {
case 'insert':
$category_field = 'iswrite';
break;
case 'reply':
$category_field = 'isreply';
break;
case 'view':
$category_field = 'isread';
break;
case 'upload':
$category_field = 'isupload';
break;
case 'download':
$category_field = 'isdownload';
break;
default:
$category_field = 'isdaccess';
break;
}
//사용자가 Category에서 해당 게시판의 해당권한이 있는지 확인
if (!isRole_CommonHelper(
$this->_viewDatas['currentRoles'],
$this->_viewDatas['currentCategory'],
$category_field,
)) {
// echo var_export($this->_viewDatas['currentRoles'], true);
// echo "<HR>";
// echo var_export($this->_viewDatas['category'], true);
// echo "<HR>";
// echo "field->", $action . ":" . $category_field;
// exit;
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']]);
}
}