diff --git a/app/.htaccess b/app/.htaccess index 499b73a..97c65d2 100644 --- a/app/.htaccess +++ b/app/.htaccess @@ -3,8 +3,4 @@ Deny from all - - RewriteEngine On - RewriteCond %{REQUEST_FILENAME} !-f - RewriteCond %{REQUEST_FILENAME} !-d - RewriteRule ^(.*)$ index.php/$1 [L] \ No newline at end of file + \ No newline at end of file diff --git a/app/Config/Constants.php b/app/Config/Constants.php index dd69076..b9ebf79 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -246,7 +246,6 @@ define('LAYOUTS', [ '', ], 'stylesheets' => [ - '', '', '', '', @@ -260,7 +259,7 @@ define('LAYOUTS', [ '', '', '', - '', + '', ], ], 'admin' => [ diff --git a/app/Config/Routes.php b/app/Config/Routes.php index ca2e4b7..9de8a33 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -12,9 +12,9 @@ $routes->addPlaceholder('uuid', '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4} //1. app/Filters/AuthFilter.php //2. Config/Filters.php -> $aliases = ['authFilter' => AuthFilter::class] $routes->get('/', 'Home::index'); -$routes->group('/user', function ($routes) { - $routes->get('login', 'UserController::create_form'); - $routes->post('login', 'UserController::create'); +$routes->group('/user', function ($routes) { + $routes->get('login', 'UserController::login_form'); + $routes->post('login', 'UserController::login'); $routes->get('logout', 'UserController::logout', ['filter' => 'authFilter:user']); }); $routes->group('cli', ['namespace' => 'App\CLI'], function ($routes) { @@ -24,7 +24,7 @@ $routes->group('cli', ['namespace' => 'App\CLI'], function ($routes) { }); $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'authFilter:manager'], function ($routes) { $routes->get('/', 'Home::index'); - $routes->group('user', function ($routes) { + $routes->group('user', function ($routes) { $routes->get('/', 'UserController::index'); $routes->get('create', 'UserController::create_form', ['filter' => 'authFilter:master']); $routes->post('create', 'UserController::create', ['filter' => 'authFilter:master']); diff --git a/app/Controllers/UserController.php b/app/Controllers/UserController.php index 743e462..ca23582 100644 --- a/app/Controllers/UserController.php +++ b/app/Controllers/UserController.php @@ -11,6 +11,7 @@ use App\Models\UserModel; use App\Libraries\MyAuth\LocalAuth; use App\Libraries\MyAuth\GoogleAuth; +use App\Helpers\UserHelper; class UserController extends FrontController { @@ -20,9 +21,8 @@ class UserController extends FrontController parent::initController($request, $response, $logger); $this->class_name .= "User"; $this->class_path .= $this->class_name; - $this->view_path = strtolower($this->view_root . $this->class_name); - $this->title = lang("{$this->class_path}.title"); - helper($this->class_path); + $this->title = lang("{$this->class_path}.title"); + $this->helper = new UserHelper(); } protected function getModel(): UserModel { @@ -71,18 +71,30 @@ class UserController extends FrontController } private function init(string $action): void { - $this->action = $action; - $this->fields = ['id', 'passwd']; - $this->field_rules = $this->getModel()->getFieldRules($this->action, $this->fields); + $this->action = $action; + $this->fields = ['id', 'passwd']; + $this->field_rules = $this->getModel()->getFieldRules($this->action, $this->fields); } //로그인화면 - public function create_form(): RedirectResponse|string + public function login_form(): RedirectResponse|string { - $this->init('create'); - return $this->create_form_procedure(); + $this->init('login'); + try { + helper(['form']); + $this->create_form_process(); + $this->session->keepFlashdata(SESSION_NAMES['RETURN_URL']); + $this->forms = ['attributes' => ['method' => "post",], 'hiddens' => []]; + return view( + $this->view_path . "login", + data: ['viewDatas' => $this->getViewDatas()] + ); + } catch (\Exception $e) { + log_message("error", $e->getMessage()); + return redirect()->to($this->session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/")->with(SESSION_NAMES['RETURN_MSG'], $e->getMessage()); + } } //로그인처리 - public function create(): RedirectResponse|string + public function login(): RedirectResponse|string { $this->init('login'); //Transaction Start diff --git a/app/Helpers/Cloudflare/AccountHelper.php b/app/Helpers/Cloudflare/AccountHelper.php index 5476603..74769f4 100644 --- a/app/Helpers/Cloudflare/AccountHelper.php +++ b/app/Helpers/Cloudflare/AccountHelper.php @@ -30,10 +30,10 @@ class AccountHelper extends CommonHelper case AccountModel::TITLE: $form = form_input($field, $value, [ "placeholder" => "예)test@exmaple.com", - "style" => - "width:100%; ::placeholder{color:silver; opacity: 1;}", - "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "style" => + "width:100%; ::placeholder{color:silver; opacity: 1;}", + "class" => "form-control", + "required" => "" ]); break; case 'type': @@ -61,7 +61,7 @@ class AccountHelper extends CommonHelper current_url() . "/reload/" . $viewDatas['entity']->getParent(), ICONS["RELOAD"], [ - "class" => "btn btn-sm btn-primary btn-circle", + "class" => "btn btn-sm btn-primary btn-circle", "target" => "_self", ] ) . " " . @@ -75,7 +75,7 @@ class AccountHelper extends CommonHelper base_url() . $viewDatas['uri_path'] . 'zone/reload/' . $viewDatas['entity']->getPK(), ICONS["RELOAD"], [ - "class" => "btn btn-sm btn-primary btn-circle", + "class" => "btn btn-sm btn-primary btn-circle", "target" => "_self", ] ) . " " . @@ -83,7 +83,7 @@ class AccountHelper extends CommonHelper base_url() . $viewDatas['uri_path'] . "zone?account_uid=" . $viewDatas['entity']->getPK(), ICONS["FLAG"], [ - "class" => "btn btn-sm btn-primary btn-circle", + "class" => "btn btn-sm btn-primary btn-circle", "target" => "_self", ] ) . " {$value}"; diff --git a/app/Helpers/Cloudflare/AuthHelper.php b/app/Helpers/Cloudflare/AuthHelper.php index dc13521..7a76847 100644 --- a/app/Helpers/Cloudflare/AuthHelper.php +++ b/app/Helpers/Cloudflare/AuthHelper.php @@ -20,7 +20,7 @@ class AuthHelper extends CommonHelper "placeholder" => "예)test@example.com", "style" => "width:100%; ::placeholder{color:silver; opacity: 1;}", "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "required" => "" ]); break; default: diff --git a/app/Helpers/Cloudflare/RecordHelper.php b/app/Helpers/Cloudflare/RecordHelper.php index 939aaeb..c4b9664 100644 --- a/app/Helpers/Cloudflare/RecordHelper.php +++ b/app/Helpers/Cloudflare/RecordHelper.php @@ -35,26 +35,26 @@ class RecordHelper extends CommonHelper case RecordModel::TITLE: //host $form = form_input($field, $value, [ "placeholder" => "예)www.example.com", - "style" => - "width:200px; ::placeholder{color:silver; opacity: 1;}", - "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "style" => + "width:200px; ::placeholder{color:silver; opacity: 1;}", + "class" => "form-control", + "required" => "" ]); break; case 'hosts': $form = form_textarea($field, html_entity_decode($value), [ - 'rows' => '5', + 'rows' => '5', "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "required" => "" ]); break; case 'content': $form = form_input($field, $value, [ "placeholder" => "예)123.123.123.123", - "style" => - "width:200px; ::placeholder{color:silver; opacity: 1;}", - "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "style" => + "width:200px; ::placeholder{color:silver; opacity: 1;}", + "class" => "form-control", + "required" => "" ]); break; case "type": @@ -85,7 +85,7 @@ class RecordHelper extends CommonHelper current_url() . "/reload/" . $viewDatas['entity']->getParent(), ICONS["RELOAD"], [ - "class" => "btn btn-sm btn-primary btn-circle", + "class" => "btn btn-sm btn-primary btn-circle", "target" => "_self", ] ) . " " . "{$viewDatas['field_options'][$field][$value]}"; diff --git a/app/Helpers/Cloudflare/ZoneHelper.php b/app/Helpers/Cloudflare/ZoneHelper.php index 077c985..ef9bb1f 100644 --- a/app/Helpers/Cloudflare/ZoneHelper.php +++ b/app/Helpers/Cloudflare/ZoneHelper.php @@ -31,32 +31,32 @@ class ZoneHelper extends CommonHelper $form = form_input($field, $value, [ "placeholder" => "예)exmaple.com", "style" => - "width:100%; ::placeholder{color:silver; opacity: 1;}", + "width:100%; ::placeholder{color:silver; opacity: 1;}", "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "required" => "" ]); break; case 'domains': $form = form_textarea($field, $value, [ 'rows' => '5', "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "required" => "" ]); break; case 'hosts': $form = form_textarea($field, $value == DEFAULTS['EMPTY'] ? "@\n*\nm\nwww" : $value, [ 'rows' => '5', "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "required" => "" ]); break; case 'content': $form = form_input($field, $value, [ "placeholder" => "예)123.123.123.123", "style" => - "width:200px; ::placeholder{color:silver; opacity: 1;}", + "width:200px; ::placeholder{color:silver; opacity: 1;}", "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "required" => "" ]); break; case "development_mode": diff --git a/app/Helpers/MapurlHelper.php b/app/Helpers/MapurlHelper.php index ee7d132..f2bf327 100644 --- a/app/Helpers/MapurlHelper.php +++ b/app/Helpers/MapurlHelper.php @@ -19,16 +19,16 @@ class MapurlHelper extends CommonHelper "placeholder" => "예)http://old.example.com", "style" => "width:100%; ::placeholder{color:silver; opacity: 1;}", "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "required" => "" ]); break; case 'newurl': $form = form_input($field, $value, [ "placeholder" => "예)https://new.example.com", "style" => - "width:100%; ::placeholder{color:silver; opacity: 1;}", + "width:100%; ::placeholder{color:silver; opacity: 1;}", "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "required" => "" ]); break; default: diff --git a/app/Helpers/UserHelper.php b/app/Helpers/UserHelper.php index 86355d7..2dfacfb 100644 --- a/app/Helpers/UserHelper.php +++ b/app/Helpers/UserHelper.php @@ -14,12 +14,36 @@ class UserHelper extends CommonHelper { $value = $value ?: DEFAULTS['EMPTY']; switch ($field) { + case 'id': case UserModel::TITLE: $form = form_input($field, $value, [ "placeholder" => "예)", "style" => "width:100%; ::placeholder{color:silver; opacity: 1;}", "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" + "required" => "" + ]); + break; + case 'passwd': + case 'confirmpassword': + $form = form_password($field, "", [ + "style" => "width:100%;", + "class" => "form-control", + "required" => "" + ]); + break; + case 'email': + $form = form_input($field, $value, [ + "placeholder" => "예)test@example.com", + "style" => "width:100%; ::placeholder{color:silver; opacity: 1;}", + "class" => "form-control", + "required" => "" + ]); + break; + case 'mobile': + $form = form_input($field, $value, [ + "placeholder" => "예)010-0010-0010", + "style" => "width:100%; ::placeholder{color:silver; opacity: 1;}", + "class" => "form-control" ]); break; case 'role': @@ -42,29 +66,6 @@ class UserHelper extends CommonHelper ); } break; - case 'passwd': - $form = form_password($field, "", [ - "style" => "width:100%;", - "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" - ]); - break; - case 'email': - $form = form_input($field, $value, [ - "placeholder" => "예)test@example.com", - "style" => "width:100%; ::placeholder{color:silver; opacity: 1;}", - "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" - ]); - break; - case 'mobile': - $form = form_input($field, $value, [ - "placeholder" => "예)010-0010-0010", - "style" => "width:100%; ::placeholder{color:silver; opacity: 1;}", - "class" => "form-control", - (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? "required" : "" - ]); - break; default: $form = parent::getFieldForm($field, $value, $viewDatas, $extras); break; diff --git a/app/Views/front/user/create.php b/app/Views/front/login.php similarity index 92% rename from app/Views/front/user/create.php rename to app/Views/front/login.php index 0ef5810..d37bc8b 100644 --- a/app/Views/front/user/create.php +++ b/app/Views/front/login.php @@ -1,6 +1,6 @@ extend("layouts/{$viewDatas['layout']}/{$viewDatas['action_form']}") ?> section('content') ?> - +

로그인

diff --git a/public/css/front/login.css b/public/css/front/login.css new file mode 100644 index 0000000..2001247 --- /dev/null +++ b/public/css/front/login.css @@ -0,0 +1,17 @@ +.login-wrapper { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; +} + +.login-container { + width: 400px; + height: 400px; + overflow-y: auto; + /* 추가된 스타일 */ + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} \ No newline at end of file