diff --git a/app/Config/Constants.php b/app/Config/Constants.php index 6be7234..5a92cb9 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -138,6 +138,10 @@ define('LAYOUTS', [ define('LOGINS', [ 'ISLOGIN' => getenv('login.islogin.name') ? getenv('login.islogin.name') : "isLoggedIn", 'RETURN_URL' => getenv('login.return_url.name') ? getenv('login.return_url.name') : "return_url", + 'USER' => [ + 'NAME' => getenv('login.user.name') ? getenv('login.user.name') : "user", + 'FIELDS' => ['PK' => 'uid', 'TITLE' => 'name', 'ROLE' => 'role'], + ] ]); //인증 관련 diff --git a/app/Filters/AuthFilter.php b/app/Filters/AuthFilter.php index 7f3697b..56b320a 100644 --- a/app/Filters/AuthFilter.php +++ b/app/Filters/AuthFilter.php @@ -32,13 +32,13 @@ class AuthFilter implements FilterInterface return redirect()->to('/login')->with('error', $error); } - if (!in_array(session()->get('role'), $arguments)) { + if (!in_array(session()->get(LOGINS['USER']['NAME'])['role'], $arguments)) { return redirect()->to('/login')->with( 'error', sprintf( "%s 회원님은 %s로서 접속에 필요한 권한[%s]이 없습니다. ", - session()->get('name'), - session()->get('role'), + session()->get(LOGINS['USER']['NAME'])[LOGINS['USER']['FIELDS']['TITLE']], + session()->get(LOGINS['USER']['NAME'])[LOGINS['USER']['FIELDS']['ROLE']], implode(",", $arguments) ) ); diff --git a/app/Libraries/Adapter/Auth/Adapter.php b/app/Libraries/Adapter/Auth/Adapter.php index 7653a67..8cd8e9f 100644 --- a/app/Libraries/Adapter/Auth/Adapter.php +++ b/app/Libraries/Adapter/Auth/Adapter.php @@ -44,22 +44,17 @@ abstract class Adapter return $this->_userSNSModel; } - protected function setSessionInfo(UserEntity $entity, array $authrizedDatas = array()): void + protected function setUserSession(UserEntity $entity): void { - $authrizedDatas[LOGINS['ISLOGIN']] = true; - $authrizedDatas['uid'] = $entity->getPrimaryKey(); - $authrizedDatas['name'] = $entity->getTitle(); - $authrizedDatas['email'] = $entity->email; - $authrizedDatas['role'] = $entity->role; - session()->set($authrizedDatas); + session()->set(LOGINS['ISLOGIN'], true); + $datas = array(); + foreach (LOGINS['USER']['FIELDS'] as $field) { + $datas[$field] = $entity->$field; + } + session()->set(array(LOGINS['USER']['NAME'] => $datas)); } - public function getSessionInfo(array $authrizedDatas = array()): array + protected function getUserSession(): array { - $authrizedDatas[LOGINS['ISLOGIN']] = session()->get(LOGINS['ISLOGIN']); - $authrizedDatas['uid'] = session()->get('uid'); - $authrizedDatas['name'] = session()->get('name'); - $authrizedDatas['email'] = session()->get('email'); - $authrizedDatas['role'] = session()->get('role'); - return $authrizedDatas; + return session()->get(LOGINS['USER']['NAME']); } } diff --git a/app/Libraries/Adapter/Auth/GoogleAdapter.php b/app/Libraries/Adapter/Auth/GoogleAdapter.php index a021e7c..216d22f 100644 --- a/app/Libraries/Adapter/Auth/GoogleAdapter.php +++ b/app/Libraries/Adapter/Auth/GoogleAdapter.php @@ -114,7 +114,7 @@ class GoogleAdapter extends Adapter //인증된 사용자 정보를 가져온후 세션 정보 처리 $entity = $this->getUserModel()->getEntity($snsEntity->user_id); //Session에 인증정보 설정 - $this->setSessionInfo($entity); + $this->setUserSession($entity); return $entity; } catch (\Exception $e) { throw new \Exception("관리자에게 문의하시기 바랍니다.
{$e->getMessage()}"); diff --git a/app/Libraries/Adapter/Auth/LocalAdapter.php b/app/Libraries/Adapter/Auth/LocalAdapter.php index 4c25cc8..5334fa4 100644 --- a/app/Libraries/Adapter/Auth/LocalAdapter.php +++ b/app/Libraries/Adapter/Auth/LocalAdapter.php @@ -29,7 +29,7 @@ class LocalAdapter extends Adapter throw new \Exception("암호가 맞지않습니다."); } //Session에 인증정보 설정 - $this->setSessionInfo($entity); + $this->setUserSession($entity); return $entity; } } diff --git a/app/Models/LoggerModel.php b/app/Models/LoggerModel.php index 88cba00..3d6c4c4 100644 --- a/app/Models/LoggerModel.php +++ b/app/Models/LoggerModel.php @@ -31,7 +31,7 @@ class LoggerModel extends CommonModel public function create(array $datas): LoggerEntity { $entity = new LoggerEntity($datas); - $entity->user_uid = session()->get('uid'); + $entity->user_uid = session()->get(LOGINS['USER']['NAME'])[LOGINS['USER']['FIELDS']['PK']]; return parent::create_process($entity); } public function modify(LoggerEntity $entity, array $datas): LoggerEntity diff --git a/app/Views/layouts/admin/member_link.php b/app/Views/layouts/admin/member_link.php index 06cf4ad..2608c8a 100644 --- a/app/Views/layouts/admin/member_link.php +++ b/app/Views/layouts/admin/member_link.php @@ -7,10 +7,12 @@