git-svn-id: http://xe-core.googlecode.com/svn/trunk@1641 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-06-18 07:10:48 +00:00
parent 3a01cf8eac
commit a453857dd8
12 changed files with 123 additions and 1 deletions

View file

@ -6,7 +6,7 @@
</div>
<div id="admin_sub_menu">
<a href="{getUrl('','act','dispMemberLogout')}">{$lang->cmd_logout}</a>
<a href="{getUrl('','module','admin','act','dispMemberLogout')}">{$lang->cmd_logout}</a>
</div>
<div id="admin_main_menu">

View file

@ -35,6 +35,7 @@
<action name="procMemberInsert" type="controller" standalone="true" />
<action name="procMemberModifyInfo" type="controller" standalone="true" />
<action name="procMemberModifyPassword" type="controller" standalone="true" />
<action name="procMemberLeave" type="controller" standalone="true" />
<action name="procMemberInsertImageName" type="controller" standalone="true" />
<action name="procMemberInsertImageMark" type="controller" standalone="true" />
<action name="procMemberDeleteImageName" type="controller" standalone="true" />

View file

@ -99,6 +99,7 @@
$lang->msg_new_member = '회원 추가';
$lang->msg_update_member = '회원 정보 수정';
$lang->msg_leave_member = '회원 탈퇴';
$lang->msg_group_is_null = '등록된 그룹이 없습니다';
$lang->msg_not_delete_default = '기본 항목을 삭제할 수 없습니다';
$lang->msg_not_exists_member = '존재하지 않는 사용자입니다';

View file

@ -17,6 +17,7 @@
$oModuleController->insertActionForward('member', 'view', 'dispMemberSignUpForm');
$oModuleController->insertActionForward('member', 'view', 'dispMemberModifyInfo');
$oModuleController->insertActionForward('member', 'view', 'dispMemberModifyPassword');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLeave');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLoginForm');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLogout');
@ -64,11 +65,13 @@
$group_args->is_admin = 'Y';
$output = $oMemberAdminController->insertGroup($group_args);
unset($group_args);
$group_args->title = Context::getLang('default_group_1');
$group_args->is_default = 'Y';
$group_args->is_admin = 'N';
$output = $oMemberAdminController->insertGroup($group_args);
unset($group_args);
$group_args->title = Context::getLang('default_group_2');
$group_args->is_default = 'N';
$group_args->is_admin = 'N';

View file

@ -591,6 +591,39 @@
$this->setMessage('success_updated');
}
/**
* @brief 탈퇴
**/
function procMemberLeave() {
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
// 필수 정보들을 미리 추출
$password = trim(Context::get('password'));
// 로그인한 유저의 정보를 가져옴
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
// member model 객체 생성
$oMemberModel = &getModel('member');
// member_srl 에 따른 정보 가져옴
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
// 현재 비밀번호가 맞는지 확인
if(!$password || ($member_info->password != md5($password) && $this->mysql_pre4_hash_password($password) != $member_info->password)) {
return new Object(-1, 'invalid_password');
}
$output = $this->deleteMember($member_srl);
if(!$output->toBool()) return $output;
$_SESSION['is_logged'] = false;
$_SESSION['logged_info'] = null;
$this->setMessage('success_leaved');
}
/**
* @brief 이미지 이름을 추가
**/

View file

@ -137,6 +137,25 @@
$this->setTemplateFile('modify_password');
}
/**
* @brief 탈퇴 화면
**/
function dispMemberLeave() {
$oMemberModel = &getModel('member');
// 로그인 되어 있지 않을 경우 로그인 되어 있지 않다는 메세지 출력
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
Context::set('member_info',$member_info);
// 템플릿 파일 지정
$this->setTemplateFile('leave_form');
}
/**
* @brief 로그아웃 출력
**/

View file

@ -0,0 +1,12 @@
<filter name="leave_member" module="member" act="procMemberLeave" confirm_msg_code="confirm_leave">
<form>
<node target="password" required="true" maxlength="20" />
</form>
<parameter>
<param name="password" target="password" />
</parameter>
<response callback_func="completeLeave">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -20,6 +20,16 @@ function completeModify(ret_obj, response_tags, args, fo_obj) {
location.href = current_url.setQuery('act','dispMemberInfo');
}
/* 회원 탈퇴 */
function completeLeave(ret_obj, response_tags, args, fo_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
alert(message);
location.href = current_url.setQuery('act','');
}
/* 이미지 업로드 */
function _doUploadImage(fo_obj, act) {
// 업로드용 iframe을 생성

View file

@ -0,0 +1,39 @@
<!--%import("filter/leave_member.xml")-->
<!--%import("js/member.js")-->
<div>
{$lang->msg_leave_member}
</div>
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, leave_member)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<input type="hidden" name="page" value="{$page}" />
<div>
{$lang->member_default_info}
</div>
<table border="1">
<tr>
<th>{$lang->user_id}</th>
<td>
{$member_info->user_id}
</td>
</tr>
<tr>
<th rowspan="3">{$lang->password1}</th>
<td>
<input type="password" name="password" value="" />
</td>
</tr>
</table>
<table border="1">
<tr>
<td colspan="2">
<input type="button" value="{$lang->cmd_cancel}" onclick="location.href='{getUrl('act','dispMemberInfo','member_srl','')}'" />
<input type="submit" value="{$lang->cmd_leave}" accesskey="s" />
</td>
</tr>
</table>
</form>

View file

@ -92,6 +92,7 @@
<!--@if($member_info->member_srl == $logged_info->member_srl)-->
<input type="button" value="{$lang->cmd_modify_member_info}" onclick="location.href='{getUrl('act','dispMemberModifyInfo','member_srl','')}';return false;" />
<input type="button" value="{$lang->cmd_modify_member_password}" onclick="location.href='{getUrl('act','dispMemberModifyPassword','member_srl','')}'; return false;"/>
<input type="button" value="{$lang->cmd_leave}" onclick="location.href='{getUrl('act','dispMemberLeave','member_srl','')}'; return false;"/>
<input type="button" value="{$lang->cmd_view_message_box}" onclick="location.href='{getUrl('act','dispMemberMessages','member_srl','','message_type','R','message_srl','')}'; return false;"/>
<input type="button" value="{$lang->cmd_view_friend}" onclick="popopen('{getUrl('module','member','act','dispMemberFriend')}'); return false;"/>
<!--@end-->