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 @@