계정 거부 사유를 extra_vars 에 저장

계정 거부된 회원이 로그인을 시도할 경우, 거부 사유와 함께 오류 메시지가 나타납니다.
https://github.com/rhymix/rhymix/issues/58
This commit is contained in:
MinSoo Kim 2016-01-27 13:32:02 +09:00
parent d928e2717b
commit 79955b083c
4 changed files with 41 additions and 10 deletions

View file

@ -2665,6 +2665,14 @@
<value xml:lang="zh-TW"><![CDATA[拒絕]]></value> <value xml:lang="zh-TW"><![CDATA[拒絕]]></value>
<value xml:lang="zh-CN"><![CDATA[拒绝]]></value> <value xml:lang="zh-CN"><![CDATA[拒绝]]></value>
</item> </item>
<item name="refused_reason">
<value xml:lang="ko"><![CDATA[계정 거부 사유]]></value>
<value xml:lang="en"><![CDATA[Reason for account refusing]]></value>
</item>
<item name="about_refused_reason">
<value xml:lang="ko"><![CDATA[계정이 정지된 이유를 적어주세요. 이 항목에 기록된 내용은 해당 회원에게 로그인 후 화면을 통해 안내됩니다.]]></value>
<value xml:lang="en"><![CDATA[Describe the reason why you refuse this account. Something you write in this field would be displayed when this user signs in.]]></value>
</item>
<item name="use_group_image_mark"> <item name="use_group_image_mark">
<value xml:lang="ko"><![CDATA[그룹 이미지 마크 사용]]></value> <value xml:lang="ko"><![CDATA[그룹 이미지 마크 사용]]></value>
<value xml:lang="en"><![CDATA[Use group image mark]]></value> <value xml:lang="en"><![CDATA[Use group image mark]]></value>

View file

@ -24,12 +24,12 @@ class memberAdminController extends member
// if(Context::getRequestMethod() == "GET") return new Object(-1, "msg_invalid_request"); // if(Context::getRequestMethod() == "GET") return new Object(-1, "msg_invalid_request");
// Extract the necessary information in advance // Extract the necessary information in advance
$logged_info = Context::get('logged_info'); $logged_info = Context::get('logged_info');
if($logged_info->is_admin != 'Y' || !checkCSRF()) if($logged_info->is_admin !== 'Y' || !checkCSRF())
{ {
return new Object(-1, 'msg_invalid_request'); return new Object(-1, 'msg_invalid_request');
} }
$args = Context::gets('member_srl','email_address','find_account_answer', 'allow_mailing','allow_message','denied','is_admin','description','group_srl_list','limit_date'); $args = new stdClass;
$oMemberModel = &getModel ('member'); $oMemberModel = &getModel ('member');
$config = $oMemberModel->getMemberConfig (); $config = $oMemberModel->getMemberConfig ();
$getVars = array(); $getVars = array();
@ -47,7 +47,7 @@ class memberAdminController extends member
{ {
$args->{$val} = Context::get($val); $args->{$val} = Context::get($val);
} }
$args->member_srl = Context::get('member_srl'); $args = Context::gets('member_srl','email_address','find_account_answer', 'allow_mailing', 'allow_message', 'denied', 'is_admin', 'description', 'group_srl_list', 'limit_date');
if(Context::get('reset_password')) if(Context::get('reset_password'))
$args->password = Context::get('reset_password'); $args->password = Context::get('reset_password');
else unset($args->password); else unset($args->password);

View file

@ -1751,7 +1751,7 @@ class memberController extends member
$redirectUrl = getUrl('', 'act', 'dispMemberResendAuthMail'); $redirectUrl = getUrl('', 'act', 'dispMemberResendAuthMail');
return $this->setRedirectUrl($redirectUrl, new Object(-1,'msg_user_not_confirmed')); return $this->setRedirectUrl($redirectUrl, new Object(-1,'msg_user_not_confirmed'));
} }
return new Object(-1,'msg_user_denied'); return new Object(-1, ($this->memberInfo->refused_reason)? Context::getLang('msg_user_denied') . "\n" . $this->memberInfo->refused_reason : 'msg_user_denied');
} }
// Notify if denied_date is less than the current time // Notify if denied_date is less than the current time
if($this->memberInfo->limit_date && substr($this->memberInfo->limit_date,0,8) >= date("Ymd")) return new Object(-9,sprintf(Context::getLang('msg_user_limited'),zdate($this->memberInfo->limit_date,"Y-m-d"))); if($this->memberInfo->limit_date && substr($this->memberInfo->limit_date,0,8) >= date("Ymd")) return new Object(-9,sprintf(Context::getLang('msg_user_limited'),zdate($this->memberInfo->limit_date,"Y-m-d")));

View file

@ -77,6 +77,13 @@
<label class="x_inline" for="deny"><input type="radio" name="denied" id="deny" value="Y" checked="checked"|cond="$member_info->denied == 'Y'" > {$lang->denied}</label> <label class="x_inline" for="deny"><input type="radio" name="denied" id="deny" value="Y" checked="checked"|cond="$member_info->denied == 'Y'" > {$lang->denied}</label>
</div> </div>
</div> </div>
<div class="x_control-group div_refused_reason">
<label class="x_control-label">{$lang->refused_reason}</label>
<div class="x_controls">
<textarea name="refused_reason" id="refused_reason" rows="2" cols="42" style="vertical-align:top">{$member_info->refused_reason}</textarea>
<span class="x_help-inline">{$lang->about_refused_reason}</span>
</div>
</div>
<div class="x_control-group" cond="$member_srl"> <div class="x_control-group" cond="$member_srl">
<label class="x_control-label" for="until">{$lang->limit_date}</label> <label class="x_control-label" for="until">{$lang->limit_date}</label>
<div class="x_controls"> <div class="x_controls">
@ -116,16 +123,32 @@
</form> </form>
<script> <script>
(function($){ (function($){
$(function(){ $(function(){
var option = { changeMonth: true, changeYear: true, gotoCurrent: false,yearRange:'-100:+10', dateFormat:'yy-mm-dd', onSelect:function(){ var option = { changeMonth: true, changeYear: true, gotoCurrent: false,yearRange:'-100:+10', dateFormat:'yy-mm-dd', onSelect:function(){
$(this).prev('input[type="hidden"]').val(this.value.replace(/-/g,""))} $(this).prev('input[type="hidden"]').val(this.value.replace(/-/g,""))}
}; };
$.extend(option,$.datepicker.regional['{$lang_type}']); $.extend(option,$.datepicker.regional['{$lang_type}']);
$(".inputDate").datepicker(option); $(".inputDate").datepicker(option);
$(".dateRemover").click(function() { $(".dateRemover").click(function() {
$(this).prevAll('input').val(''); $(this).prevAll('input').val('');
return false; return false;
}); });
}); });
var refused_reason_division = $('.div_refused_reason');
if(!$('#deny').is(':checked'))
{
refused_reason_division.hide();
}
$('#deny').change(function(){
if($(this).is(':checked')){
refused_reason_division.slideDown(200);
}
});
$('#appoval').change(function(){
if($(this).is(':checked')){
refused_reason_division.slideUp(200);
}
});
})(jQuery); })(jQuery);
</script> </script>