계정 거부 사유를 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-CN"><![CDATA[拒绝]]></value>
</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">
<value xml:lang="ko"><![CDATA[그룹 이미지 마크 사용]]></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");
// Extract the necessary information in advance
$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');
}
$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');
$config = $oMemberModel->getMemberConfig ();
$getVars = array();
@ -47,7 +47,7 @@ class memberAdminController extends member
{
$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'))
$args->password = Context::get('reset_password');
else unset($args->password);

View file

@ -1751,7 +1751,7 @@ class memberController extends member
$redirectUrl = getUrl('', 'act', 'dispMemberResendAuthMail');
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
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>
</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">
<label class="x_control-label" for="until">{$lang->limit_date}</label>
<div class="x_controls">
@ -116,16 +123,32 @@
</form>
<script>
(function($){
$(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,""))}
};
$.extend(option,$.datepicker.regional['{$lang_type}']);
$(".inputDate").datepicker(option);
$(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,""))}
};
$.extend(option,$.datepicker.regional['{$lang_type}']);
$(".inputDate").datepicker(option);
$(".dateRemover").click(function() {
$(this).prevAll('input').val('');
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);
</script>