#87. 오픈아이디로 가입하였을 경우 탈퇴하여 DB에서 정보를 삭제 할 수 있도록 기능 추가

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2615 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-09-19 03:28:42 +00:00
parent 4ed1f14503
commit 0b6d2fee39
13 changed files with 127 additions and 13 deletions

View file

@ -7,6 +7,8 @@
<action name="dispMemberModifyPassword" type="view" standalone="true" />
<action name="dispMemberLoginForm" type="view" standalone="true" />
<action name="dispMemberLogout" type="view" standalone="true" />
<action name="dispMemberLeave" type="view" standalone="true" />
<action name="dispMemberOpenIDLeave" type="view" standalone="true" />
<action name="dispMemberOwnDocument" type="view" standalone="true" />
<action name="dispMemberScrappedDocument" type="view" standalone="true" />
@ -40,6 +42,7 @@
<action name="procMemberModifyInfo" type="controller" standalone="true" />
<action name="procMemberModifyPassword" type="controller" standalone="true" />
<action name="procMemberLeave" type="controller" standalone="true" />
<action name="procMemberOpenIDLeave" 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

@ -168,6 +168,7 @@
$lang->about_member_default = 'It will be set as default group on join';
$lang->about_openid = 'When you join as OpenID, basic info like ID or email address will be saved on this site, but password and certification management will be done on current OpenID offering service';
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
$lang->about_member = "This is a module for creating/modifing/deleting members and managing group or join form.\nYou can manage members by creating new groups, and get additional information by managing join form";
?>

View file

@ -168,6 +168,7 @@
$lang->about_member_default = 'Al registrar se configura como grupo predefinido';
$lang->about_openid = 'Cuando tu registra como OpenID, la información básica como ID o la dirección del email sera guardado en este sitio, pero la contraseña y la resolución de la certificación se hará en el servicio ofrecido por openID';
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
$lang->about_member = "Esto es un módulo para crear/modificar/eliminar usuarios y manejar grupos o el formato del registro.\n Usted puede manejar usuarios creando nuevos grupos, y obtener información adicional manejando el formato del registro";
?>

View file

@ -168,6 +168,7 @@
$lang->about_member_default = '会員加入時に基本グループとして設定されます。';
$lang->about_openid = 'OpenIDで加入する際、とメールなどの基本情報は、このサイトに保存されますが、パスワードと認証のための処理用の情報は該当するOpenID提供サービス側で行われます。';
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
$lang->about_member = "会員の作成・修正・削除することができ、グループの管理、加入フォームの管理などが行える会員管理モジュールです。デフォルトで作成されたグループにグループを追加作成して会員管理ができるようにし、加入フォーム管理では基本情報の他、フォームの入力情報を追加することができます。";
?>

View file

@ -168,6 +168,7 @@
$lang->about_member_default = '회원가입시 기본 그룹으로 설정됩니다';
$lang->about_openid = '오픈아이디로 가입시 아이디와 메일등의 기본 정보는 이 사이트에 저장이 되지만 비밀번호와 인증을 위한 처리는 해당 오픈아이디 제공서비스에서 이루어집니다.';
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
$lang->about_member = "회원을 생성/수정/삭제 할 수 있고 그룹관리나 가입폼 관리등을 할 수 있는 회원 관리 모듈입니다.\n기본으로 생성된 그룹외의 그룹을 생성하여 회원 관리가 가능하고 가입폼관리를 통한 기본 정보외의 추가 정보를 요구받을 수도 있습니다.";
?>

View file

@ -168,6 +168,7 @@
$lang->about_member_default = '将成为注册会员时的默认用户组。';
$lang->about_openid = '用OpenID注册时该网站只保存用户名和 邮件等基本信息密码和认证处理是在提供OpenID服务的站点中得到解决。';
$lang->about_openid_leave = '오픈아이디의 탈퇴는 현 사이트에서의 회원 정보를 삭제하는 것입니다.<br />탈퇴 후 로그인하시면 새로 가입하시는 것으로 되어 작성한 글에 대한 권한을 가질 수 없게 됩니다';
$lang->about_member = "可以添加/修改/删除会员及管理用户组或注册表单的会员管理模块。\n此模块不仅可以生成缺省用户组以外的其他用户组来管理会员,并且通过注册表单的管理获得除会员基本信息以外的扩展信息。";
?>
?>

View file

@ -18,6 +18,7 @@
$oModuleController->insertActionForward('member', 'view', 'dispMemberModifyInfo');
$oModuleController->insertActionForward('member', 'view', 'dispMemberModifyPassword');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLeave');
$oModuleController->insertActionForward('member', 'view', 'dispMemberOpenIDLeave');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLoginForm');
$oModuleController->insertActionForward('member', 'view', 'dispMemberLogout');
$oModuleController->insertActionForward('member', 'view', 'dispMemberOwnDocument');
@ -125,6 +126,10 @@
$act = $oModuleModel->getActionForward('dispMemberScrappedDocument');
if(!$act) return true;
// dispMemberOpenIDLeave act의 여부 체크 (2007. 9. 19 추가)
$act = $oModuleModel->getActionForward('dispMemberOpenIDLeave');
if(!$act) return true;
// member 디렉토리 체크 (2007. 8. 11 추가)
if(!is_dir("./files/member_extra_info")) return true;
@ -139,6 +144,7 @@
$oModuleController = &getController('module');
$oModuleController->insertActionForward('member', 'view', 'dispMemberOwnDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberScrappedDocument');
$oModuleController->insertActionForward('member', 'view', 'dispMemberOpenIDLeave');
// member 디렉토리 체크
FileHandler::makeDir('./files/member_extra_info/image_name');

