diff --git a/app/Controllers/Admin/AdminController.php b/app/Controllers/Admin/AdminController.php index 12069dc..eea222f 100644 --- a/app/Controllers/Admin/AdminController.php +++ b/app/Controllers/Admin/AdminController.php @@ -31,13 +31,6 @@ abstract class AdminController extends CommonController { parent::action_init_process($action); $this->addViewDatas('layout', $this->getLayout()); - $this->addViewDatas('helper', $this->service->getHelper($action, $this->getViewDatas())); - $formFields = $this->service->getFormService()->getFormFields($action); - $formFilters = $this->service->getFormService()->getFormFilters($action); - $this->addViewDatas('formFields', $formFields); - $this->addViewDatas('formFilters', $formFilters); - $this->addViewDatas('formRules', $this->service->getFormService()->getFormRules($action, array_keys($formFields))); - $this->addViewDatas('formOptions', $this->service->getFormService()->getFormOptions($action, $formFilters)); } abstract protected function create_form_process(string $action): void; final public function create_form(): string @@ -250,8 +243,6 @@ abstract class AdminController extends CommonController $this->addViewDatas('entities', $this->index_process()); helper(['form']); $this->addViewDatas('formDatas', $this->request->getGet()); - $this->addViewDatas('index_batchjobFields', $this->service->getFormService()->getBatchjobFields($action)); - $this->addViewDatas('index_batchjobButtions', $this->service->getFormService()->getBatchjobButtons($action)); } catch (\Exception $e) { session()->setFlashdata('message', $e->getMessage()); } diff --git a/app/Controllers/Admin/CollectorController.php b/app/Controllers/Admin/CollectorController.php index 8b499ed..1a75103 100644 --- a/app/Controllers/Admin/CollectorController.php +++ b/app/Controllers/Admin/CollectorController.php @@ -19,6 +19,35 @@ class CollectorController extends AdminController } $this->addActionPaths($this::PATH); } + protected function action_init_process(string $action): void + { + $fields = ['trafficinfo_uid', 'in', 'out', 'raw_in', 'raw_out',]; + $filters = ['trafficinfo_uid']; + parent::action_init_process($action); + switch ($action) { + case 'create': + case 'create_form': + case 'modify': + case 'modify_form': + break; + case 'view': + $fields = [...$fields, 'created_at']; + break; + case 'index': + $fields = [...$fields, 'created_at']; + $this->addViewDatas('index_batchjobFields', $this->service->getFormService()->getBatchjobFields($filters)); + $this->addViewDatas('index_batchjobButtions', $this->service->getFormService()->getBatchjobButtons()); + break; + default: + throw new \Exception("지원하지 않는 action입니다.({$action})"); + // break; + } + $this->addViewDatas('helper', $this->service->getHelper()); + $this->addViewDatas('formFields', $this->service->getFormService()->getFormFields($action, $fields)); + $this->addViewDatas('formFilters', $this->service->getFormService()->getFormFilters($action, $filters)); + $this->addViewDatas('formRules', $this->service->getFormService()->getFormRules($action, $fields)); + $this->addViewDatas('formOptions', $this->service->getFormService()->getFormOptions($action, $filters)); + } //Action작업관련 protected function create_form_process(string $action): void { diff --git a/app/Controllers/Admin/MylogController.php b/app/Controllers/Admin/MylogController.php index 8471321..1fdcd3e 100644 --- a/app/Controllers/Admin/MylogController.php +++ b/app/Controllers/Admin/MylogController.php @@ -19,7 +19,35 @@ class MylogController extends AdminController } $this->addActionPaths($this::PATH); } - + protected function action_init_process(string $action): void + { + $fields = ['title', 'content']; + $filters = []; + parent::action_init_process($action); + switch ($action) { + case 'create': + case 'create_form': + case 'modify': + case 'modify_form': + break; + case 'view': + $fields = [...$fields, 'created_at']; + break; + case 'index': + $fields = [...$fields, 'created_at']; + $this->addViewDatas('index_batchjobFields', $this->service->getFormService()->getBatchjobFields($filters)); + $this->addViewDatas('index_batchjobButtions', $this->service->getFormService()->getBatchjobButtons()); + break; + default: + throw new \Exception("지원하지 않는 action입니다.({$action})"); + // break; + } + $this->addViewDatas('helper', $this->service->getHelper()); + $this->addViewDatas('formFields', $this->service->getFormService()->getFormFields($action, $fields)); + $this->addViewDatas('formFilters', $this->service->getFormService()->getFormFilters($action, $filters)); + $this->addViewDatas('formRules', $this->service->getFormService()->getFormRules($action, $fields)); + $this->addViewDatas('formOptions', $this->service->getFormService()->getFormOptions($action, $filters)); + } //Action작업관련 protected function create_form_process(string $action): void { diff --git a/app/Controllers/Admin/TrafficController.php b/app/Controllers/Admin/TrafficController.php index 4bf4e56..bc90517 100644 --- a/app/Controllers/Admin/TrafficController.php +++ b/app/Controllers/Admin/TrafficController.php @@ -19,6 +19,35 @@ class TrafficController extends AdminController } $this->addActionPaths($this::PATH); } + protected function action_init_process(string $action): void + { + $fields = ['client', 'switch', 'ip', 'interface', 'status']; + $filters = ['status']; + parent::action_init_process($action); + switch ($action) { + case 'create': + case 'create_form': + case 'modify': + case 'modify_form': + break; + case 'view': + $fields = [...$fields, 'created_at']; + break; + case 'index': + $fields = [...$fields, 'created_at']; + $this->addViewDatas('index_batchjobFields', $this->service->getFormService()->getBatchjobFields($filters)); + $this->addViewDatas('index_batchjobButtions', $this->service->getFormService()->getBatchjobButtons()); + break; + default: + throw new \Exception("지원하지 않는 action입니다.({$action})"); + // break; + } + $this->addViewDatas('helper', $this->service->getHelper()); + $this->addViewDatas('formFields', $this->service->getFormService()->getFormFields($action, $fields)); + $this->addViewDatas('formFilters', $this->service->getFormService()->getFormFilters($action, $filters)); + $this->addViewDatas('formRules', $this->service->getFormService()->getFormRules($action, $fields)); + $this->addViewDatas('formOptions', $this->service->getFormService()->getFormOptions($action, $filters)); + } //Action작업관련 protected function create_form_process(string $action): void { diff --git a/app/Controllers/Admin/UserController.php b/app/Controllers/Admin/UserController.php index 1adc874..4205904 100644 --- a/app/Controllers/Admin/UserController.php +++ b/app/Controllers/Admin/UserController.php @@ -19,16 +19,45 @@ class UserController extends AdminController } $this->addActionPaths($this::PATH); } - protected function getFormRule(string $action, string $field, string $rule): array + protected function getFormRule_process(string $action, string $field, string $rule): array { switch ($field) { case 'role': $field = "{$field}.*"; break; } - return parent::getFormRule($action, $field, $rule); + return parent::getFormRule_process($action, $field, $rule); } //Action작업관련 + protected function action_init_process(string $action): void + { + parent::action_init_process($action); + $fields = ['id', 'passwd', 'confirmpassword', 'name', 'email', 'mobile', 'role']; + $filters = ['role', 'status']; + switch ($action) { + case 'create': + case 'create_form': + case 'modify': + case 'modify_form': + break; + case 'view': + $fields = ['id', 'name', 'email', 'mobile', 'role', 'status', 'created_at']; + break; + case 'index': + $fields = ['id', 'name', 'email', 'mobile', 'role', 'status', 'created_at']; + $this->addViewDatas('index_batchjobFields', $this->service->getFormService()->getBatchjobFields($filters)); + $this->addViewDatas('index_batchjobButtions', $this->service->getFormService()->getBatchjobButtons()); + break; + default: + throw new \Exception("지원하지 않는 action입니다.({$action})"); + // break; + } + $this->addViewDatas('helper', $this->service->getHelper()); + $this->addViewDatas('formFields', $this->service->getFormService()->getFormFields($action, $fields)); + $this->addViewDatas('formFilters', $this->service->getFormService()->getFormFilters($action, $filters)); + $this->addViewDatas('formRules', $this->service->getFormService()->getFormRules($action, $fields)); + $this->addViewDatas('formOptions', $this->service->getFormService()->getFormOptions($action, $filters)); + } protected function create_form_process(string $action): void { //Form Default값 설정 diff --git a/app/Controllers/Auth/AuthController.php b/app/Controllers/Auth/AuthController.php index 096cbd9..3f87f43 100644 --- a/app/Controllers/Auth/AuthController.php +++ b/app/Controllers/Auth/AuthController.php @@ -19,9 +19,6 @@ abstract class AuthController extends CommonController parent::initController($request, $response, $logger); $this->addActionPaths(self::PATH); } - abstract protected function login_process(): UserEntity; - abstract protected function logout_process(): void; - //로그인화면 final public function login_form(): string|RedirectResponse { @@ -36,6 +33,7 @@ abstract class AuthController extends CommonController return $this->action_render_process($this->getActionPaths(), $action, $this->getViewDatas()); } //로그인처리 + abstract protected function login_process(): UserEntity; final public function login(): RedirectResponse { $action = __FUNCTION__; @@ -55,6 +53,7 @@ abstract class AuthController extends CommonController } } //로그아웃 + abstract protected function logout_process(): void; final public function logout(): RedirectResponse { try { diff --git a/app/Controllers/Auth/GoogleController.php b/app/Controllers/Auth/GoogleController.php index cf6c45e..1804fe8 100644 --- a/app/Controllers/Auth/GoogleController.php +++ b/app/Controllers/Auth/GoogleController.php @@ -19,6 +19,25 @@ class GoogleController extends AuthController } $this->addActionPaths(self::PATH); } + protected function action_init_process(string $action): void + { + parent::action_init_process($action); + $fields = ['access_code']; + $filters = []; + switch ($action) { + case 'login': + case 'login_form': + break; + default: + throw new \Exception("지원하지 않는 action입니다.({$action})"); + // break; + } + $this->addViewDatas('helper', $this->service->getHelper()); + $this->addViewDatas('formFields', $this->service->getFormService()->getFormFields($action, $fields)); + $this->addViewDatas('formFilters', $this->service->getFormService()->getFormFilters($action, $filters)); + $this->addViewDatas('formRules', $this->service->getFormService()->getFormRules($action, $fields)); + $this->addViewDatas('formOptions', $this->service->getFormService()->getFormOptions($action, $filters)); + } public function login_form_process(): void { //구글 로그인 BUTTON용 diff --git a/app/Controllers/Auth/LocalController.php b/app/Controllers/Auth/LocalController.php index 5e9ad34..34ae40d 100644 --- a/app/Controllers/Auth/LocalController.php +++ b/app/Controllers/Auth/LocalController.php @@ -24,6 +24,25 @@ class LocalController extends AuthController } $this->addActionPaths(self::PATH); } + protected function action_init_process(string $action): void + { + parent::action_init_process($action); + $fields = ['id', 'passwd']; + $filters = []; + switch ($action) { + case 'login': + case 'login_form': + break; + default: + throw new \Exception("지원하지 않는 action입니다.({$action})"); + // break; + } + $this->addViewDatas('helper', $this->service->getHelper()); + $this->addViewDatas('formFields', $this->service->getFormService()->getFormFields($action, $fields)); + $this->addViewDatas('formFilters', $this->service->getFormService()->getFormFilters($action, $filters)); + $this->addViewDatas('formRules', $this->service->getFormService()->getFormRules($action, $fields)); + $this->addViewDatas('formOptions', $this->service->getFormService()->getFormOptions($action, $filters)); + } //로그인처리 protected function login_process(): UserEntity { diff --git a/app/Controllers/CommonController.php b/app/Controllers/CommonController.php index 766a3c9..2412f6f 100644 --- a/app/Controllers/CommonController.php +++ b/app/Controllers/CommonController.php @@ -24,19 +24,19 @@ abstract class CommonController extends BaseController { return service('myauth')->getAuthContext(); } - final public function addActionPaths(string $path) + final protected function addActionPaths(string $path) { $this->_action_paths[] = $path; } - final public function getActionPaths($isArray = true, $delimeter = DIRECTORY_SEPARATOR): array|string + final protected function getActionPaths($isArray = true, $delimeter = DIRECTORY_SEPARATOR): array|string { return $isArray ? $this->_action_paths : implode($delimeter, $this->_action_paths); } - final public function addViewDatas(string $key, mixed $value) + final protected function addViewDatas(string $key, mixed $value) { $this->_viewDatas[$key] = $value; } - final public function getViewDatas(?string $key = null): mixed + final protected function getViewDatas(?string $key = null): mixed { if ($key === null) { return $this->_viewDatas; @@ -44,11 +44,12 @@ abstract class CommonController extends BaseController return $this->_viewDatas[$key] ?? null; } //공통 필수기능 - protected function doValidation(string $action): array + final protected function doValidation(string $action): array { $dynamicRules = []; foreach ($this->service->getFormRules($action) as $field => $rule) { - list($field, $rule) = $this->getFormRule($action, $field, $rule); + //field별 추가 커스텀 룰 적용 + list($field, $rule) = $this->getFormRule_process($action, $field, $rule); $dynamicRules[$field] = $rule; } //변경할 값 확인 : Upload된 파일 검증시 $this->request->getPOST()보다 먼처 체크필요 @@ -60,7 +61,9 @@ abstract class CommonController extends BaseController } return $this->validator->getValidated(); } - protected function getFormRule(string $action, string $field, string $rule): array + //필수함수 + //사용자정의 함수 + protected function getFormRule_process(string $action, string $field, string $rule): array { switch ($field) { default: diff --git a/app/Forms/Auth/GoogleForm.php b/app/Forms/Auth/GoogleForm.php index f584679..a263ed1 100644 --- a/app/Forms/Auth/GoogleForm.php +++ b/app/Forms/Auth/GoogleForm.php @@ -11,18 +11,6 @@ class GoogleForm extends CommonForm parent::__construct(); } - public function getFormFields(string $action, ?array $fields = null): array - { - return $fields ?? ["access_code"]; - } - public function getFormFilters(string $action, ?array $fields = null): array - { - return $fields ?? []; - } - public function getBatchjobButtons(string $action = 'index', ?array $buttions = null): array - { - return $buttions ?? []; - } public function getFormRule(string $action, string $field, array $rules = []): array { $rules = parent::getFormRule($action, $field, $rules); diff --git a/app/Forms/Auth/LocalForm.php b/app/Forms/Auth/LocalForm.php index 338b545..536e3d4 100644 --- a/app/Forms/Auth/LocalForm.php +++ b/app/Forms/Auth/LocalForm.php @@ -11,18 +11,6 @@ class LocalForm extends CommonForm parent::__construct(); } - public function getFormFields(string $action, ?array $fields = null): array - { - return $fields ?? ["id", "passwd"]; - } - public function getFormFilters(string $action, ?array $fields = null): array - { - return $fields ?? []; - } - public function getBatchjobButtons(string $action = 'index', ?array $buttions = null): array - { - return $buttions ?? []; - } public function getFormRule(string $action, string $field, array $rules = []): array { $rules = parent::getFormRule($action, $field, $rules); diff --git a/app/Forms/CollectorForm.php b/app/Forms/CollectorForm.php index 6f8705a..987b302 100644 --- a/app/Forms/CollectorForm.php +++ b/app/Forms/CollectorForm.php @@ -11,60 +11,6 @@ class CollectorForm extends CommonForm parent::__construct(); } - public function getFormFields(string $action, array $fields = []): array - { - switch ($action) { - case 'create': - case 'create_form': - $fields = [ - ...$fields, - 'trafficinfo_uid', - 'in', - 'out', - 'raw_in', - 'raw_out', - ]; - break; - case 'modify': - case 'modify_form': - $fields = [ - ...$fields, - 'trafficinfo_uid', - 'in', - 'out', - 'raw_in', - 'raw_out', - ]; - break; - case 'view': - $fields = [ - ...$fields, - 'trafficinfo_uid', - 'in', - 'out', - 'raw_in', - 'raw_out', - 'created_at', - ]; - break; - default: - $fields = [ - ...$fields, - 'trafficinfo_uid', - 'in', - 'out', - 'raw_in', - 'raw_out', - 'created_at', - ]; - break; - } - return parent::getFormFields($action, $fields); - } - public function getFormFilters(string $action, array $fields = []): array - { - return parent::getFormFilters($action, [...$fields, 'trafficinfo_uid']); - } public function getFormRule(string $action, string $field, array $rules = []): array { switch ($field) { diff --git a/app/Forms/CommonForm.php b/app/Forms/CommonForm.php index 1b4795e..f09771d 100644 --- a/app/Forms/CommonForm.php +++ b/app/Forms/CommonForm.php @@ -20,6 +20,17 @@ abstract class CommonForm } return $this->_attributes[$key]; } + final public function getFormFields(string $action, array $fields, $tempFormFields = []): array + { + foreach ($fields as $field) { + $tempFormFields = $this->getFormField($action, $field, $tempFormFields); + } + return $tempFormFields; + } + final public function getFormFilters(string $action, array $fields = []): array + { + return $fields; + } final public function getFormRules(string $action, array $fields, array $rules = []): array { foreach ($fields as $field) { @@ -34,30 +45,27 @@ abstract class CommonForm } return $options; } + final public function getBatchjobFields(array $fields = []): array + { + return $fields; + } + final public function getBatchjobButtons(array $buttions = [ + 'batchjob' => '일괄 처리', + 'batchjob_delete' => '일괄 삭제', + ]): array + { + return $buttions; + } //필수함수 - public function getFormFields(string $action, array $fields = []): array + //사용자정의 함수 + public function getFormField(string $action, string $field, array $tempFormFields = []): array { - $temps = []; - foreach ($fields as $field) { - $temps[$field] = lang("{$this->getAttribute('class_path')}.label.{$field}"); + switch ($field) { + default: + $tempFormFields[$field] = lang("{$this->getAttribute('class_path')}.label.{$field}"); + break; } - return $temps; - } - public function getFormFilters(string $action, array $fields = []): array - { - return $fields; - } - public function getBatchjobFields(string $action, array $fields = []): array - { - return $fields; - } - public function getBatchjobButtons(string $action, array $buttions = []): array - { - return [ - ...$buttions, - 'batchjob' => '일괄 처리', - 'batchjob_delete' => '일괄 삭제', - ]; + return $tempFormFields; } public function getFormRule(string $action, string $field, array $rules = []): array { diff --git a/app/Forms/MylogForm.php b/app/Forms/MylogForm.php index acaef0e..3264905 100644 --- a/app/Forms/MylogForm.php +++ b/app/Forms/MylogForm.php @@ -11,43 +11,6 @@ class MylogForm extends CommonForm parent::__construct(); } - public function getFormFields(string $action, array $fields = []): array - { - switch ($action) { - case 'create': - case 'create_form': - $fields = [ - ...$fields, - 'title', - 'content', - ]; - break; - case 'modify': - case 'modify_form': - $fields = [ - ...$fields, - 'title', - 'content', - ]; - break; - case 'view': - $fields = [ - ...$fields, - 'title', - 'content', - 'created_at', - ]; - break; - default: - $fields = [ - ...$fields, - 'title', - 'created_at', - ]; - break; - } - return parent::getFormFields($action, $fields); - } public function getFormRule(string $action, string $field, array $rules = []): array { switch ($field) { diff --git a/app/Forms/TrafficForm.php b/app/Forms/TrafficForm.php index 9e34671..2baba9e 100644 --- a/app/Forms/TrafficForm.php +++ b/app/Forms/TrafficForm.php @@ -10,61 +10,6 @@ class TrafficForm extends CommonForm { parent::__construct(); } - - public function getFormFields(string $action, array $fields = []): array - { - switch ($action) { - case 'create': - case 'create_form': - $fields = [ - ...$fields, - 'client', - 'switch', - 'ip', - 'interface', - 'status', - ]; - break; - case 'modify': - case 'modify_form': - $fields = [ - ...$fields, - 'client', - 'switch', - 'ip', - 'interface', - 'status', - ]; - break; - case 'view': - $fields = [ - ...$fields, - 'client', - 'switch', - 'ip', - 'interface', - 'status', - 'created_at', - ]; - break; - default: - $fields = [ - ...$fields, - 'client', - 'switch', - 'ip', - 'interface', - 'status', - 'created_at', - ]; - break; - } - return parent::getFormFields($action, $fields); - } - public function getFormFilters(string $action, array $fields = []): array - { - return parent::getFormFilters($action, [...$fields, 'status']); - } public function getFormRule(string $action, string $field, array $rules = []): array { switch ($field) { diff --git a/app/Forms/UserForm.php b/app/Forms/UserForm.php index e3d63b9..c8af692 100644 --- a/app/Forms/UserForm.php +++ b/app/Forms/UserForm.php @@ -11,68 +11,14 @@ class UserForm extends CommonForm parent::__construct(); } - public function getFormFields(string $action, array $fields = []): array + public function getFormField(string $action, string $field, array $tempFormFields = []): array { - switch ($action) { - case 'create': - case 'create_form': - $fields = [ - ...$fields, - 'id', - 'passwd', - 'confirmpassword', - 'name', - 'email', - 'mobile', - 'role', - ]; - break; - case 'modify': - case 'modify_form': - $fields = [ - ...$fields, - 'id', - 'passwd', - 'confirmpassword', - 'name', - 'email', - 'mobile', - 'role', - 'status', - ]; - break; - case 'view': - $fields = [ - ...$fields, - 'id', - 'name', - 'email', - 'mobile', - 'role', - 'status', - ]; - break; + switch ($field) { default: - $fields = [ - ...$fields, - 'id', - 'name', - 'email', - 'mobile', - 'role', - 'status' - ]; + $tempFormFields = parent::getFormField($action, $field, $tempFormFields); break; } - return parent::getFormFields($action, $fields); - } - public function getFormFilters(string $action, array $fields = []): array - { - return parent::getFormFilters($action, [...$fields, 'role', 'status']); - } - public function getBatchjobFields(string $action, array $fields = []): array - { - return parent::getBatchjobFields($action, [...$fields, 'status']); + return $tempFormFields; } public function getFormRule(string $action, string $field, array $rules = []): array { diff --git a/app/Services/Auth/AuthService.php b/app/Services/Auth/AuthService.php index 79e656f..e7d7f98 100644 --- a/app/Services/Auth/AuthService.php +++ b/app/Services/Auth/AuthService.php @@ -105,6 +105,7 @@ abstract class AuthService public function login(AuthDTO $dto): UserEntity { $formDatas = (array)$dto; + // dd($formDatas); //입력값 검증 $validation = service('validation')->setRules($this->getValidationRules(__FUNCTION__)); if (!$validation->run($formDatas)) {