XETOWN

질문/답변

웹에 관련된 질문과 답변을 나눌 수 있습니다.

https://www.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 인 회원인 경우를 추가해 주면 승인된 회원은 빼고 불러올 듯 합니다.

 

 

쿼리에 추가해야할 것 부탁드립니다.

  • profile
    웹지기 2017.02.05 17:47:46
    그리고 한가지 추가로 우려스러운 의문점 하나가..
    패스워드 변경이나 메일변경을 위한 메일인증이 요청된 후 인증이 빨리 이루어지지 않을 경우 혹은 인증을 하지 못할 경우 이런 회원도 삭제가 되는건 아닌지 우려가 됩니다.

    이 경우도 이미 승인된 회원을 제외하는 것이 추가 된다면 해결이 될 문제로 보이기도 하구요.
    제가 생각한 우려가 사실이라면 말입니다.
  • profile
    웹지기 2017.02.06 11:41:26
    요부분은 제가 이메일변경으로 테스트해 보니 다행히 이 케이스는 is_resiter=N 값을 가지게 되어 삭제대상에 포함되지 않네요.

    관리자 수동승인해준 회원만 구제가 가능하면 될 듯 한데요....
  • ?
    SimpleCode 2017.02.05 19:03:59
    메일인증을 사용한다면 xe_member_auth_mail 테이블에 데이터가 쌓일 겁니다.

    /modules/member/schemas/member_auth_mail.xml 파일을 참고해보세요.
  • profile
    웹지기 2017.02.05 19:34:01

    제가 궁금한건 메일인증에 관련된건 이 애드온에서 미인증회원번호를 불러오게 되어있습니다.
    그런데 미인증 회원 중 denined이 Y 인 회원만 불러오게 조합을 하고 싶다는 것이구요.

    denined 회원을 확인할 테이블인
    member
    인 듯 합니다.

    제가 본문에 적어 놓은 쿼리에 denined이 Y 인회원을 AND 조건으로 하고 싶다는 거구요.

  • ?
    SimpleCode 2017.02.05 20:02:05
    XE에는 메일 인증여부를 영구적으로 저장하는 테이블이 없습니다.
    확장변수나 새로운 테이블에 인증여부를 저장해야 할 겁니다.
  • profile
    웹지기 2017.02.05 20:14:14
    뭔가 이해를 잘 못하십니다.
    지금 이 애드온의 쿼리를 보시면 메일인증 테이블에서 is_resiter=Y 인 회원을 불러옵니다.
    미인증 회원이죠.

    그런데 제 질문은 이메일미인증 회원인 상태로 있는 회원중에 관리자가 수동으로 상태를 거부 -> 승인으로 바꾸어 놓으 회원이 있다는겁니다.

    이회원을 별도로 빼려면 member 테이블에서 denined이 Y 인 회원만 메일인증 기간 동안 미인증일시 삭제해야 한다는 것이구요.

    지금 애드온의 문제가 메일인증을 하지 않은 회원중에 관리자허가로 활동중인 회원이 섞여 있다는게 문제입니다. 또 패스워드변경 시도나 이메일주소 변경을 시도시 메일인증이 요청될텐데 이부분 마무리 하지 않은 회원도 삭제 된다는 위험이 제 우려입니다.
  • ?
    SimpleCode 2017.02.05 20:18:15
    어떤 답변을 원하시는 것인지 잘 모르겠네요.
  • profile
    웹지기 2017.02.05 20:20:35

    그럼 간략하게 원하는 것을 다시 말씀 드리겠습니다.

    이 애드온의 문제점
    이메일미인증시 회원 자동삭제
    -> 미인증 회원 중 관리자가 허가해서 메일인증 없이 로그인 가능
    -> 이메일미인증 삭제 시 위 허가 회원 같이 삭제.

    원하는 답변
    -> 삭제를 할 회원번로 추출시 member 테이블의 denined이 Y 상태 회원만 뽑아올 수 있도록 이 애드온의 쿼리를 수정요청

  • ?
    기븐 2017.02.05 20:05:57
    근데 혹시 이메일 제공자를 허용하거나 제한하는 기능이 기본적으로 들어있는 건 라이믹스만 그런가요? 회원가입 설정에 보니까 기본적으로 있던데..

    (미인증 회원 삭제는 수동으로 하면 되므로 큰 문제는 아니고)
  • profile
    웹지기 2017.02.05 20:15:50

    XE에는 따로 없구요. 미인증회원 자동삭제 기능은 이 애드온에 포함된 기능입니다. 제가 사용하고 싶은 기능이 지금 수동으로 하고 있는 것을 자동으로 삭제 하는 것입니다.
    날짜 계산해서 수동으로 삭제해 주는게 귀찮아서요.

    미인증 회원 삭제 수동으로 하면 되므로 큰 문제는 아니고 는 저와 다른 입장이십니다.

  • profile
    기진곰 2017.02.06 15:37:17

    member_auth_mail 테이블의 데이터를 가져오면서 member 테이블의 denied 컬럼을 참조하려면 조인이 필요합니다. 테스트는 안해봤지만 대략 아래와 같은 쿼리를 사용하면 될 것 같네요. 만약 에러가 발생한다면 sort_index에 들어가는 값을 확인해 보세요. 조인을 사용할 때는 모든 컬럼을 테이블명.컬럼명 형태로 넣어줘야 합니다.

     

    <query id="getAuthMailLess" action="select">
        <tables>
            <table name="member_auth_mail" />
            <table name="member" />
        </tables>
        <columns>
            <column name="member_auth_mail.member_srl" />
        </columns>
        <conditions>
            <condition operation="less" column="member_auth_mail.regdate" var="regdate_less" notnull="notnull" />
            <condition operation="equal" column="member_auth_mail.is_register" default="Y" pipe="and" />
            <condition operation="equal" column="member_auth_mail.member_srl" default="member.member_srl" pipe="and" />
            <condition operation="equal" column="member.denied" default="Y" pipe="and" />
        </conditions>
        <navigation>
            <index var="sort_index" default="member_auth_mail.regdate" order="desc" />
            <list_count var="list_count" default="10" />
        </navigation>
    </query>

  • profile
    웹지기 2017.02.06 15:39:14
    포기하고 수동승인 해주는 회원이 생기면 잊지 않고 db에서 인증메일 관련 db를 삭제하려고 했는데 정말 감사합니다.

    다른 자료를 보고 이해를 해보려고 했는데 그냥 봐서는 정확하게 이해가 어렵고 삭제관련이라 섣불리 시도해보기 어려웠습니다.

    도움 감사드립니다.
  • profile
    웹지기 2017.02.06 17:33:59
    방금 삭제예정인 미승인 회원을 수동으로 승인으로 두어보았다가 모니터링 해보고 다시 거부로 전환하니까 바로 삭제되네요. 이상없이 동작 잘 됩니다! 감사합니다!

