mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-20 19:02:14 +09:00
#466 Context class에서 로그인유무 확인후 매번 세션 정보를 새로 갱신하도록 하여 로그인된 회원의 현 정보를 제대로 운영할 수 있도록 코드 변경
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4159 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
aa0c4957ad
commit
e6a19417ff
4 changed files with 39 additions and 53 deletions
|
|
@ -775,9 +775,6 @@
|
|||
// user_id 에 따른 정보 가져옴
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl);
|
||||
|
||||
// 사용자의 전용 메뉴 구성
|
||||
$member_info->menu_list = $this->getMemberMenuList();
|
||||
|
||||
// 로그인 성공후 trigger 호출 (after)
|
||||
$trigger_output = ModuleHandler::triggerCall('member.doLogin', 'after', $member_info);
|
||||
if(!$trigger_output->toBool()) return $trigger_output;
|
||||
|
|
@ -1168,8 +1165,7 @@
|
|||
if ($output->data->is_register == 'Y') {
|
||||
$args->password = $output->data->new_password;
|
||||
$args->denied = 'N';
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$args->password = md5($output->data->new_password);
|
||||
unset($args->denied);
|
||||
}
|
||||
|
|
@ -1186,9 +1182,6 @@
|
|||
// 회원의 정보를 가져옴
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
|
||||
// 사용자의 전용 메뉴 구성
|
||||
$member_info->menu_list = $this->getMemberMenuList();
|
||||
|
||||
// 로그인 성공후 trigger 호출 (after)
|
||||
$trigger_output = ModuleHandler::triggerCall('member.doLogin', 'after', $member_info);
|
||||
if(!$trigger_output->toBool()) return $trigger_output;
|
||||
|
|
@ -1309,15 +1302,12 @@
|
|||
}
|
||||
|
||||
// denied_date가 현 시간보다 적으면 알림
|
||||
if($member_info->limit_date && $member_info->limit_date >= date("Ymd")) return new Object(-1,sprintf(Context::getLang('msg_user_limited'),zdate($member_info->limit_date,"Y-m-d")));
|
||||
if($member_info->limit_date && substr($member_info->limit_date,0,8) >= date("Ymd")) return new Object(-1,sprintf(Context::getLang('msg_user_limited'),zdate($member_info->limit_date,"Y-m-d")));
|
||||
|
||||
// 사용자 정보의 최근 로그인 시간을 기록
|
||||
$args->member_srl = $member_info->member_srl;
|
||||
$output = executeQuery('member.updateLastLogin', $args);
|
||||
|
||||
// 사용자의 전용 메뉴 구성
|
||||
$member_info->menu_list = $this->getMemberMenuList();
|
||||
|
||||
// 로그인 성공후 trigger 호출 (after)
|
||||
$trigger_output = ModuleHandler::triggerCall('member.doLogin', 'after', $member_info);
|
||||
if(!$trigger_output->toBool()) return $trigger_output;
|
||||
|
|
@ -1329,9 +1319,7 @@
|
|||
$autologin_args->member_srl = $member_info->member_srl;
|
||||
executeQuery('member.deleteAutologin', $autologin_args);
|
||||
$autologin_output = executeQuery('member.insertAutologin', $autologin_args);
|
||||
if($autologin_output->toBool()) {
|
||||
setCookie('xeak',$autologin_args->autologin_key, time()+60*60*24*365, '/');
|
||||
}
|
||||
if($autologin_output->toBool()) setCookie('xeak',$autologin_args->autologin_key, time()+60*60*24*365, '/');
|
||||
}
|
||||
|
||||
$this->setSessionInfo($member_info);
|
||||
|
|
@ -1339,24 +1327,30 @@
|
|||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 로그인 사용자의 전용 메뉴를 구성
|
||||
**/
|
||||
function getMemberMenuList() {
|
||||
$menu_list['dispMemberInfo'] = 'cmd_view_member_info';
|
||||
$menu_list['dispMemberFriend'] = 'cmd_view_friend';
|
||||
$menu_list['dispMemberMessages'] = 'cmd_view_message_box';
|
||||
$menu_list['dispMemberScrappedDocument'] = 'cmd_view_scrapped_document';
|
||||
$menu_list['dispMemberSavedDocument'] = 'cmd_view_saved_document';
|
||||
$menu_list['dispMemberOwnDocument'] = 'cmd_view_own_document';
|
||||
return $menu_list;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 세션 정보 갱싱 또는 생성
|
||||
**/
|
||||
function setSessionInfo($member_info) {
|
||||
if(!$member_info->member_srl) return;
|
||||
function setSessionInfo($member_info = null) {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// 사용자 정보가 넘어오지 않았다면 현재 세션 정보에서 사용자 정보를 추출
|
||||
if(!$member_info && $_SESSION['member_srl'] && $oMemberModel->isLogged() ) {
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($_SESSION['member_srl']);
|
||||
|
||||
// 회원정보가 없다면 세션 파기
|
||||
if($member_info->member_srl != $_SESSION['member_srl']) {
|
||||
$this->destroySessionInfo();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 사용자의 전용 메뉴 구성 (이 메뉴는 애드온등으로 변경될 수 있음)
|
||||
$member_info->menu_list['dispMemberInfo'] = 'cmd_view_member_info';
|
||||
$member_info->menu_list['dispMemberFriend'] = 'cmd_view_friend';
|
||||
$member_info->menu_list['dispMemberMessages'] = 'cmd_view_message_box';
|
||||
$member_info->menu_list['dispMemberScrappedDocument'] = 'cmd_view_scrapped_document';
|
||||
$member_info->menu_list['dispMemberSavedDocument'] = 'cmd_view_saved_document';
|
||||
$member_info->menu_list['dispMemberOwnDocument'] = 'cmd_view_own_document';
|
||||
|
||||
// 오픈아이디인지 체크 (일단 아이디 형식으로만 결정)
|
||||
if(preg_match("/^([0-9a-z]+)$/is", $member_info->user_id)) $member_info->is_openid = false;
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td class="red"><!--@if($val->is_admin != 'Y')--><a href="{getUrl('act','dispMemberAdminDeleteForm','member_srl', $val->member_srl)}">{$lang->cmd_delete}</a><!--@else--><img src="./images/icon_management.gif" title="{$lang->is_admin}" alt="{$lang->is_admin}" /><!--@end--></td>
|
||||
<td colspan="2">{$val->group_list}</td>
|
||||
<td colspan="2">{$val->group_list} </td>
|
||||
<td>
|
||||
<!--@if($val->homepage)--><a href="{$val->homepage}" class="homepage" onclick="window.open(this.href);return false;"><img src="./images/icon_homepage.gif" title="{$lang->homepage}" alt="{$lang->homepage}" /></a> <!--@end-->
|
||||
<!--@if($val->blog)--><a href="{$val->blog}" class="blog" onclick="window.open(this.href);return false;"><img src="./images/icon_blog.gif" title="{$lang->blog}" alt="{$lang->blog}" /></a> <!--@end-->
|
||||
|
|
|
|||
|
|
@ -422,13 +422,6 @@
|
|||
$new_group_args->member_srl = $member_srl;
|
||||
$new_group_args->group_srl = $current_group_srl;
|
||||
$new_group_output = executeQuery('member.addMemberToGroup', $new_group_args);
|
||||
|
||||
// 만약 대상 사용자와 로그인 사용자의 정보가 동일하다면 세션을 변경해줌
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->member_srl == $member_srl) {
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
$_SESSION['logged_info']->group_list = $member_info->group_list;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue