From 9c42ba38ceff3cae4189fdabb560aaf8bdac18c6 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Mon, 9 Sep 2019 22:42:54 +0900 Subject: [PATCH] Record which agreement(s) a member has agreed to MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 약관을 2개 이상 지정하고 그 중 일부를 선택으로 할 수 있으므로 각 회원이 가입시 어떤 약관에 동의하고 어떤 약관에 동의하지 않았는지 확장변수로 저장하도록 하여 이후 문제발생 소지를 제거함. --- modules/member/member.controller.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 08142f6f6..3d66805ca 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -592,12 +592,23 @@ class memberController extends member // Check if the user accept the license terms (only if terms exist) $accept_agreement = Context::get('accept_agreement'); + if(!is_array($accept_agreement)) + { + $accept_agreement = array_fill(0, count($config->agreements), $accept_agreement); + } + $accept_agreement_rearranged = array(); foreach($config->agreements as $i => $agreement) { - if($agreement->type === 'required' && $accept_agreement !== 'Y' && $accept_agreement[$i] !== 'Y') + if($agreement->type === 'disabled') + { + continue; + } + if($agreement->type === 'required' && $accept_agreement[$i] !== 'Y') { throw new Rhymix\Framework\Exception('msg_accept_agreement'); } + $accept_agreement_rearranged[$i] = $accept_agreement[$i] === 'Y' ? 'Y' : 'N'; + $accept_agreement_rearranged[$i] .= ':' . date('YmdHis', RX_TIME); } // Extract the necessary information in advance @@ -659,6 +670,7 @@ class memberController extends member // Remove some unnecessary variables from all the vars $all_args = Context::getRequestVars(); + unset($all_args->xe_validator_id); unset($all_args->module); unset($all_args->act); unset($all_args->is_admin); @@ -671,15 +683,19 @@ class memberController extends member unset($all_args->password); unset($all_args->password2); unset($all_args->mid); + unset($all_args->success_return_url); unset($all_args->error_return_url); unset($all_args->ruleset); unset($all_args->captchaType); unset($all_args->secret_text); + unset($all_args->use_editor); + unset($all_args->use_html); // Set the user state as "denied" when using mail authentication if($config->enable_confirm == 'Y') $args->denied = 'Y'; // Add extra vars after excluding necessary information from all the requested arguments $extra_vars = delObjectVars($all_args, $args); + $extra_vars->accept_agreement = $accept_agreement_rearranged; $args->extra_vars = serialize($extra_vars); // remove whitespace