List of Articles
번호 제목 글쓴이 날짜
공지 답변을 확실히 받기위한 질문자 지침서 21 람보 2015.12.31
3912 성인컨텐츠 쪽에서 궁금합니다. 1 낙타 2017.02.07
3911 속도 테스트 부탁드립니다. 14 낙타 2017.02.07
3910 스티커 모듈 사용시에 컨텐츠 위젯에 이쁘게 출력시키는 방법 없을까요? 12 file 기븐 2017.02.07
3909 문득 궁금해서 로그인해서 글써봅니당... 2 큰성565 2017.02.06
3908 라이믹스가 무엇인가요? 4 SyWilliam 2017.02.06
3907 javascript 소스 암호화 혹은 난독화 추천 부탁 드립니다. 11 구름이 2017.02.06
3906 이건 라이믹스 쪽 버그인가요 타임라인 모듈 쪽 버그인가요? 3 기븐 2017.02.06
3905 MySQL 질문 9 file 네비 2017.02.06
3904 웹지기님 요거 어떻게 하신거에요 ...? 5 file 구미호 2017.02.06
3903 xGetElementById() is deprecated in Rhymix 이건 무슨 뜻인가요? 1 기븐 2017.02.06
3902 isFromMobilePhone 이랑 isMobilePadCheckByAgent 의 정확한 차이가 뭔가요? 2 기븐 2017.02.06
3901 이미지 프로세스 모듈 사용시 bmp파일을 jpg 또는 png로 자동변환을 체크했을때 파일은 변환되나 확장자 명이 변환안되서 실제 본문에 삽입이 안되는 버그에 관련하여 수정하신분 계십니까? jylee7152 2017.02.05
3900 nginx의 설정 문의드립니다 1 고라자 2017.02.05
» 메일인증 제한 애드온 수정 문의 13 웹지기 2017.02.05
3898 누리고 db 생성이 안되는데요 2 초보90 2017.02.05
3897 코드를 인쇄하는 방법 질문합니다 ㅠㅠ 4 프렌다 2017.02.05
3896 출석부 모듈, 표시되는 시간이 서로 상이하네요. 1 file DevinLee 2017.02.05
3895 고급 메일 발송 모듈 (메일 및 SMS 관리) 메일테스트 에러 5 sar**** 2017.02.05
3894 404 에러 페이지에서 루트도메인으로 리디렉션하고싶습니다. 1 file sar**** 2017.02.05
3893 이런 사이트 같은 경우는 견적이 어느정도 나오나요? 1 file SoyaMilk 2017.02.05
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 ... 203 Next
/ 203
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...