View file

@ -121,12 +121,7 @@
* @brief 로그아웃
**/
function procMemberLogout() {
$_SESSION['is_logged'] = false;
$_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['logged_info'] = NULL;
$_SESSION['member_srl'] = NULL;
$_SESSION['group_srls'] = array();
$_SESSION['is_admin'] = NULL;
$this->destroySessionInfo();
return new Object();
}
@ -726,12 +721,38 @@
$output = $this->deleteMember($member_srl);
if(!$output->toBool()) return $output;
$_SESSION['is_logged'] = false;
$_SESSION['logged_info'] = null;
// 모든 세션 정보 파기
$this->destroySessionInfo();
// 성공 메세지 리턴
$this->setMessage('success_leaved');
}
/**
* @brief 오픈아이디 탈퇴
**/
function procMemberOpenIDLeave() {
// 비로그인 상태이면 에러
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
// 현재 ip와 세션 아이피 비교
if($_SESSION['ipaddress']!=$_SERVER['REMOTE_ADDR']) return $this->stop('msg_not_permitted');
// 로그인한 유저의 정보를 가져옴
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
$output = $this->deleteMember($member_srl);
if(!$output->toBool()) return $output;
// 모든 세션 정보 파기
$this->destroySessionInfo();
// 성공 메세지 리턴
$this->setMessage('success_leaved');
}
/**
* @brief 이미지 이름을 추가
**/
@ -960,6 +981,10 @@
function setSessionInfo($member_info) {
if(!$member_info->member_srl) return;
// 오픈아이디인지 체크
if(eregi("^([0-9a-z]+)$", $member_info->user_id)) $member_info->is_openid = false;
else $member_info->is_openid = true;
// 로그인 처리
$_SESSION['is_logged'] = true;
$_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR'];
@ -1312,5 +1337,15 @@
return sprintf("%08lx%08lx", $nr, $nr2);
}
/**
* @brief 모든 세션 정보 파기
**/
function destroySessionInfo() {
if(!$_SESSION || !is_array($_SESSION)) return;
foreach($_SESSION as $key => $val) {
$_SESSION[$key] = '';
}
}
}
?>

View file

@ -231,6 +231,27 @@
$this->setTemplateFile('leave_form');
}
/**
* @brief 오픈 아이디 탈퇴 화면
**/
function dispMemberOpenIDLeave() {
$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);
if($member_info->member_srl == $logged_info->member_srl) Context::set('my_menu', $this->my_menu);
// 템플릿 파일 지정
$this->setTemplateFile('openid_leave_form');
}
/**
* @brief 로그아웃 출력
**/

View file

@ -99,8 +99,12 @@
<div class="tCenter">
<!--@if($member_info->member_srl == $logged_info->member_srl)-->
<a href="{getUrl('act','dispMemberModifyInfo','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_info}</span></a>
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_password}</span></a>
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
<!--@if($logged_info->is_openid)-->
<a href="{getUrl('act','dispMemberOpenIDLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
<!--@else-->
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_password}</span></a>
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
<!--@end-->
<!--@end-->
<a href="{getUrl('act','','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>

View file

@ -0,0 +1,8 @@
<filter name="openid_leave_member" module="member" act="procMemberOpenIDLeave" confirm_msg_code="confirm_leave">
<form />
<parameter />
<response callback_func="completeLeave">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -99,8 +99,12 @@
<div class="tCenter">
<!--@if($member_info->member_srl == $logged_info->member_srl)-->
<a href="{getUrl('act','dispMemberModifyInfo','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_info}</span></a>
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_password}</span></a>
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
<!--@if($logged_info->is_openid)-->
<a href="{getUrl('act','dispMemberOpenIDLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
<!--@else-->
<a href="{getUrl('act','dispMemberModifyPassword','member_srl','')}" class="button"><span>{$lang->cmd_modify_member_password}</span></a>
<a href="{getUrl('act','dispMemberLeave','member_srl','')}" class="button"><span>{$lang->cmd_leave}</span></a>
<!--@end-->
<!--@end-->
<a href="{getUrl('act','','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>

View file

@ -0,0 +1,28 @@
{@ $member_title = $lang->msg_leave_member}
<!--#include("./common_header.html")-->
<!--%import("filter/openid_leave_member.xml")-->
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, openid_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}" />
<table cellspacing="0" class="memberInfoTable gap1" title="$lang->msg_leave_member}">
<col width="140" />
<col />
<tr class="first-child">
<th scope="row">{$lang->user_id}</th>
<td>
{$member_info->user_id}
<p>{$lang->about_openid_leave}</p>
</td>
</tr>
</table>
<div class="help tCenter">
<span class="button"><input type="submit" value="{$lang->cmd_leave}" accesskey="s" /></span>
<a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="button"><span>{$lang->cmd_back}</span></a>
</div>
</form>
<!--#include("./common_footer.html")-->