mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 17:21:39 +09:00
Allow multiple identifiers
This commit is contained in:
parent
a352033fcb
commit
d4794dcb44
6 changed files with 66 additions and 68 deletions
|
|
@ -303,8 +303,10 @@ $lang->add_extend_form = 'Add user defined item';
|
|||
$lang->msg_null_prohibited_id = 'Please enter an ID to prohibit.';
|
||||
$lang->msg_null_prohibited_nick_name = 'Please enter a nick name to prohibit.';
|
||||
$lang->msg_null_managed_emailhost = 'Please enter email address providers to manage. (eg.: gmail.com)';
|
||||
$lang->identifier = 'Login Account';
|
||||
$lang->about_identifier = 'Please select an account to use when logging in.';
|
||||
$lang->identifier = 'Login Identifier';
|
||||
$lang->about_identifier = 'Allow users to login using one or more different identifiers.';
|
||||
$lang->msg_need_identifier = 'You need to select at least one login identifier.';
|
||||
$lang->msg_need_enabled_identifier = 'You need to select identifiers that are enabled in the signup form.';
|
||||
$lang->use_after_save = 'Use after saved';
|
||||
$lang->cmd_add_group = 'Add group';
|
||||
$lang->msg_groups_exist = 'groups exist.';
|
||||
|
|
|
|||
|
|
@ -317,9 +317,11 @@ $lang->add_extend_form = '사용자 정의 항목 추가';
|
|||
$lang->msg_null_prohibited_id = '추가할 금지 아이디를 입력해주세요.';
|
||||
$lang->msg_null_prohibited_nick_name = '추가할 금지 닉네임을 입력해주세요.';
|
||||
$lang->msg_null_managed_emailhost = '추가할 금지 이메일 주소 제공자를 입력해주세요. (예: naver.com)';
|
||||
$lang->identifier = '로그인 계정';
|
||||
$lang->about_identifier = '로그인에 사용할 계정을 선택해주세요.';
|
||||
$lang->identifier = '로그인 방법';
|
||||
$lang->about_identifier = '여러 가지 방법으로 로그인을 허용할 수 있습니다.';
|
||||
$lang->about_public_item = '본인 외에 다른 회원에게도 노출될 정보인지 선택합니다.';
|
||||
$lang->msg_need_identifier = '최소 한 가지의 로그인 방법을 선택해야 합니다.';
|
||||
$lang->msg_need_enabled_identifier = '가입 폼에서 사용하도록 설정된 로그인 방법을 선택해야 합니다.';
|
||||
$lang->use_after_save = '저장 후 사용';
|
||||
$lang->cmd_add_group = '그룹 추가';
|
||||
$lang->msg_groups_exist = '개 그룹이 존재합니다.';
|
||||
|
|
|
|||
|
|
@ -293,6 +293,8 @@ class memberAdminController extends member
|
|||
public function procMemberAdminInsertSignupConfig()
|
||||
{
|
||||
$oMemberModel = getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
|
||||
$oModuleController = getController('module');
|
||||
|
||||
$args = Context::gets(
|
||||
|
|
@ -335,7 +337,6 @@ class memberAdminController extends member
|
|||
$args->image_name = $args->image_name ? 'Y' : 'N';
|
||||
$args->image_mark = $args->image_mark ? 'Y' : 'N';
|
||||
$args->signature = $args->signature != 'Y' ? 'N' : 'Y';
|
||||
$args->identifier = $all_args->identifier;
|
||||
|
||||
// set default
|
||||
$all_args->is_nick_name_public = 'Y';
|
||||
|
|
@ -356,13 +357,13 @@ class memberAdminController extends member
|
|||
foreach($list_order as $key)
|
||||
{
|
||||
$signupItem = new stdClass();
|
||||
$signupItem->isIdentifier = ($key == $all_args->identifier);
|
||||
$signupItem->isIdentifier = ($key == $config->identifier || in_array($key, $config->identifiers));
|
||||
$signupItem->isDefaultForm = in_array($key, $items);
|
||||
$signupItem->name = $key;
|
||||
$signupItem->title = (!in_array($key, $items)) ? $key : $lang->{$key};
|
||||
$signupItem->mustRequired = in_array($key, $mustRequireds);
|
||||
$signupItem->imageType = (strpos($key, 'image') !== false);
|
||||
$signupItem->required = ($all_args->{$key} == 'required') || $signupItem->mustRequired || $signupItem->isIdentifier;
|
||||
$signupItem->required = ($all_args->{$key} == 'required') || $signupItem->mustRequired;
|
||||
$signupItem->isUse = in_array($key, $usable_list) || $signupItem->required;
|
||||
$signupItem->isPublic = ($all_args->{'is_'.$key.'_public'} == 'Y' && $signupItem->isUse) ? 'Y' : 'N';
|
||||
|
||||
|
|
@ -415,9 +416,12 @@ class memberAdminController extends member
|
|||
|
||||
public function procMemberAdminInsertLoginConfig()
|
||||
{
|
||||
$oMemberModel = getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
$oModuleController = getController('module');
|
||||
|
||||
$args = Context::gets(
|
||||
'identifiers',
|
||||
'change_password_date',
|
||||
'enable_login_fail_report',
|
||||
'max_error_count',
|
||||
|
|
@ -425,7 +429,34 @@ class memberAdminController extends member
|
|||
'after_login_url',
|
||||
'after_logout_url'
|
||||
);
|
||||
|
||||
|
||||
if(!count($args->identifiers))
|
||||
{
|
||||
return new BaseObject(-1, 'msg_need_identifier');
|
||||
}
|
||||
$enabled_list = array();
|
||||
foreach($config->signupForm as $signupItem)
|
||||
{
|
||||
if($signupItem->isUse)
|
||||
{
|
||||
$enabled_list[] = $signupItem->name;
|
||||
}
|
||||
if(in_array($signupItem->name, $args->identifiers))
|
||||
{
|
||||
$signupItem->isIdentifier = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$signupItem->isIdentifier = false;
|
||||
}
|
||||
}
|
||||
if(!count(array_intersect($args->identifiers, $enabled_list)))
|
||||
{
|
||||
return new BaseObject(-1, 'msg_need_enabled_identifier');
|
||||
}
|
||||
$args->signupForm = $config->signupForm;
|
||||
$args->identifier = array_first($args->identifiers);
|
||||
|
||||
if(!$args->change_password_date)
|
||||
{
|
||||
$args->change_password_date = 0;
|
||||
|
|
|
|||
|
|
@ -217,35 +217,6 @@ jQuery(function($){
|
|||
jQuery.exec_json('member.procMemberAdminUpdateDeniedNickName', {'nick_name': ids}, on_complete);
|
||||
|
||||
});
|
||||
|
||||
$('input[name=identifier]').change(function(){
|
||||
var $checkedTR = $('input[name=identifier]:checked').closest('tr');
|
||||
var $notCheckedTR = $('input[name=identifier]:not(:checked)').closest('tr');
|
||||
var name, notName;
|
||||
if (!$checkedTR.hasClass('sticky')){
|
||||
name = $checkedTR.find('input[name="list_order[]"]').val();
|
||||
if (!$checkedTR.find('input[type=hidden][name="usable_list[]"]').length) $('<input type="hidden" name="usable_list[]" value="'+name+'" />').insertBefore($checkedTR);
|
||||
if (!$checkedTR.find('input[type=hidden][name='+name+']').length) $('<input type="hidden" name="'+name+'" value="required" />').insertBefore($checkedTR);
|
||||
$checkedTR.find('th').html('<span class="_title" style="padding-left:20px" >'+$checkedTR.find('th ._title').html()+'</span>');
|
||||
$checkedTR.find('input[type=checkbox][name="usable_list[]"]').attr('checked', 'checked').attr('disabled', 'disabled');
|
||||
$checkedTR.find('input[type=radio][name='+name+'][value=required]').attr('checked', 'checked').attr('disabled', 'disabled');
|
||||
$checkedTR.find('input[type=radio][name='+name+'][value=option]').removeAttr('checked').attr('disabled', 'disabled');
|
||||
$checkedTR.addClass('sticky');
|
||||
$checkedTR.parent().prepend($checkedTR);
|
||||
|
||||
notName = $notCheckedTR.find('input[name="list_order[]"]').val();
|
||||
if (notName == 'user_id'){
|
||||
if ($notCheckedTR.find('input[type=hidden][name="usable_list[]"]').length) $notCheckedTR.find('input[type=hidden][name="usable_list[]"]').remove();
|
||||
if ($notCheckedTR.find('input[type=hidden][name='+name+']').length) $notCheckedTR.find('input[type=hidden][name='+name+']').remove();
|
||||
$notCheckedTR.find('input[type=checkbox][name="usable_list[]"]').removeAttr('disabled');
|
||||
$notCheckedTR.find('input[type=radio][name='+notName+']').removeAttr('disabled');
|
||||
}
|
||||
$notCheckedTR.find('th').html('<div class="wrap"><button type="button" class="dragBtn">Move to</button><span class="_title" >'+$notCheckedTR.find('th ._title').html()+'</span></div>');
|
||||
$notCheckedTR.removeClass('sticky');
|
||||
|
||||
// add sticky class
|
||||
}
|
||||
});
|
||||
|
||||
$('#userDefine').submit(function(e) {
|
||||
var id_list = $(this).find('input[name=join_form_id_list]').val();
|
||||
|
|
|
|||
|
|
@ -4,6 +4,24 @@
|
|||
<input type="hidden" name="act" value="procMemberAdminInsertLoginConfig" />
|
||||
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin', 'act', $act)}" />
|
||||
<input type="hidden" name="xe_validator_id" value="modules/member/tpl/1" />
|
||||
<div class="x_control-group">
|
||||
<p class="x_control-label">{$lang->identifier}</p>
|
||||
<div class="x_controls">
|
||||
<label class="x_inline" for="identifiers_user_id">
|
||||
<input type="checkbox" name="identifiers[]" id="identifiers_user_id" value="user_id" checked="checked"|cond="$config->identifier === 'user_id' || in_array('user_id', $config->identifiers)" />
|
||||
{$lang->user_id}
|
||||
</label>
|
||||
<label class="x_inline" for="identifiers_email_address">
|
||||
<input type="checkbox" name="identifiers[]" id="identifiers_email_address" value="email_address" checked="checked"|cond="$config->identifier === 'email_address' || in_array('email_address', $config->identifiers)" />
|
||||
{$lang->email_address}
|
||||
</label>
|
||||
<label class="x_inline" for="identifiers_phone_number">
|
||||
<input type="checkbox" name="identifiers[]" id="identifiers_phone_number" value="phone_number" checked="checked"|cond="$config->identifier === 'phone_number' || in_array('phone_number', $config->identifiers)" />
|
||||
{$lang->phone_number}
|
||||
</label>
|
||||
<p class="x_help-block">{$lang->about_identifier}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="change_password_date">{$lang->change_password_date}</label>
|
||||
<div class="x_controls">
|
||||
|
|
|
|||
|
|
@ -82,12 +82,6 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="nowr" style="text-align:center">{$lang->target}</th>
|
||||
<th scope="col" class="nowr" style="text-align:center">{$lang->identifier}
|
||||
[<a href="#helpDefault" data-toggle>?</a>]
|
||||
<div class="layer x_alert x_alert-info" id="helpDefault">
|
||||
<p>{$lang->about_identifier}</p>
|
||||
</div>
|
||||
</th>
|
||||
<th scope="col" class="nowr" style="text-align:center">{$lang->use}</th>
|
||||
<th scope="col" class="nowr" style="text-align:center">{$lang->public}
|
||||
[<a href="#helpPublic" data-toggle>?</a>]
|
||||
|
|
@ -105,37 +99,18 @@
|
|||
{@ $fixed_public_list = array('nick_name', 'password', 'email_address', 'phone_number')}
|
||||
<!--@foreach($config->signupForm as $item)-->
|
||||
<!--@if(in_array($item->name, $disabled_list))-->
|
||||
<!--@elseif($item->isIdentifier)-->
|
||||
<tr class="sticky">
|
||||
<input type="hidden" name="list_order[]" value="{$item->name}" />
|
||||
<input type="hidden" name="usable_list[]" value="{$item->name}"/>
|
||||
<input type="hidden" name="{$item->name}" value="requierd"/>
|
||||
<th scope="row">
|
||||
<span class="_title" style="display:inline-block;white-space:pre-line;overflow:inherit;width:120px;text-overflow:ellipsis;padding-left:20px">{$item->title}</span>
|
||||
</th>
|
||||
<td style="text-align:center"><input type="radio" name="identifier" value="{$item->name}" checked="checked" /></td>
|
||||
<td style="text-align:center"><input type="checkbox" name="usable_list[]" value="{$item->name}" title="{$lang->use}" checked="checked" disabled="disabled" /></td>
|
||||
<td style="text-align:center"><input type="checkbox" name="is_{$item->name}_public" value="Y" checked="checked"|cond="$item->isPublic == 'Y'" disabled="disabled"|cond="in_array($item->name, $fixed_public_list) || !$item->isUse" /></td>
|
||||
<td class="nowr">
|
||||
<label for="{$item->name}_re" class="x_inline"><input type="radio" id="{$item->name}_re" name="{$item->name}" value="requierd" checked="checked" disabled="disabled" /> {$lang->cmd_required}</label>
|
||||
<label for="{$item->name}_op" class="x_inline"><input type="radio" id="{$item->name}_op" name="{$item->name}" value="option" disabled="disabled" /> {$lang->cmd_optional}</label>
|
||||
</td>
|
||||
<td class="desc"> </td>
|
||||
<td style="text-align:center"> </td>
|
||||
</tr>
|
||||
<!--@elseif($item->isDefaultForm)-->
|
||||
<tr class="_imageType"|cond="$item->imageType">
|
||||
<tr class="sticky"|cond="$item->isIdentifier" class="_imageType"|cond="$item->imageType">
|
||||
<input type="hidden" name="list_order[]" value="{$item->name}" />
|
||||
<input type="hidden" name="usable_list[]" value="{$item->name}" cond="$item->mustRequired"/>
|
||||
<input type="hidden" name="{$item->name}" value="requierd" cond="$item->mustRequired"/>
|
||||
<input type="hidden" name="usable_list[]" value="{$item->name}" cond="$item->isIdentifier || $item->mustRequired"/>
|
||||
<input type="hidden" name="{$item->name}" value="required" cond="$item->isIdentifier || $item->mustRequired"/>
|
||||
<th scope="row">
|
||||
<div class="wrap">
|
||||
<button type="button" class="dragBtn">Move to</button>
|
||||
<button type="button" class="dragBtn" cond="!$item->isIdentifier">Move to</button>
|
||||
<span class="_title" style="display:inline-block;white-space:pre-line;overflow:inherit;width:120px;text-overflow:ellipsis" title="{$item->title}">{$item->title}</span>
|
||||
</div>
|
||||
</th>
|
||||
<td style="text-align:center"><input type="radio" name="identifier" value="{$item->name}" cond="$item->name== 'email_address' || $item->name=='user_id'" /></td>
|
||||
<td style="text-align:center"><input type="checkbox" name="usable_list[]" value="{$item->name}" title="{$lang->use}" checked="checked"|cond="$item->mustRequired || $item->isUse" disabled="disabled"|cond="$item->mustRequired" /></td>
|
||||
<td style="text-align:center"><input type="checkbox" name="usable_list[]" value="{$item->name}" title="{$lang->use}" checked="checked"|cond="$item->isIdentifier || $item->mustRequired || $item->isUse" disabled="disabled"|cond="$item->isIdentifier || $item->mustRequired" /></td>
|
||||
<td style="text-align:center"><input type="checkbox" name="is_{$item->name}_public" value="Y" checked="checked"|cond="$item->isPublic == 'Y'" disabled="disabled"|cond="in_array($item->name, $fixed_public_list) || !$item->isUse" data-donotchange="Y"|cond="in_array($item->name, $fixed_public_list)" /></td>
|
||||
<td class="nowr">
|
||||
<label for="{$item->name}_re" class="x_inline"><input type="radio" id="{$item->name}_re" name="{$item->name}" value="required" checked="checked"|cond="$item->mustRequired || $item->required" disabled="disabled"|cond="$item->mustRequired || !$item->isUse" /> {$lang->cmd_required}</label>
|
||||
|
|
@ -221,7 +196,6 @@
|
|||
<span class="_title" style="display:inline-block;white-space:pre-line;overflow:inherit;width:120px;text-overflow:ellipsis" title="{$item->title}">{$item->title}</span>
|
||||
</div>
|
||||
</th>
|
||||
<td></td>
|
||||
<td style="text-align:center"><input type="checkbox" name="usable_list[]" value="{$item->name}" title="{$lang->use}" checked="checked"|cond="$item->isUse" /></td>
|
||||
<td style="text-align:center"><input type="checkbox" name="is_{$item->name}_public" value="Y" checked="checked"|cond="$item->isPublic == 'Y'" disabled="disabled"|cond="!$item->isUse" /></td>
|
||||
<td class="nowr">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue