https://xetown.com/xepoint/22105
위 자료를 이용하려고 하는데 좀 심각? 한 문제가 있습니다.
제작자분께 패치 여부 문의를 드렸지만 무응답이시라 질문을 통해 수정을 하려고 합니다.
사용중이신 분들께서도 이부분은 고려 하시고 사용하셔야 할 듯 합니다.
문제는 지정된 기간 동안 인증을 하지 않은 계정을 삭제하는 기능인데요.
여러가지 이유로 인증이 불가능한 회원을 관리자가 제한적으로 승인을 해 주는 경우가 있을 겁니다.
그런데 이 경우 메일인증 없이 승인되었기에 이 계정까지 해당 기간에 도달하면 삭제되어 버립니다.
활동중인 회원이 삭제되어버리는 것이라 문제가 되겠죠 ??
if($called_position == 'before_module_init')
{
if($this->module == 'admin' && $addon_info->activation_hour)
{
$args = new stdClass;
if($addon_info->handling_count)
{
$args->list_count = $addon_info->handling_count;
}
$args->regdate_less = date("YmdHis",strtotime(sprintf('-%d hour',$addon_info->activation_hour)));
$output = executeQuery('addons.email_activation_limit.getAuthMailLess', $args);
if($output->data)
{
$oMemberController = getController('member');
if(!is_array($output->data)) $output->data = array($output->data);
foreach($output->data as $key=> $val)
{
if($val->member_srl)
{
$oMemberController->deleteMember($val->member_srl);
}
}
}
}
이 부분에서 회원삭제를 하게 되는 것 같습니다.
<query id="getAuthMailLess" action="select">
<tables>
<table name="member_auth_mail" />
</tables>
<columns>
<column name="member_srl" />
</columns>
<conditions>
<condition operation="less" column="regdate" var="regdate_less" notnull="notnull" />
<condition operation="equal" column="is_register" default="Y" pipe="and" />
</conditions>
<navigation>
<index var="sort_index" default="regdate" order="desc" />
<list_count var="list_count" default="10" />
</navigation>
</query>
위 쿼리에서 조건을 하나 더 추가해 주면 될 것 같습니다.
member 테이블에서 denined이 Y 인 회원인 경우를 추가해 주면 승인된 회원은 빼고 불러올 듯 합니다.
쿼리에 추가해야할 것 부탁드립니다.
패스워드 변경이나 메일변경을 위한 메일인증이 요청된 후 인증이 빨리 이루어지지 않을 경우 혹은 인증을 하지 못할 경우 이런 회원도 삭제가 되는건 아닌지 우려가 됩니다.
이 경우도 이미 승인된 회원을 제외하는 것이 추가 된다면 해결이 될 문제로 보이기도 하구요.
제가 생각한 우려가 사실이라면 말입니다.