Add option to allow duplicate nicknames

This commit is contained in:
Kijin Sung 2017-12-21 15:11:13 +09:00
parent 98b328fa3f
commit bc17e4b2d5
7 changed files with 50 additions and 11 deletions

View file

@ -120,6 +120,8 @@ $lang->cmd_trace_comment = 'Trace Written Comments';
$lang->cmd_view_scrapped_document = 'Scraps';
$lang->cmd_view_saved_document = 'Saved Articles';
$lang->cmd_send_email = 'Send Mail';
$lang->cmd_allow_duplicate_nickname = 'Allow Duplicate Nicknames';
$lang->about_allow_duplicate_nickname = 'Allow more than one member to use the same nickname.';
$lang->msg_email_not_exists = 'You have entered an invalid email address.';
$lang->msg_alreay_scrapped = 'This article is already scrapped.';
$lang->msg_folder_alreay_exists = 'A folder with the same name already exists.';

View file

@ -124,6 +124,8 @@ $lang->cmd_view_saved_document = '저장함 보기';
$lang->cmd_send_email = '메일 보내기';
$lang->cmd_modify_nickname_log = '닉네임 변경 기록';
$lang->cmd_member_profile_view = '회원 프로필사진 보이기';
$lang->cmd_allow_duplicate_nickname = '닉네임 중복 허용';
$lang->about_allow_duplicate_nickname = '여러 회원이 동일한 닉네임을 사용하는 것을 허용합니다. 주의: 잘못 사용할 경우 혼란이 발생할 수 있습니다.';
$lang->msg_email_not_exists = '이메일 주소가 존재하지 않습니다.';
$lang->msg_alreay_scrapped = '이미 스크랩된 게시물입니다.';
$lang->msg_folder_alreay_exists = '이미 존재하는 폴더 이름입니다.';

View file

@ -185,6 +185,7 @@ class memberAdminController extends member
'password_hashing_auto_upgrade',
'password_change_invalidate_other_sessions',
'update_nickname_log',
'allow_duplicate_nickname',
'member_profile_view'
);

View file

@ -249,6 +249,15 @@ class member extends ModuleObject {
if(!$oModuleModel->getTrigger('document.getDocumentMenu', 'member', 'controller', 'triggerGetDocumentMenu', 'after')) return true;
if(!$oModuleModel->getTrigger('comment.getCommentMenu', 'member', 'controller', 'triggerGetCommentMenu', 'after')) return true;
// Allow duplicate nickname
if($config->allow_duplicate_nickname == 'Y')
{
if($oDB->isIndexExists('member', 'unique_nick_name') || !$oDB->isIndexExists('member', 'idx_nick_name'))
{
return true;
}
}
return false;
}
@ -412,6 +421,19 @@ class member extends ModuleObject {
$oModuleController->insertTrigger('document.getDocumentMenu', 'member', 'controller', 'triggerGetDocumentMenu', 'after');
if(!$oModuleModel->getTrigger('comment.getCommentMenu', 'member', 'controller', 'triggerGetCommentMenu', 'after'))
$oModuleController->insertTrigger('comment.getCommentMenu', 'member', 'controller', 'triggerGetCommentMenu', 'after');
// Allow duplicate nickname
if($config->allow_duplicate_nickname == 'Y')
{
if($oDB->isIndexExists('member', 'unique_nick_name'))
{
$oDB->dropIndex('member', 'unique_nick_name', true);
}
if(!$oDB->isIndexExists('member', 'idx_nick_name'))
{
$oDB->addIndex('member', 'idx_nick_name', array('nick_name'));
}
}
}
/**

View file

@ -2365,16 +2365,18 @@ class memberController extends member
}
// Check if nickname is duplicate
$member_srl = $oMemberModel->getMemberSrlByNickName($args->nick_name);
if($member_srl)
if($config->allow_duplicate_nickname !== 'Y')
{
return new BaseObject(-1, 'msg_exists_nick_name');
$member_srl = $oMemberModel->getMemberSrlByNickName($args->nick_name);
if($member_srl)
{
return new BaseObject(-1, 'msg_exists_nick_name');
}
}
// Check managed Email Host
if($logged_info->is_admin !== 'Y' && $oMemberModel->isDeniedEmailHost($args->email_address))
{
$config = $oMemberModel->getMemberConfig();
$emailhost_check = $config->emailhost_check;
$managed_email_host = lang('managed_email_host');
@ -2580,7 +2582,6 @@ class memberController extends member
// Check managed Email Host
if($logged_info->is_admin !== 'Y' && $oMemberModel->isDeniedEmailHost($args->email_address))
{
$config = $oMemberModel->getMemberConfig();
$emailhost_check = $config->emailhost_check;
$managed_email_host = lang('managed_email_host');
@ -2637,11 +2638,14 @@ class memberController extends member
}
// Check if nickname is duplicate
$member_srl = $oMemberModel->getMemberSrlByNickName($args->nick_name);
if($member_srl && $args->member_srl != $member_srl)
{
return new BaseObject(-1, 'msg_exists_nick_name');
}
if($config->allow_duplicate_nickname !== 'Y')
{
$member_srl = $oMemberModel->getMemberSrlByNickName($args->nick_name);
if($member_srl && $args->member_srl != $member_srl)
{
return new BaseObject(-1, 'msg_exists_nick_name');
}
}
list($args->email_id, $args->email_host) = explode('@', $args->email_address);

View file

@ -6,7 +6,7 @@
<column name="email_id" type="varchar" size="80" notnull="notnull" />
<column name="email_host" type="varchar" size="160" index="idx_email_host" />
<column name="user_name" type="varchar" size="40" notnull="notnull" />
<column name="nick_name" type="varchar" size="40" notnull="notnull" unique="unique_nick_name" />
<column name="nick_name" type="varchar" size="40" notnull="notnull" index="idx_nick_name" />
<column name="find_account_question" type="number" size="11" />
<column name="find_account_answer" type="varchar" size="250" />
<column name="homepage" type="varchar" size="250" />

View file

@ -36,6 +36,14 @@
<p class="x_help-block">{$lang->about_update_nickname_log}</p>
</div>
</div>
<div class="x_control-group">
<div class="x_control-label">{$lang->cmd_allow_duplicate_nickname}</div>
<div class="x_controls">
<label class="x_inline" for="allow_duplicate_nickname_yes"><input type="radio" name="allow_duplicate_nickname" id="allow_duplicate_nickname_yes" value="Y" checked="checked"|cond="$config->allow_duplicate_nickname == 'Y'" /> {$lang->cmd_yes}</label>
<label class="x_inline" for="allow_duplicate_nickname_no"><input type="radio" name="allow_duplicate_nickname" id="allow_duplicate_nickname_no" value="N" checked="checked"|cond="$config->allow_duplicate_nickname != 'Y'"/> {$lang->cmd_no}</label>
<p class="x_help-block">{$lang->about_allow_duplicate_nickname}</p>
</div>
</div>
<div class="x_control-group">
<div class="x_control-label">{$lang->cmd_config_password_strength}</div>
<div class="x_controls">