shoppingmallv2 init...

This commit is contained in:
최준흠git config git config --helpgit config --global user.name 최준흠 2023-08-05 16:39:41 +09:00
parent 78b8a9cc7f
commit 4fb62f18fd
5 changed files with 32 additions and 3 deletions

View File

@ -141,7 +141,6 @@ $routes->group('front', ['namespace' => 'App\Controllers\Front'], function ($rou
$routes->get('', 'ProductController::index'); $routes->get('', 'ProductController::index');
$routes->get('excel', 'ProductController::excel/$1'); $routes->get('excel', 'ProductController::excel/$1');
$routes->get('view/(:uuid)', 'ProductController::view/$1'); $routes->get('view/(:uuid)', 'ProductController::view/$1');
$routes->get('download/(:any)/(:uuid)', 'ProductController::download/$1/$2');
}); });
$routes->group('order', static function ($routes) { $routes->group('order', static function ($routes) {
$routes->get('', 'OrderController::index'); $routes->get('', 'OrderController::index');

View File

@ -629,13 +629,18 @@ abstract class BaseController extends Controller
} }
} }
//File Download관련 //File Download관련
final public function download(string $field, $uid) public function download_process($entity)
{
return $entity;
}
public function download(string $field, $uid)
{ {
try { try {
$entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]); $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
if (!$entity->$field) { if (!$entity->$field) {
throw new \Exception("첨부파일이 확인되지 않습니다."); throw new \Exception("첨부파일이 확인되지 않습니다.");
} }
$entity = $this->download_process($entity);
list($origin_filename, $filename) = explode(DEFAULTS['DELIMITER_FILE'], $entity->$field); list($origin_filename, $filename) = explode(DEFAULTS['DELIMITER_FILE'], $entity->$field);
if (is_file(WRITEPATH . PATHS['UPLOAD'] . "/" . $origin_filename)) { if (is_file(WRITEPATH . PATHS['UPLOAD'] . "/" . $origin_filename)) {
throw new \Exception("파일이 확인되지 않습니다."); throw new \Exception("파일이 확인되지 않습니다.");

View File

@ -20,6 +20,12 @@ class BoardController extends FrontController
public function getFields(string $action = ""): array public function getFields(string $action = ""): array
{ {
$fields = ['title', "board_file", "passwd", "content"]; $fields = ['title', "board_file", "passwd", "content"];
try {
//권한체크
$this->isRole('upload');
} catch (\Exception $e) {
$fields = ['title', "passwd", "content"];
}
switch ($action) { switch ($action) {
case "index": case "index":
case "excel": case "excel":
@ -132,4 +138,11 @@ class BoardController extends FrontController
$this->_model->where("status", DEFAULTS['STATUS']); $this->_model->where("status", DEFAULTS['STATUS']);
parent::index_setCondition(); parent::index_setCondition();
} }
//Download관련
public function download_process($entity)
{
//권한체크
$this->isRole('download');
return $entity;
}
} }

View File

@ -39,6 +39,12 @@ abstract class FrontController extends BaseController
case 'view': case 'view':
$category_field = CATEGORY_ROLE_FIELDS['READ']; $category_field = CATEGORY_ROLE_FIELDS['READ'];
break; break;
case 'upload':
$category_field = CATEGORY_ROLE_FIELDS['UPLOAD'];
break;
case 'download':
$category_field = CATEGORY_ROLE_FIELDS['DONWLOAD'];
break;
default: default:
$category_field = CATEGORY_ROLE_FIELDS['ACCESS']; $category_field = CATEGORY_ROLE_FIELDS['ACCESS'];
break; break;

View File

@ -48,7 +48,6 @@ class ProductController extends FrontController
$this->_model->addViewCount($entity); $this->_model->addViewCount($entity);
return parent::view_process($entity); return parent::view_process($entity);
} }
//Index관련 //Index관련
protected function index_process() protected function index_process()
{ {
@ -63,4 +62,11 @@ class ProductController extends FrontController
$this->_model->where("status", DEFAULTS['STATUS']); $this->_model->where("status", DEFAULTS['STATUS']);
parent::index_setCondition(); parent::index_setCondition();
} }
//Download관련
public function download_process($entity)
{
//권한체크
$this->isRole('download');
return $entity;
}
} }