servermgrv2 init...
This commit is contained in:
parent
69e9ac9295
commit
eaa3a76677
@ -66,13 +66,10 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
|
||||
$routes->get('delete/(:num)', 'UserSNSController::delete/$1');
|
||||
$routes->get('toggle/(:num)/(:hash)', 'UserSNSController::toggle/$1/$2');
|
||||
});
|
||||
$routes->group('logger', ['filter' => 'authFilter:master,director,cloudflare,manager'], static function ($routes) {
|
||||
$routes->group('logger', static function ($routes) {
|
||||
$routes->get('', 'LoggerController::index');
|
||||
$routes->get('excel', 'LoggerController::excel');
|
||||
$routes->get('view/(:num)', 'LoggerController::view/$1');
|
||||
$routes->get('delete/(:num)', 'LoggerController::delete/$1', ['filter' => 'authFilter:master']);
|
||||
$routes->get('toggle/(:num)/(:hash)', 'LoggerController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'LoggerController::batchjob');
|
||||
});
|
||||
$routes->group('boardconfig', static function ($routes) {
|
||||
$routes->get('', 'BoardConfigController::index');
|
||||
|
||||
@ -14,75 +14,55 @@ class BoardConfigController extends \App\Controllers\Admin\AdminController
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->_className .= '/BoardConfig';
|
||||
$this->_model = new BoardConfigModel();
|
||||
|
||||
$this->_defines = [
|
||||
'insert' => [
|
||||
'fields' => ['name', 'isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'status', 'head', 'tail'],
|
||||
'fieldFilters' => ['isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'status'],
|
||||
'fieldRules' => [
|
||||
'name' => 'required|string|is_unique[tw_board_config.name]',
|
||||
'isaccess' => 'required',
|
||||
'isread' => 'required',
|
||||
'iswrite' => 'required',
|
||||
'isreply' => 'required',
|
||||
'isupload' => 'required',
|
||||
'isdownload' => 'required',
|
||||
'head' => 'if_exist|string',
|
||||
'tail' => 'if_exist|string',
|
||||
'status' => 'if_exist|string',
|
||||
]
|
||||
'fields' => $this->_model->getFields(),
|
||||
'fieldRules' => $this->_model->getFieldRules($this->_model->getFields()),
|
||||
'fieldFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
],
|
||||
'update' => [
|
||||
'fields' => ['name', 'isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'status', 'head', 'tail'],
|
||||
'fieldFilters' => ['isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'status'],
|
||||
'fieldRules' => [
|
||||
'name' => 'required|string',
|
||||
'isaccess' => 'required',
|
||||
'isread' => 'required',
|
||||
'iswrite' => 'required',
|
||||
'isreply' => 'required',
|
||||
'isupload' => 'required',
|
||||
'isdownload' => 'required',
|
||||
'head' => 'if_exist|string',
|
||||
'tail' => 'if_exist|string',
|
||||
'status' => 'if_exist|string',
|
||||
]
|
||||
'fields' => $this->_model->getFields(),
|
||||
'fieldRules' => $this->_model->getFieldRules($this->_model->getFields()),
|
||||
'fieldFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
],
|
||||
'view' => [
|
||||
'fields' => ['name', 'isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'status', 'head', 'tail'],
|
||||
'fieldFilters' => ['isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'status'],
|
||||
'fieldRules' => [
|
||||
'name' => 'required|string',
|
||||
'isaccess' => 'required',
|
||||
'isread' => 'required',
|
||||
'iswrite' => 'required',
|
||||
'isreply' => 'required',
|
||||
'isupload' => 'required',
|
||||
'isdownload' => 'required',
|
||||
'head' => 'if_exist|string',
|
||||
'tail' => 'if_exist|string',
|
||||
'status' => 'if_exist|string',
|
||||
]
|
||||
'fields' => $this->_model->getFields(),
|
||||
'fieldRules' => $this->_model->getFieldRules($this->_model->getFields()),
|
||||
'fieldFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
],
|
||||
'index' => [
|
||||
'fields' => ['name', 'isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'status', 'created_at'],
|
||||
'fieldFilters' => ['isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'status'],
|
||||
'batchjobFilters' => ['status'],
|
||||
'fields' => $this->_model->getFields([], ['head', 'tail']),
|
||||
'fieldFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
'batchjobFilters' => $this->_model->getFieldFilters($this->_model->getFields(), ['isupload', 'isdownload']),
|
||||
],
|
||||
'excel' => [
|
||||
'fields' => ['name', 'isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'status', 'created_at'],
|
||||
'fieldFilters' => ['isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'status'],
|
||||
'fields' => $this->_model->getFields(),
|
||||
'fieldFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
],
|
||||
];
|
||||
|
||||
helper($this->_className);
|
||||
$this->_viewPath = strtolower($this->_className);
|
||||
$this->_viewDatas['title'] = lang($this->_className . '.title');
|
||||
$this->_viewDatas['className'] = $this->_className;
|
||||
}
|
||||
|
||||
//Field별 Form Option용
|
||||
protected function getFieldFormOption(string $field): array
|
||||
{
|
||||
switch ($field) {
|
||||
default:
|
||||
return parent::getFieldFormOption($field);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
////Action 모음
|
||||
//Insert관련
|
||||
final public function insert()
|
||||
{
|
||||
$this->_defines[__FUNCTION__]['fieldRules']['name'] .= '|is_unique[tw_board_config.name]';
|
||||
return $this->insert_procedure();
|
||||
}
|
||||
//Update관련
|
||||
|
||||
@ -17,50 +17,34 @@ class BoardController extends \App\Controllers\Admin\AdminController
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->_className .= '/Board';
|
||||
$this->_model = new BoardModel();
|
||||
|
||||
$this->_defines = [
|
||||
'insert' => [
|
||||
'fields' => ['board_config_uid', 'title', 'content', 'passwd', 'confirmpassword', 'upload_file', 'status'],
|
||||
'fieldFilters' => ['board_config_uid', 'user_uid', 'status'],
|
||||
'fieldRules' => [
|
||||
'board_config_uid' => 'required|string',
|
||||
'title' => 'required|string',
|
||||
'content' => 'required|string',
|
||||
'passwd' => 'if_exist|trim|string',
|
||||
'confirmpassword' => 'if_exist|trim|matches[passwd]',
|
||||
'view_cnt' => 'if_exist|numeric',
|
||||
'status' => 'if_exist|string',
|
||||
'upload_file' => 'if_exist|uploaded[upload_file]|is_image[upload_file]|mime_in[upload_file,image/jpg,image/jpeg,image/gif,image/png,image/webp]|max_size[upload_file,100]|max_dims[upload_file,1024,768]'
|
||||
]
|
||||
'fields' => $this->_model->getFields([], ['user_uid', 'view_cnt']),
|
||||
'fieldRules' => $this->_model->getFieldRules($this->_model->getFields()),
|
||||
'fieldFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
],
|
||||
'update' => [
|
||||
'fields' => ['board_config_uid', 'title', 'content', 'passwd', 'confirmpassword', 'upload_file', 'status'],
|
||||
'fieldFilters' => ['board_config_uid', 'user_uid', 'status'],
|
||||
'fieldRules' => [
|
||||
'board_config_uid' => 'required|string',
|
||||
'title' => 'required|string',
|
||||
'content' => 'required|string',
|
||||
'passwd' => 'if_exist|trim|string',
|
||||
'confirmpassword' => 'if_exist|trim|matches[passwd]',
|
||||
'view_cnt' => 'if_exist|numeric',
|
||||
'status' => 'if_exist|string',
|
||||
'upload_file' => 'if_exist|uploaded[upload_file]|is_image[upload_file]|mime_in[upload_file,image/jpg,image/jpeg,image/gif,image/png,image/webp]|max_size[upload_file,100]|max_dims[upload_file,1024,768]',
|
||||
],
|
||||
'fields' => $this->_model->getFields([], ['user_uid', 'view_cnt']),
|
||||
'fieldRules' => $this->_model->getFieldRules($this->_model->getFields()),
|
||||
'fieldFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
],
|
||||
'view' => [
|
||||
'fields' => ['board_config_uid', 'user_uid', 'title', 'view_cnt', 'status', 'updated_at', 'created_at', 'content'],
|
||||
'fieldFilters' => ['board_config_uid', 'user_uid', 'status'],
|
||||
'fieldRules' => ['board_config_uid', 'user_uid', 'status'],
|
||||
'fields' => $this->_model->getFields(),
|
||||
'fieldRules' => $this->_model->getFieldRules($this->_model->getFields()),
|
||||
'fieldFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
],
|
||||
'index' => [
|
||||
'fields' => ['board_config_uid', 'user_uid', 'title', 'view_cnt', 'status', 'updated_at', 'created_at'],
|
||||
'fieldFilters' => ['board_config_uid', 'user_uid', 'status'],
|
||||
'batchjobFilters' => ['board_config_uid', 'user_uid', 'status'],
|
||||
'fields' => $this->_model->getFields([], ['upload_file', 'passwd', 'content']),
|
||||
'fieldFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
'batchjobFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
],
|
||||
'excel' => [
|
||||
'fields' => ['board_config_uid', 'user_uid', 'title', 'view_cnt', 'status', 'updated_at', 'created_at'],
|
||||
'fieldFilters' => ['board_config_uid', 'user_uid', 'status'],
|
||||
'fields' => $this->_model->getFields([], ['upload_file', 'passwd']),
|
||||
'fieldFilters' => $this->_model->getFieldFilters($this->_model->getFields()),
|
||||
],
|
||||
];
|
||||
|
||||
helper($this->_className);
|
||||
$this->_viewPath = strtolower($this->_className);
|
||||
$this->_viewDatas['title'] = lang($this->_className . '.title');
|
||||
@ -88,16 +72,21 @@ class BoardController extends \App\Controllers\Admin\AdminController
|
||||
}
|
||||
|
||||
//Field별 Form Datas 처리용
|
||||
protected function getFieldFormData(string $field, $entity = null)
|
||||
protected function getFieldFormData(string $field, $entity = null): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'passwd':
|
||||
$this->_viewDatas['fieldDatas'][$field] = $this->request->getVar($field);
|
||||
$this->_viewDatas['fieldDatas']['confirmpassword'] = $this->request->getVar('confirmpassword');
|
||||
break;
|
||||
case 'upload_file':
|
||||
return $this->single_upload_procedure($field, $entity);
|
||||
$this->_viewDatas['fieldDatas'][$field] = $this->single_upload_procedure($field, $entity);
|
||||
break;
|
||||
default:
|
||||
return parent::getFieldFormData($field, $entity);
|
||||
break;
|
||||
}
|
||||
return $this->_viewDatas['fieldDatas'];
|
||||
}
|
||||
|
||||
////Action 모음
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
namespace App\Controllers\Admin;
|
||||
|
||||
use App\Models\LoggerModel;
|
||||
use App\Models\UserModel;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
@ -17,22 +16,28 @@ class LoggerController extends \App\Controllers\Admin\AdminController
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->_className .= '/Logger';
|
||||
$this->_model = new LoggerModel();
|
||||
$this->_defines = [
|
||||
'view' => [
|
||||
'fields' => ['user_uid', 'title', 'content', 'status', 'created_at'],
|
||||
'fieldFilters' => ['user_uid'],
|
||||
'fieldRules' => [],
|
||||
],
|
||||
'index' => [
|
||||
'fields' => ['user_uid', 'title', 'status', 'created_at'],
|
||||
'fieldFilters' => ['user_uid'],
|
||||
'batchjobFilters' => [],
|
||||
],
|
||||
'excel' => [
|
||||
'fields' => ['user_uid', 'title', 'status', 'created_at'],
|
||||
'fieldFilters' => ['user_uid'],
|
||||
],
|
||||
];
|
||||
|
||||
$this->_defines = [];
|
||||
$this->_defines['insert'] = [];
|
||||
$this->_defines['insert']['fields'] = $this->_model->getFields();
|
||||
$this->_defines['insert']['fieldRules'] = $this->_model->getFieldRules($this->_defines['insert']['fields']);
|
||||
$this->_defines['insert']['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_defines['update'] = [];
|
||||
$this->_defines['update']['fields'] = $this->_defines['insert']['fields'];
|
||||
$this->_defines['update']['fieldRules'] = $this->_model->getFieldRules($this->_defines['update']['fields']);
|
||||
$this->_defines['update']['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_defines['view'] = [];
|
||||
$this->_defines['view']['fields'] = [...$this->_model->getFields(), 'updated_at', 'created_at'];
|
||||
$this->_defines['view']['fieldRules'] = $this->_model->getFieldRules($this->_defines['view']['fields']);
|
||||
$this->_defines['view']['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_defines['index'] = [];
|
||||
$this->_defines['index']['fields'] = [...$this->_model->getFields(), 'created_at'];
|
||||
$this->_defines['index']['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_defines['index']['batchjobFilters'] = ['status'];
|
||||
$this->_defines['excel'] = [];
|
||||
$this->_defines['excel']['fields'] = $this->_defines['index']['fields'];
|
||||
$this->_defines['excel']['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
|
||||
helper($this->_className);
|
||||
$this->_viewPath = strtolower($this->_className);
|
||||
$this->_viewDatas['title'] = lang($this->_className . '.title');
|
||||
@ -51,30 +56,30 @@ class LoggerController extends \App\Controllers\Admin\AdminController
|
||||
|
||||
////Action 모음
|
||||
//Insert관련
|
||||
// final public function insert()
|
||||
// {
|
||||
// return $this->insert_procedure();
|
||||
// }
|
||||
final public function insert()
|
||||
{
|
||||
return $this->insert_procedure();
|
||||
}
|
||||
//Update관련
|
||||
// final public function update($uid)
|
||||
// {
|
||||
// return $this->update_procedure($uid);
|
||||
// }
|
||||
final public function update($uid)
|
||||
{
|
||||
return $this->update_procedure($uid);
|
||||
}
|
||||
// //Toggle관련
|
||||
// final public function toggle($uid, string $field)
|
||||
// {
|
||||
// return $this->toggle_procedure($uid, $field);
|
||||
// }
|
||||
final public function toggle($uid, string $field)
|
||||
{
|
||||
return $this->toggle_procedure($uid, $field);
|
||||
}
|
||||
//Batchjob 관련
|
||||
// final public function batchjob()
|
||||
// {
|
||||
// return $this->batchjob_procedure();
|
||||
// }
|
||||
final public function batchjob()
|
||||
{
|
||||
return $this->batchjob_procedure();
|
||||
}
|
||||
//Delete 관련
|
||||
// final public function delete($uid)
|
||||
// {
|
||||
// return $this->delete_procedure($uid);
|
||||
// }
|
||||
final public function delete($uid)
|
||||
{
|
||||
return $this->delete_procedure($uid);
|
||||
}
|
||||
//View 관련
|
||||
final public function view($uid)
|
||||
{
|
||||
|
||||
@ -14,47 +14,54 @@ class UserController extends \App\Controllers\Admin\AdminController
|
||||
parent::initController($request, $response, $logger);
|
||||
$this->_className .= '/User';
|
||||
$this->_model = new UserModel();
|
||||
$this->_defines = [
|
||||
'insert' => [
|
||||
'fields' => ['id', 'passwd', 'confirmpassword', 'name', 'email', 'role', 'status'],
|
||||
'fieldFilters' => ['role', 'status'],
|
||||
'fieldRules' => [
|
||||
'id' => 'required|min_length[4]|max_length[20]|is_unique[tw_user.id]',
|
||||
'confirmpassword' => 'required|trim|matches[passwd]',
|
||||
]
|
||||
],
|
||||
'update' => [
|
||||
'fields' => ['passwd', 'confirmpassword', 'name', 'email', 'role', 'status'],
|
||||
'fieldFilters' => ['role', 'status'],
|
||||
'fieldRules' => [
|
||||
'confirmpassword' => 'required|trim|matches[passwd]',
|
||||
]
|
||||
],
|
||||
'view' => [
|
||||
'fields' => ['id', 'name', 'email', 'role', 'status', 'updated_at', 'created_at'],
|
||||
'fieldFilters' => ['role', 'status'],
|
||||
'fieldRules' => [],
|
||||
],
|
||||
'index' => [
|
||||
'fields' => ['id', 'name', 'email', 'role', 'status', 'created_at'],
|
||||
'fieldFilters' => ['role', 'status'],
|
||||
'batchjobFilters' => ['role', 'status'],
|
||||
],
|
||||
'excel' => [
|
||||
'fields' => ['id', 'name', 'email', 'role', 'status', 'created_at'],
|
||||
'fieldFilters' => ['role', 'status'],
|
||||
],
|
||||
];
|
||||
|
||||
$this->_defines = [];
|
||||
$this->_defines['insert'] = [];
|
||||
$this->_defines['insert']['fields'] = ['id', 'passwd', 'confirmpassword', 'name', 'email', 'role', 'status'];
|
||||
$this->_defines['insert']['fieldRules'] = $this->_model->getFieldRules($this->_defines['insert']['fields']);
|
||||
$this->_defines['insert']['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_defines['update'] = [];
|
||||
$this->_defines['update']['fields'] = ['passwd', 'confirmpassword', 'name', 'email', 'role', 'status'];
|
||||
$this->_defines['update']['fieldRules'] = $this->_model->getFieldRules($this->_defines['update']['fields']);
|
||||
$this->_defines['update']['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_defines['view'] = [];
|
||||
$this->_defines['view']['fields'] = ['updated_at', 'created_at'];
|
||||
$this->_defines['view']['fieldRules'] = $this->_model->getFieldRules($this->_defines['view']['fields']);
|
||||
$this->_defines['view']['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_defines['index'] = [];
|
||||
$this->_defines['index']['fields'] = [...$this->_model->getFields(), 'created_at'];
|
||||
$this->_defines['index']['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
$this->_defines['index']['batchjobFilters'] = ['status'];
|
||||
$this->_defines['excel'] = [];
|
||||
$this->_defines['excel']['fields'] = $this->_defines['index']['fields'];
|
||||
$this->_defines['excel']['fieldFilters'] = $this->_model->getFieldFilters();
|
||||
|
||||
helper($this->_className);
|
||||
$this->_viewPath = strtolower($this->_className);
|
||||
$this->_viewDatas['title'] = lang($this->_className . '.title');
|
||||
$this->_viewDatas['className'] = $this->_className;
|
||||
}
|
||||
|
||||
//Field별 Form Datas 처리용
|
||||
protected function getFieldFormData(string $field, $entity = null): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'passwd':
|
||||
$this->_viewDatas['fieldDatas'][$field] = $this->request->getVar($field);
|
||||
$this->_viewDatas['fieldDatas']['confirmpassword'] = $this->request->getVar('confirmpassword');
|
||||
break;
|
||||
default:
|
||||
return parent::getFieldFormData($field, $entity);
|
||||
break;
|
||||
}
|
||||
return $this->_viewDatas['fieldDatas'];
|
||||
}
|
||||
|
||||
////Action 모음
|
||||
//Insert관련
|
||||
final public function insert()
|
||||
{
|
||||
$this->_defines[__FUNCTION__]['fieldRules']['id'] .= '|is_unique[tw_user.id]';
|
||||
return $this->insert_procedure();
|
||||
}
|
||||
//Update관련
|
||||
|
||||
@ -41,13 +41,6 @@ class UserSNSController extends \App\Controllers\Admin\AdminController
|
||||
protected function getFieldFormOption(string $field): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'user_uid':
|
||||
if (is_null($this->_user_uids)) {
|
||||
//모든 필요한 FormOption등 조기화작업 필요
|
||||
$this->_user_uids = $this->getUserModel()->getFieldFormOptions(['status' => 'use']);
|
||||
}
|
||||
return $this->_user_uids;
|
||||
break;
|
||||
default:
|
||||
return parent::getFieldFormOption($field);
|
||||
break;
|
||||
|
||||
@ -7,6 +7,7 @@ use CodeIgniter\HTTP\CLIRequest;
|
||||
use CodeIgniter\HTTP\IncomingRequest;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use CodeIgniter\HTTP\Files\UploadedFile;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use App\Libraries\Log\Log;
|
||||
use App\Models\UserModel;
|
||||
@ -112,32 +113,33 @@ abstract class BaseController extends Controller
|
||||
return $fieldFormOptions;
|
||||
}
|
||||
//Field별 Form Rule용
|
||||
final protected function getFieldRules(array $fields, array $fieldRules): array
|
||||
{
|
||||
$tempRules = $this->_model->getValidationRules(['only' => $fields]);
|
||||
foreach ($fields as $field) {
|
||||
if (!is_string($field)) {
|
||||
throw new \Exception(__FUNCTION__ . "에서 {$this->_className}의 Field:{$field}가 string 아닙니다.\n" . var_export($fieldRules, true));
|
||||
}
|
||||
if (array_key_exists($field, $fieldRules)) {
|
||||
$tempRules[$field] = $fieldRules[$field];
|
||||
}
|
||||
}
|
||||
return $tempRules;
|
||||
}
|
||||
// final protected function getFieldRules(array $fields, array $fieldRules): array
|
||||
// {
|
||||
// $tempRules = $this->_model->getValidationRules(['only' => $fields]);
|
||||
// foreach ($fields as $field) {
|
||||
// if (!is_string($field)) {
|
||||
// throw new \Exception(__FUNCTION__ . "에서 {$this->_className}의 Field:{$field}가 string 아닙니다.\n" . var_export($fieldRules, true));
|
||||
// }
|
||||
// if (array_key_exists($field, $fieldRules)) {
|
||||
// $tempRules[$field] = $fieldRules[$field];
|
||||
// }
|
||||
// }
|
||||
// return $tempRules;
|
||||
// }
|
||||
|
||||
//Field별 Form Datas 처리용
|
||||
protected function getFieldFormData(string $field, $entity = null)
|
||||
protected function getFieldFormData(string $field, $entity = null): array
|
||||
{
|
||||
switch ($field) {
|
||||
default:
|
||||
return $this->request->getVar($field);
|
||||
$this->_viewDatas['fieldDatas'][$field] = $this->request->getVar($field);
|
||||
break;
|
||||
}
|
||||
return $this->_viewDatas['fieldDatas'];
|
||||
}
|
||||
|
||||
//Upload FIle관련
|
||||
protected function upload_file_process($upfile)
|
||||
protected function upload_file_process(UploadedFile $upfile)
|
||||
{
|
||||
$fileName = "";
|
||||
if ($upfile->isValid() && !$upfile->hasMoved()) {
|
||||
@ -185,7 +187,7 @@ abstract class BaseController extends Controller
|
||||
protected function insert_init()
|
||||
{
|
||||
$this->_viewDatas['fields'] = $this->_defines['insert']['fields'];;
|
||||
$this->_viewDatas['fieldRules'] = $this->getFieldRules($this->_viewDatas['fields'], $this->_defines['insert']['fieldRules']);
|
||||
$this->_viewDatas['fieldRules'] = $this->_defines['insert']['fieldRules'];
|
||||
}
|
||||
protected function insert_form_init()
|
||||
{
|
||||
@ -214,9 +216,16 @@ abstract class BaseController extends Controller
|
||||
//변경된 값 적용
|
||||
$this->_viewDatas['fieldDatas'] = array();
|
||||
foreach ($this->_viewDatas['fields'] as $field) {
|
||||
$this->_viewDatas['fieldDatas'][$field] = $this->getFieldFormData($field);
|
||||
$this->_viewDatas['fieldDatas'] = $this->getFieldFormData($field);
|
||||
Log::add("info", "{$field} : " . var_export($this->_viewDatas['fieldDatas'][$field], true));
|
||||
}
|
||||
|
||||
// echo var_export($this->_viewDatas['fields'], true);
|
||||
// echo "<HR>";
|
||||
// echo var_export($this->_viewDatas['fieldDatas'], true);
|
||||
// echo "<HR>";
|
||||
// echo var_export($this->_viewDatas['fieldRules'], true);
|
||||
// exit;
|
||||
//변경할 값 확인
|
||||
if (!$this->validate($this->_viewDatas['fieldRules'])) {
|
||||
throw new \Exception("{$this->_viewDatas['title']}의 검증 오류발생\n" . implode("\n", $this->validator->getErrors()));
|
||||
@ -251,7 +260,7 @@ abstract class BaseController extends Controller
|
||||
protected function update_init()
|
||||
{
|
||||
$this->_viewDatas['fields'] = $this->_defines['update']['fields'];;
|
||||
$this->_viewDatas['fieldRules'] = $this->getFieldRules($this->_viewDatas['fields'], $this->_defines['update']['fieldRules']);
|
||||
$this->_viewDatas['fieldRules'] = $this->_defines['update']['fieldRules'];
|
||||
}
|
||||
protected function update_form_init()
|
||||
{
|
||||
@ -267,7 +276,7 @@ abstract class BaseController extends Controller
|
||||
final public function update_form($uid)
|
||||
{
|
||||
try {
|
||||
$entity = $this->_model->getEntity($uid);
|
||||
$entity = $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->update_init();
|
||||
$this->update_form_init();
|
||||
$this->_viewDatas['entity'] = $this->update_form_process($entity);
|
||||
@ -281,7 +290,7 @@ abstract class BaseController extends Controller
|
||||
//변경된 값 적용
|
||||
$this->_viewDatas['fieldDatas'] = array();
|
||||
foreach ($this->_viewDatas['fields'] as $field) {
|
||||
$this->_viewDatas['fieldDatas'][$field] = $this->getFieldFormData($field, $entity);
|
||||
$this->_viewDatas['fieldDatas'] = $this->getFieldFormData($field, $entity);
|
||||
Log::add(
|
||||
"info",
|
||||
"{$field} : {$entity->$field} => " . var_export($this->_viewDatas['fieldDatas'][$field])
|
||||
@ -301,7 +310,7 @@ abstract class BaseController extends Controller
|
||||
{
|
||||
$message = "";
|
||||
try {
|
||||
$entity = $this->_model->getEntity($uid);
|
||||
$entity = $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->update_init();
|
||||
$entity = $this->update_validate($entity);
|
||||
$entity = $this->update_process($entity);
|
||||
@ -333,7 +342,7 @@ abstract class BaseController extends Controller
|
||||
final public function reply_form($uid)
|
||||
{
|
||||
try {
|
||||
$entity = $this->_model->getEntity($uid);
|
||||
$entity = $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->reply_init();
|
||||
$this->reply_form_init();
|
||||
$this->_viewDatas['entity'] = $this->reply_form_process($entity);
|
||||
@ -354,7 +363,7 @@ abstract class BaseController extends Controller
|
||||
{
|
||||
$message = "";
|
||||
try {
|
||||
$entity = $this->_model->getEntity($uid);
|
||||
$entity = $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->reply_init();
|
||||
$entity = $this->reply_validate($entity);
|
||||
$entity = $this->reply_process($entity);
|
||||
@ -374,7 +383,7 @@ abstract class BaseController extends Controller
|
||||
protected function toggle_init($field)
|
||||
{
|
||||
$this->_viewDatas['fields'] = [$field];
|
||||
$this->_viewDatas['fieldRules'] = $this->getFieldRules($this->_viewDatas['fields'], array());
|
||||
$this->_viewDatas['fieldRules'] = $this->_defines['update']['fieldRules'];
|
||||
}
|
||||
protected function toggle_validate($entity)
|
||||
{
|
||||
@ -388,7 +397,7 @@ abstract class BaseController extends Controller
|
||||
{
|
||||
$message = "";
|
||||
try {
|
||||
$entity = $this->_model->getEntity($uid);
|
||||
$entity = $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->toggle_init($field);
|
||||
$entity = $this->toggle_validate($entity);
|
||||
$entity = $this->toggle_process($entity);
|
||||
@ -418,7 +427,7 @@ abstract class BaseController extends Controller
|
||||
}
|
||||
//Fields,FielRules재정의
|
||||
$this->_viewDatas['fields'] = $fields;
|
||||
$this->_viewDatas['fieldRules'] = $this->getFieldRules($this->_viewDatas['fields'], array());
|
||||
$this->_viewDatas['fieldRules'] = $this->_defines['update']['fieldRules'];
|
||||
}
|
||||
protected function batchjob_validate($entity)
|
||||
{
|
||||
@ -439,7 +448,7 @@ abstract class BaseController extends Controller
|
||||
$this->batchjob_init();
|
||||
$entitys = array();
|
||||
foreach ($uids as $uid) {
|
||||
$entity = $this->_model->getEntity($uid);
|
||||
$entity = $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
try {
|
||||
$entity = $this->batchjob_validate($entity);
|
||||
array_push($entitys, $this->batchjob_process($entity));
|
||||
@ -473,7 +482,7 @@ abstract class BaseController extends Controller
|
||||
{
|
||||
$message = "";
|
||||
try {
|
||||
$entity = $this->_model->getEntity($uid);
|
||||
$entity = $entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
$this->delete_process($entity);
|
||||
$message = "{$entity->getTitle()} " . __FUNCTION__ . " 완료하였습니다.";
|
||||
Log::save("{$this->_viewDatas['title']} {$message}");
|
||||
@ -491,7 +500,7 @@ abstract class BaseController extends Controller
|
||||
{
|
||||
$this->_viewDatas['fields'] = $this->_defines['view']['fields'];
|
||||
$this->_viewDatas['fieldFilters'] = $this->_defines['view']['fieldFilters'];
|
||||
$this->_viewDatas['fieldRules'] = $this->getFieldRules($this->_viewDatas['fields'], $this->_defines['view']['fieldRules']);
|
||||
$this->_viewDatas['fieldRules'] = $this->_defines['view']['fieldRules'];
|
||||
helper(['form']);
|
||||
$this->_viewDatas['fieldFormOptions'] = $this->getFieldFormOptions($this->_viewDatas['fieldFilters']);
|
||||
$this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => []];
|
||||
@ -503,7 +512,7 @@ abstract class BaseController extends Controller
|
||||
protected function view_procedure($uid)
|
||||
{
|
||||
try {
|
||||
$entity = $this->_model->getEntity($uid);
|
||||
$entity = $this->_model->getEntity([$this->_model->getPrimaryKey() => $uid]);
|
||||
// dd($entity);
|
||||
$this->view_init();
|
||||
$this->_viewDatas['entity'] = $this->view_process($entity);
|
||||
@ -523,7 +532,6 @@ abstract class BaseController extends Controller
|
||||
$this->_viewDatas['fieldFormOptions'] = $this->getFieldFormOptions($this->_viewDatas['fieldFilters']);
|
||||
$this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => []];
|
||||
$this->_session->set(SESSION_NAMES['RETURN_URL'], current_url() . '?' . $this->request->getUri()->getQuery());
|
||||
|
||||
foreach ($this->_viewDatas['fieldFilters'] as $field) {
|
||||
$this->_viewDatas[$field] = $this->request->getVar($field) ? $this->request->getVar($field) : DEFAULTS['EMPTY'];
|
||||
}
|
||||
|
||||
@ -129,7 +129,7 @@ function getFieldIndex_Row_BoardConfigHelper($field, array $row, array $fieldFil
|
||||
$attributes["onChange"] = sprintf('location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', current_url(), $row['uid'], $field, $field);
|
||||
return getFieldFilter_BoardConfigHelper($field, $row[$field], $fieldFormOptions, $attributes);
|
||||
}
|
||||
return $row[$field];
|
||||
return $row[$field] ?: DEFAULTS['EMPTY'];
|
||||
break;
|
||||
}
|
||||
} //
|
||||
@ -27,8 +27,12 @@ function getFieldForm_BoardHelper($field, $value, array $fieldFormOptions, array
|
||||
return form_input($field, $value, [...$attributes, 'class' => 'calender']);
|
||||
break;
|
||||
case 'passwd':
|
||||
case 'confirmpassword':
|
||||
return form_password($field, DEFAULTS['EMPTY'], $attributes);
|
||||
return sprintf(
|
||||
"%s %s %s",
|
||||
form_password($field, DEFAULTS['EMPTY'], $attributes),
|
||||
lang("Admin/Board.label.confirmpassword"),
|
||||
form_password('confirmpassword', DEFAULTS['EMPTY'], $attributes),
|
||||
);
|
||||
break;
|
||||
case 'content':
|
||||
return form_textarea($field, html_entity_decode($value), [...$attributes, 'class' => 'editor', 'rows' => '20', 'cols' => '100']);
|
||||
@ -95,7 +99,7 @@ function getFieldIndex_Row_BoardHelper($field, array $row, array $fieldFilters,
|
||||
$attributes["onChange"] = sprintf('location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', current_url(), $row['uid'], $field, $field);
|
||||
return getFieldFilter_BoardHelper($field, $row[$field], $fieldFormOptions, $attributes);
|
||||
}
|
||||
return $row[$field];
|
||||
return $row[$field] ?: DEFAULTS['EMPTY'];
|
||||
break;
|
||||
}
|
||||
} //
|
||||
@ -83,7 +83,7 @@ function getFieldIndex_Row_LoggerHelper($field, array $row, array $fieldFilters,
|
||||
$attributes["onChange"] = sprintf('location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', current_url(), $row['uid'], $field, $field);
|
||||
return getFieldFilter_LoggerHelper($field, $row[$field], $fieldFormOptions, $attributes);
|
||||
}
|
||||
return $row[$field];
|
||||
return $row[$field] ?: DEFAULTS['EMPTY'];
|
||||
break;
|
||||
}
|
||||
} //
|
||||
@ -76,7 +76,7 @@ function getFieldIndex_Row_UserSNSHelper($field, array $row, array $fieldFilters
|
||||
$attributes["onChange"] = sprintf('location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', current_url(), $row['uid'], $field, $field);
|
||||
return getFieldFilter_UserSNSHelper($field, $row[$field], $fieldFormOptions, $attributes);
|
||||
}
|
||||
return $row[$field];
|
||||
return $row[$field] ?: DEFAULTS['EMPTY'];
|
||||
break;
|
||||
}
|
||||
} //
|
||||
@ -26,8 +26,12 @@ function getFieldForm_UserHelper($field, $value, array $fieldFormOptions, array
|
||||
return form_input($field, $value, [...$attributes, 'class' => 'calender']);
|
||||
break;
|
||||
case 'passwd':
|
||||
case 'confirmpassword':
|
||||
return form_password($field, DEFAULTS['EMPTY'], $attributes);
|
||||
return sprintf(
|
||||
"%s %s %s",
|
||||
form_password($field, DEFAULTS['EMPTY'], $attributes),
|
||||
lang("Admin/User.label.confirmpassword"),
|
||||
form_password('confirmpassword', DEFAULTS['EMPTY'], $attributes),
|
||||
);
|
||||
break;
|
||||
default:
|
||||
return form_input($field, $value, $attributes);
|
||||
@ -80,7 +84,7 @@ function getFieldIndex_Row_UserHelper($field, array $row, array $fieldFilters, $
|
||||
$attributes["onChange"] = sprintf('location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', current_url(), $row['uid'], $field, $field);
|
||||
return getFieldFilter_UserHelper($field, $row[$field], $fieldFormOptions, $attributes);
|
||||
}
|
||||
return $row[$field];
|
||||
return $row[$field] ?: DEFAULTS['EMPTY'];
|
||||
break;
|
||||
}
|
||||
} //
|
||||
@ -10,4 +10,5 @@ return [
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일"
|
||||
],
|
||||
'STATUS' => FORM_OPTIONS['STATUS'],
|
||||
];
|
||||
|
||||
@ -21,11 +21,7 @@ class LocalAdapter extends Adapter
|
||||
if (!isset($formDatas['id']) || !$formDatas['id'] || !isset($formDatas['passwd']) || !$formDatas['passwd']) {
|
||||
throw new \Exception("ID 나 암호의 값이 없습니다.");
|
||||
}
|
||||
|
||||
$entity = $this->getUserModel()->getEntityByField('id', $formDatas['id']);
|
||||
if (is_null($entity)) {
|
||||
throw new \Exception("사용자ID: {$formDatas['id']}가 존재하지 않습니다.");
|
||||
}
|
||||
$entity = $this->getUserModel()->getEntity(['id' => $formDatas['id']]);
|
||||
if (!password_verify($formDatas['passwd'], $entity->passwd)) {
|
||||
throw new \Exception("암호가 맞지않습니다.");
|
||||
}
|
||||
|
||||
@ -10,18 +10,41 @@ abstract class BaseHierarchyModel extends BaseModel
|
||||
protected function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->allowedFields = [...$this->allowedFields, 'grpno', 'grporder', 'grpdepth'];
|
||||
$this->validationRules = [
|
||||
...$this->validationRules,
|
||||
'grpno' => 'if_exist|numeric',
|
||||
'grporder' => 'if_exist|numeric',
|
||||
'grpdepth' => 'if_exist|numeric',
|
||||
$this->allowedFields = [
|
||||
...$this->allowedFields,
|
||||
'grpno', 'grporder', 'grpdepth'
|
||||
];
|
||||
}
|
||||
abstract public function getEntity($uid): BaseEntity;
|
||||
abstract public function getEntitys($where): array;
|
||||
protected function getFields(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
//allowedFields에서 추가했으므로 Controller에는 적용되지 않게하기위함
|
||||
$skips = ['grpno', 'grporder', 'grpdepth', ...$skips];
|
||||
return parent::getFields($fields, $skips);
|
||||
}
|
||||
protected function getFieldFilters(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
//allowedFields에서 추가했으므로 Controller에는 적용되지 않게하기위함
|
||||
$skips = ['grpno', 'grporder', 'grpdepth', ...$skips];
|
||||
return parent::getFieldFilters($fields, $skips);
|
||||
}
|
||||
|
||||
abstract function reply($parent_entity, array $formDatas): BaseEntity;
|
||||
|
||||
protected function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'grpno':
|
||||
case 'grporder':
|
||||
case 'grpdepth':
|
||||
$rules[$field] = 'if_exist|numeric';
|
||||
break;
|
||||
default:
|
||||
$rules = parent::getFieldRule($field, $rules);
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
|
||||
final protected function create_process($entity, array $formDatas)
|
||||
{
|
||||
$entity = parent::create_process($entity, $formDatas);
|
||||
|
||||
@ -45,13 +45,72 @@ abstract class BaseModel extends Model
|
||||
{
|
||||
parent::__construct();
|
||||
$this->allowedFields = ['updated_at', 'created_at'];
|
||||
$this->validationRules = [
|
||||
'updated_at' => 'if_exist|valid_date',
|
||||
'created_at' => 'if_exist|valid_date',
|
||||
];
|
||||
$this->validationRules = [];
|
||||
}
|
||||
abstract public function getEntity($uid): BaseEntity;
|
||||
abstract public function getEntitys($where): array;
|
||||
protected function getFields(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
// echo var_export($fields, true);
|
||||
// echo "<HR>";
|
||||
//allowedFields에서 추가했으므로 Controller에는 적용되지 않게하기위함
|
||||
$skips = ['updated_at', 'created_at', ...$skips];
|
||||
$tempFields = array();
|
||||
foreach ($fields as $key => $field) {
|
||||
in_array($field, $skips) ?: array_push($tempFields, $field);
|
||||
}
|
||||
// echo var_export($tempFields, true);
|
||||
// exit;
|
||||
return $tempFields;
|
||||
}
|
||||
protected function getFieldFilters(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
//allowedFields에서 추가했으므로 Controller에는 적용되지 않게하기위함
|
||||
$skips = ['updated_at', 'created_at', ...$skips];
|
||||
$tempFields = array();
|
||||
foreach ($fields as $field) {
|
||||
if (!in_array($field, $skips)) {
|
||||
array_push($tempFields, $field);
|
||||
}
|
||||
}
|
||||
return $tempFields;
|
||||
}
|
||||
protected function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'user_uid':
|
||||
$rules[$field] = 'if_exist|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]';
|
||||
break;
|
||||
case 'passwd':
|
||||
$rules[$field] = 'if_exist|string';
|
||||
$rules['confirmpassword'] = 'if_exist|string|matches[passwd]';
|
||||
break;
|
||||
case 'view_cnt':
|
||||
$rules[$field] = 'if_exist|numeric';
|
||||
break;
|
||||
case 'updated_at':
|
||||
case 'created_at':
|
||||
case 'deleted_at':
|
||||
$rules[$field] = 'if_exist|valid_date';
|
||||
break;
|
||||
default:
|
||||
$rules[$field] = 'if_exist|string';
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
final public function getFieldRules(array $fields, array $rules = array()): array
|
||||
{
|
||||
foreach ($fields as $field) {
|
||||
$rules = $this->getFieldRule($field, $rules);
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
|
||||
final public function getPrimaryKey()
|
||||
{
|
||||
return $this->primaryKey;
|
||||
}
|
||||
|
||||
final public function getFieldFormOptions($where, $options = array()): array
|
||||
{
|
||||
@ -74,8 +133,17 @@ abstract class BaseModel extends Model
|
||||
);
|
||||
}
|
||||
|
||||
//View관련 (게시판등의 조회수 증가함수)
|
||||
final public function increaseViewCount($uid, string $field = 'view_cnt', int $cnt = 1)
|
||||
{
|
||||
//escape -> false옵션 반드시 있어야함
|
||||
$this->builder()->set($field, "{$field}+{$cnt}", false);
|
||||
$this->builder()->where($this->primaryKey, $uid);
|
||||
$this->builder()->update();
|
||||
}
|
||||
|
||||
//create , modify 직전 작업용 작업
|
||||
protected function changeFormData($field, array $formDatas, $entity)
|
||||
protected function changeFormData(string $field, array $formDatas, $entity)
|
||||
{
|
||||
switch ($field) {
|
||||
case $this->primaryKey:
|
||||
@ -132,6 +200,8 @@ abstract class BaseModel extends Model
|
||||
}
|
||||
protected function create_process($entity, array $formDatas)
|
||||
{
|
||||
// echo var_export($this->allowedFields, true);
|
||||
// exit;
|
||||
foreach ($this->allowedFields as $field) {
|
||||
$entity = $this->changeFormData($field, $formDatas, $entity);
|
||||
}
|
||||
@ -148,25 +218,16 @@ abstract class BaseModel extends Model
|
||||
return $this->save_process($entity);
|
||||
}
|
||||
|
||||
//View관련 (게시판등의 조회수 증가함수)
|
||||
final public function increaseViewCount($uid, $field = 'view_cnt', int $cnt = 1)
|
||||
{
|
||||
//escape -> false옵션 반드시 있어야함
|
||||
$this->builder()->set($field, "{$field}+{$cnt}", false);
|
||||
$this->builder()->where($this->primaryKey, $uid);
|
||||
$this->builder()->update();
|
||||
}
|
||||
|
||||
//Index관련
|
||||
public function setIndexWordFilter(string $word)
|
||||
protected function setIndexWordFilter(string $word)
|
||||
{
|
||||
}
|
||||
public function setIndexDateFilterTrit($start, $end)
|
||||
protected function setIndexDateFilterTrit($start, $end)
|
||||
{
|
||||
$this->where('created_at >=', $start);
|
||||
$this->where('created_at <=', $end);
|
||||
}
|
||||
public function setIndexOrderBy($field, $order = 'ASC')
|
||||
protected function setIndexOrderBy($field, $order = 'ASC')
|
||||
{
|
||||
$this->orderBy($field, $order);
|
||||
}
|
||||
|
||||
@ -11,34 +11,61 @@ class BoardConfigModel extends BaseModel
|
||||
parent::__construct();
|
||||
$this->table = 'tw_board_config';
|
||||
$this->useAutoIncrement = false;
|
||||
$this->allowedFields = [...$this->allowedFields, 'uid', 'name', 'isaccess', 'isread', 'iswrite', 'isreply', 'isupload', 'isdownload', 'head', 'tail', 'status'];
|
||||
$this->allowedFields = [
|
||||
...$this->allowedFields,
|
||||
'uid', 'name', 'isaccess', 'isread', 'iswrite',
|
||||
'isreply', 'isupload', 'isdownload',
|
||||
'status', 'head', 'tail'
|
||||
];
|
||||
$this->validationRules = [
|
||||
...$this->validationRules,
|
||||
'uid' => 'required|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]',
|
||||
'name' => 'required|string',
|
||||
'isaccess' => 'required',
|
||||
'isread' => 'required',
|
||||
'iswrite' => 'required',
|
||||
'isreply' => 'required',
|
||||
'isupload' => 'required',
|
||||
'isdownload' => 'required',
|
||||
'head' => 'if_exist|string',
|
||||
'tail' => 'if_exist|string',
|
||||
'status' => 'if_exist|string',
|
||||
...$this->getFieldRules($this->getFields()),
|
||||
];
|
||||
}
|
||||
|
||||
public function getEntity($uid): BoardConfigEntity
|
||||
public function getFields(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
$entity = $this->asObject(BoardConfigEntity::class)->where([$this->primaryKey => $uid])->first();
|
||||
return $entity ?: throw new \Exception("{$uid}의 해당 데이터가 없습니다.\n ");
|
||||
$fields = [...$this->allowedFields, ...$fields];
|
||||
return parent::getFields($fields, ['uid', ...$skips]);
|
||||
}
|
||||
public function getFieldFilters(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
$skips = ['name', 'head', 'tail', ...$skips];
|
||||
return parent::getFieldFilters($fields, $skips);
|
||||
}
|
||||
protected function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'uid':
|
||||
$rules[$field] = 'required|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]';
|
||||
break;
|
||||
case 'name':
|
||||
$rules[$field] = 'required|trim|string';
|
||||
break;
|
||||
case 'isaccess':
|
||||
case 'isread':
|
||||
case 'iswrite':
|
||||
case 'isreply':
|
||||
case 'isupload':
|
||||
case 'isdownload':
|
||||
$rules[$field] = 'required';
|
||||
break;
|
||||
default:
|
||||
$rules = parent::getFieldRule($field, $rules);
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
public function getEntity($where): BoardConfigEntity
|
||||
{
|
||||
$entity = $this->asObject(BoardConfigEntity::class)->where($where)->first();
|
||||
return $entity ?: throw new \Exception("{$where}의 해당 데이터가 없습니다.\n ");
|
||||
}
|
||||
public function getEntitys($where): array
|
||||
{
|
||||
return $this->asObject(BoardConfigEntity::class)->where($where)->findAll();
|
||||
}
|
||||
|
||||
protected function changeFormData($field, array $formDatas, $entity)
|
||||
protected function changeFormData(string $field, array $formDatas, $entity)
|
||||
{
|
||||
switch ($field) {
|
||||
case 'isaccess':
|
||||
@ -78,6 +105,12 @@ class BoardConfigModel extends BaseModel
|
||||
{
|
||||
parent::setIndexWordFilter($word);
|
||||
$this->orLike('name', $word, 'both'); //befor , after , both
|
||||
$this->orLike('isaccess', $word, 'both'); //befor , after , both
|
||||
$this->orLike('isread', $word, 'both'); //befor , after , both
|
||||
$this->orLike('iswrite', $word, 'both'); //befor , after , both
|
||||
$this->orLike('isreply', $word, 'both'); //befor , after , both
|
||||
$this->orLike('isupload', $word, 'both'); //befor , after , both
|
||||
$this->orLike('isdownload', $word, 'both'); //befor , after , both
|
||||
}
|
||||
public function setIndexOrderBy($field, $order = 'ASC')
|
||||
{
|
||||
|
||||
@ -10,23 +10,53 @@ class BoardModel extends BaseHierarchyModel
|
||||
{
|
||||
parent::__construct();
|
||||
$this->table = 'tw_board';
|
||||
$this->allowedFields = [...$this->allowedFields, 'board_config_uid', 'user_uid', 'title', 'content', 'passwd', 'view_cnt', 'status'];
|
||||
$this->allowedFields = [
|
||||
...$this->allowedFields,
|
||||
'board_config_uid', 'user_uid', 'title', 'passwd',
|
||||
'upload_file', 'status', 'view_cnt', 'content',
|
||||
];
|
||||
$this->validationRules = [
|
||||
...$this->validationRules,
|
||||
'board_config_uid' => 'required|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]',
|
||||
'user_uid' => 'if_exist|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]',
|
||||
'title' => 'required|string',
|
||||
'content' => 'required|string',
|
||||
'passwd' => 'if_exist|trim|string',
|
||||
'view_cnt' => 'if_exist|numeric',
|
||||
'status' => 'if_exist|string',
|
||||
...$this->getFieldRules($this->getFields()),
|
||||
];
|
||||
}
|
||||
|
||||
public function getEntity($uid): BoardEntity
|
||||
public function getFields(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
$entity = $this->asObject(BoardEntity::class)->where([$this->primaryKey => $uid])->first();
|
||||
return $entity ?: throw new \Exception("{$uid}의 해당 데이터가 없습니다.\n ");
|
||||
$fields = [...$this->allowedFields, ...$fields];
|
||||
return parent::getFields($fields, $skips);
|
||||
}
|
||||
public function getFieldFilters(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
$skips = ['title', 'passwd', 'upload_file', 'view_cnt', 'content', ...$skips];
|
||||
return parent::getFieldFilters($fields, $skips);
|
||||
}
|
||||
protected function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'board_config_uid':
|
||||
$rules[$field] = 'required|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]';
|
||||
break;
|
||||
case 'title':
|
||||
case 'content':
|
||||
$rules[$field] = 'required|string';
|
||||
break;
|
||||
case 'upload_file':
|
||||
$rules[$field] = 'if_exist|uploaded[upload_file]|is_image[upload_file]|mime_in[upload_file,image/jpg,image/jpeg,image/gif,image/png,image/webp]|max_size[upload_file,100]|max_dims[upload_file,1024,768]';
|
||||
break;
|
||||
case 'view_cnt':
|
||||
$rules[$field] = 'if_exist|numeric';
|
||||
break;
|
||||
default:
|
||||
$rules = parent::getFieldRule($field, $rules);
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
|
||||
public function getEntity($where): BoardEntity
|
||||
{
|
||||
$entity = $this->asObject(BoardEntity::class)->where($where)->first();
|
||||
return $entity ?: throw new \Exception("{$where}의 해당 데이터가 없습니다.\n ");
|
||||
}
|
||||
public function getEntitys($where): array
|
||||
{
|
||||
|
||||
@ -10,20 +10,44 @@ class LoggerModel extends BaseModel
|
||||
{
|
||||
parent::__construct();
|
||||
$this->table = 'tw_logger';
|
||||
$this->allowedFields = [...$this->allowedFields, 'user_uid', 'title', 'content', 'status'];
|
||||
$this->allowedFields = [
|
||||
...$this->allowedFields,
|
||||
...$this->getFields(),
|
||||
];
|
||||
$this->validationRules = [
|
||||
...$this->validationRules,
|
||||
'user_uid' => 'required|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]',
|
||||
'title' => 'required|string',
|
||||
'content' => 'if_exist|string',
|
||||
'status' => 'required|string',
|
||||
...$this->getFieldRules($this->getFields()),
|
||||
];
|
||||
}
|
||||
|
||||
public function getEntity($uid): LoggerEntity
|
||||
public function getFields(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
$entity = $this->asObject(LoggerEntity::class)->where([$this->primaryKey => $uid])->first();
|
||||
return $entity ?: throw new \Exception("{$uid}의 해당 데이터가 없습니다.\n ");
|
||||
$fields = ['user_uid', 'title', 'content', 'status', ...$fields];
|
||||
return parent::getFields($fields, $skips);
|
||||
}
|
||||
public function getFieldFilters(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
$fields = ['user_uid', 'status', ...$fields];
|
||||
return parent::getFieldFilters($fields, $skips);
|
||||
}
|
||||
protected function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
case 'content':
|
||||
case 'status':
|
||||
$rules[$field] = 'required|string';
|
||||
break;
|
||||
default:
|
||||
$rules = parent::getFieldRule($field, $rules);
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
|
||||
public function getEntity($where): LoggerEntity
|
||||
{
|
||||
$entity = $this->asObject(LoggerEntity::class)->where($where)->first();
|
||||
return $entity ?: throw new \Exception("{$where}의 해당 데이터가 없습니다.\n ");
|
||||
}
|
||||
public function getEntitys($where): array
|
||||
{
|
||||
|
||||
@ -11,23 +11,58 @@ class UserModel extends BaseModel
|
||||
parent::__construct();
|
||||
$this->table = 'tw_user';
|
||||
$this->useAutoIncrement = false;
|
||||
$this->allowedFields = [...$this->allowedFields, 'uid', 'id', 'email', 'passwd', 'name', 'role', 'status'];
|
||||
$this->allowedFields = [
|
||||
...$this->allowedFields,
|
||||
'uid',
|
||||
...$this->getFields(),
|
||||
];
|
||||
$this->validationRules = [
|
||||
...$this->validationRules,
|
||||
'uid' => 'required|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]',
|
||||
'id' => 'required|min_length[4]|max_length[20]',
|
||||
'passwd' => 'required|trim|min_length[4]|max_length[150]',
|
||||
'name' => 'required|min_length[2]|max_length[20]',
|
||||
'email' => 'required|valid_email',
|
||||
'role' => 'required|string',
|
||||
'status' => 'if_exist|string',
|
||||
...$this->getFieldRules($this->getFields()),
|
||||
];
|
||||
}
|
||||
|
||||
public function getEntity($uid): UserEntity
|
||||
public function getFields(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
$entity = $this->asObject(UserEntity::class)->where([$this->primaryKey => $uid])->first();
|
||||
return $entity ?: throw new \Exception("{$uid}의 해당 데이터가 없습니다.\n ");
|
||||
$fields = ['id', 'email', 'passwd', 'name', 'role', 'status', ...$fields];
|
||||
return parent::getFields($fields, $skips);
|
||||
}
|
||||
public function getFieldFilters(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
$fields = ['user_uid', 'status', ...$fields];
|
||||
return parent::getFieldFilters($fields, $skips);
|
||||
}
|
||||
protected function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'uid':
|
||||
$rules[$field] = 'required|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]';
|
||||
break;
|
||||
case 'id':
|
||||
$rules[$field] = 'required|trim|min_length[4]|max_length[20]';
|
||||
break;
|
||||
case 'passwd':
|
||||
$rules[$field] = 'required|string';
|
||||
$rules['confirmpassword'] = 'if_exist|string|matches[passwd]';
|
||||
break;
|
||||
case 'name':
|
||||
$rules[$field] = 'required|trim|string';
|
||||
break;
|
||||
case 'email':
|
||||
$rules[$field] = 'required|valid_email';
|
||||
break;
|
||||
case 'role':
|
||||
$rules[$field] = 'required|string';
|
||||
break;
|
||||
default:
|
||||
$rules = parent::getFieldRule($field, $rules);
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
public function getEntity($where): UserEntity
|
||||
{
|
||||
$entity = $this->asObject(UserEntity::class)->where($where)->first();
|
||||
return $entity ?: throw new \Exception("{$where}의 해당 사용자가 없습니다.\n ");
|
||||
}
|
||||
public function getEntitys($where): array
|
||||
{
|
||||
|
||||
@ -10,23 +10,51 @@ class UserSNSModel extends BaseModel
|
||||
{
|
||||
parent::__construct();
|
||||
$this->table = 'tw_user_sns';
|
||||
$this->allowedFields = [...$this->allowedFields, 'user_uid', 'site', 'id', 'name', 'email', 'detail', 'status'];
|
||||
$this->allowedFields = [
|
||||
...$this->allowedFields,
|
||||
...$this->getFields()
|
||||
];
|
||||
$this->validationRules = [
|
||||
...$this->validationRules,
|
||||
'user_uid' => 'if_exist|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]',
|
||||
'site' => 'required|string',
|
||||
'id' => 'required|string',
|
||||
'name' => 'required|string',
|
||||
'email' => 'required|valid_email',
|
||||
'detail' => 'if_exist|string',
|
||||
'status' => 'required|string',
|
||||
...$this->getFieldRules($this->getFields()),
|
||||
];
|
||||
}
|
||||
|
||||
public function getEntity($uid): UserSNSEntity
|
||||
public function getFields(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
$entity = $this->asObject(UserSNSEntity::class)->where([$this->primaryKey => $uid])->first();
|
||||
return $entity ?: throw new \Exception("{$uid}의 해당 데이터가 없습니다.\n ");
|
||||
$fields = ['user_uid', 'site', 'id', 'name', 'email', 'detail', 'status', ...$fields];
|
||||
return parent::getFields($fields, $skips);
|
||||
}
|
||||
public function getFieldFilters(array $fields = array(), array $skips = array()): array
|
||||
{
|
||||
$fields = ['user_uid', 'status', ...$fields];
|
||||
return parent::getFieldFilters($fields, $skips);
|
||||
}
|
||||
protected function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'id':
|
||||
case 'name':
|
||||
$rules[$field] = 'required|trim|string';
|
||||
break;
|
||||
case 'email':
|
||||
$rules[$field] = 'required|valid_email';
|
||||
break;
|
||||
case 'detail':
|
||||
$rules[$field] = 'if_exist|string';
|
||||
break;
|
||||
case 'status':
|
||||
$rules[$field] = 'required|string';
|
||||
break;
|
||||
default:
|
||||
$rules = parent::getFieldRule($field, $rules);
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
public function getEntity($where): UserSNSEntity
|
||||
{
|
||||
$entity = $this->asObject(UserSNSEntity::class)->where($where)->first();
|
||||
return $entity ?: throw new \Exception("{$where}의 해당 데이터가 없습니다.\n ");
|
||||
}
|
||||
public function getEntitys($where): array
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user