diff --git a/modules/member/conf/module.xml b/modules/member/conf/module.xml index 75b09d96c..3a701e8d1 100644 --- a/modules/member/conf/module.xml +++ b/modules/member/conf/module.xml @@ -78,6 +78,7 @@ + diff --git a/modules/member/lang/lang.xml b/modules/member/lang/lang.xml index 68687d995..271040837 100644 --- a/modules/member/lang/lang.xml +++ b/modules/member/lang/lang.xml @@ -119,6 +119,10 @@ + + + + @@ -1010,6 +1014,10 @@ + + + + @@ -2309,10 +2317,14 @@ Bạn có thể quản lý thành viên bằng cách tạo những nhóm mới, - %s개의 금지아이디가 있습니다.]]> - %s prohibited ID.]]> + %s개의 금지 아이디가 있습니다.]]> + %s prohibited ID.]]> %s個の禁止IDがあります。]]> - %s 個禁止帳號]]> + %s 個禁止帳號]]> + + + %s개의 금지 닉네임이 있습니다.]]> + %s prohibited nick name.]]> @@ -2415,6 +2427,10 @@ Bạn có thể quản lý thành viên bằng cách tạo những nhóm mới, + + + + diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index d0047a0f5..d6cb31756 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -778,6 +778,42 @@ $this->setRedirectUrl($returnUrl); } + /** + * Add a denied nick name + * @return void + **/ + function procMemberAdminUpdateDeniedNickName() + { + $nick_name = Context::get('nick_name'); + + $mode = Context::get('mode'); + $mode = $mode ? $mode : 'insert'; + + if($mode == 'delete') + { + $output = $this->deleteDeniedNickName($nick_name); + if(!$output->toBool()) + { + return $output; + } + $msg_code = 'success_deleted'; + $this->setMessage($msg_code); + } + else + { + $nick_names = explode(',',$nick_name); + $success_nick_names = array(); + + foreach($nick_names as $val) + { + $output = $this->insertDeniedNickName($val, ''); + if($output->toBool()) $success_nick_names[] = $val; + } + + $this->add('nick_names', implode(',',$success_nick_names)); + } + } + /** * Update denied ID * @return void|Object (void : success, Object : fail) @@ -959,16 +995,35 @@ return executeQuery('member.insertDeniedID', $args); } + function insertDeniedNickName($nick_name, $description = '') + { + $args->nick_name = $nick_name; + $args->description = $description; + + return executeQuery('member.insertDeniedNickName', $args); + } + /** - * Delete a denied ID + * delete a denied id * @param string $user_id - * @return Object + * @return object **/ function deleteDeniedID($user_id) { $args->user_id = $user_id; return executeQuery('member.deleteDeniedID', $args); } + /** + * delete a denied nick name + * @param string $nick_name + * @return object + **/ + function deleteDeniedNickName($nick_name) + { + $args->nick_name = $nick_name; + return executeQuery('member.deleteDeniedNickName', $args); + } + /** * Delete a join form * @param int $member_join_form_srl diff --git a/modules/member/member.admin.view.php b/modules/member/member.admin.view.php index 376f09f85..9dbe7b3e6 100644 --- a/modules/member/member.admin.view.php +++ b/modules/member/member.admin.view.php @@ -101,8 +101,8 @@ * * @return void **/ - function dispMemberAdminConfig() { - global $lang; // retrieve configuration via module model instance + function dispMemberAdminConfig() + { $oModuleModel = &getModel('module'); $oMemberModel = &getModel('member'); $config = $oMemberModel->getMemberConfig(); @@ -135,9 +135,27 @@ $editor = $oEditorModel->getEditor(0, $option); Context::set('editor', $editor); - // get denied ID list - $denied_list = $oMemberModel->getDeniedIDs(); - Context::set('deniedIDs', $denied_list); + $signupForm = $config->signupForm; + foreach($signupForm as $val) + { + if($val->name == 'user_id') + { + $userIdInfo = $val; + break; + } + } + + if($userIdInfo->isUse) + { + // get denied ID list + Context::set('useUserID', 1); + $denied_list = $oMemberModel->getDeniedIDs(); + Context::set('deniedIDs', $denied_list); + } + + // get denied NickName List + $deniedNickNames = $oMemberModel->getDeniedNickNames(); + Context::set('deniedNickNames', $deniedNickNames); $security = new Security(); $security->encodeHTML('config..'); diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 907b108f5..d762e46b8 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -208,6 +208,11 @@ if($member_srl && $logged_info->member_srl != $member_srl ) return new Object(0,'msg_exists_user_id'); break; case 'nick_name' : + // Check denied ID + if($oMemberModel->isDeniedNickName($value)) + { + return new Object(0,'denied_nick_name'); + } // Check if duplicated $member_srl = $oMemberModel->getMemberSrlByNickName($value); if($member_srl && $logged_info->member_srl != $member_srl ) return new Object(0,'msg_exists_nick_name'); @@ -1675,6 +1680,11 @@ $member_srl = $oMemberModel->getMemberSrlByUserID($args->user_id); if($member_srl) return new Object(-1,'msg_exists_user_id'); + // nickname check is prohibited + if($oMemberModel->isDeniedNickName($args->nick_name)) + { + return new Object(-1,'denied_nick_name'); + } $member_srl = $oMemberModel->getMemberSrlByNickName($args->nick_name); if($member_srl) return new Object(-1,'msg_exists_nick_name'); @@ -1764,7 +1774,8 @@ /** * Modify member information **/ - function updateMember($args) { + function updateMember($args) + { // Call a trigger (before) $output = ModuleHandler::triggerCall('member.updateMember', 'before', $args); if(!$output->toBool()) return $output; @@ -1804,6 +1815,11 @@ $args->user_id = $orgMemberInfo->user_id; } + if($args->nick_name && $oMemberModel->isDeniedNickName($args->nick_name)) + { + return new Object(-1, 'denied_nick_name'); + } + list($args->email_id, $args->email_host) = explode('@', $args->email_address); // Website, blog, checks the address if($args->homepage && !preg_match("/^[a-z]+:\/\//is",$args->homepage)) $args->homepage = 'http://'.$args->homepage; diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 04255e3d5..e041ee493 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -660,6 +660,17 @@ return $output->data; } + function getDeniedNickNames() + { + $output = executeQueryArray('member.getDeniedNickNames'); + if(!$output->toBool()) + { + return array(); + } + + return $output->data; + } + /** * @brief Verify if ID is denied **/ @@ -670,6 +681,20 @@ return false; } + /** + * @brief Verify if nick name is denied + **/ + function isDeniedNickName($nickName) + { + $args->nick_name = $nickName; + $output = executeQuery('member.chkDeniedNickName', $args); + if($output->data->count) return true; + if(!$output->toBool()) + { + return true; + } + return false; + } /** * @brief Get information of the profile image **/ diff --git a/modules/member/queries/chkDeniedNickName.xml b/modules/member/queries/chkDeniedNickName.xml new file mode 100644 index 000000000..5dd418790 --- /dev/null +++ b/modules/member/queries/chkDeniedNickName.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/modules/member/queries/deleteDeniedNickName.xml b/modules/member/queries/deleteDeniedNickName.xml new file mode 100644 index 000000000..531a34661 --- /dev/null +++ b/modules/member/queries/deleteDeniedNickName.xml @@ -0,0 +1,8 @@ + + +
+ + + + + diff --git a/modules/member/queries/getDeniedNickNames.xml b/modules/member/queries/getDeniedNickNames.xml new file mode 100644 index 000000000..74702feb6 --- /dev/null +++ b/modules/member/queries/getDeniedNickNames.xml @@ -0,0 +1,8 @@ + + +
+ + + + + diff --git a/modules/member/queries/insertDeniedNickName.xml b/modules/member/queries/insertDeniedNickName.xml new file mode 100644 index 000000000..988bbf60f --- /dev/null +++ b/modules/member/queries/insertDeniedNickName.xml @@ -0,0 +1,10 @@ + + +
+ + + + + + + diff --git a/modules/member/schemas/member_denied_nick_name.xml b/modules/member/schemas/member_denied_nick_name.xml new file mode 100644 index 000000000..a9982aa56 --- /dev/null +++ b/modules/member/schemas/member_denied_nick_name.xml @@ -0,0 +1,5 @@ +
+ + + +
diff --git a/modules/member/tpl/js/member_admin_config.js b/modules/member/tpl/js/member_admin_config.js index deeed6ba1..6c0c7ac19 100644 --- a/modules/member/tpl/js/member_admin_config.js +++ b/modules/member/tpl/js/member_admin_config.js @@ -41,6 +41,25 @@ function doUpdateDeniedID(user_id, mode, message) { ); } +/* prohibited nick name functions */ +function doUpdateDeniedNickName(nick_name, mode, message) +{ + if(typeof(message)!='undefined' && !confirm(message)) return; + + exec_xml( + 'member', + 'procMemberAdminUpdateDeniedNickName', + {nick_name:nick_name, mode:mode}, + function(){ + if (mode == 'delete'){ + jQuery('#denied_'+nick_name).remove(); + jQuery('._deniedNickNameCount').html(jQuery('#deniedNickNameList li').length); + } + }, + ['error','message','tpl'] + ); +} + jQuery(function($){ // hide form if enable_join is setted "No" var suSetting = $('fieldset.suSetting'); // 회원가입 설정 @@ -136,7 +155,9 @@ jQuery(function($){ var tag; function on_complete(data){ - var uids = data.user_ids.split(','); + var userIds = $.trim(data.user_ids); + if(userIds == '') return; + var uids = userIds.split(','); for (var i=0; i'+uids[i]+' '+xe.lang.cmd_delete+''; $('#deniedList').append($(tag)); @@ -150,6 +171,38 @@ jQuery(function($){ }); + $('button._addDeniedNickName').click(function(){ + var ids = $('#prohibited_nick_name').val(); + if(ids == ''){ + alert(xe.lang.msg_null_prohibited_nick_name); + $('#prohibited_nick_name').focus(); + return; + } + + + ids = ids.replace(/\n/g, ','); + + var tag; + function on_complete(data) + { + $('#prohibited_nick_name').val(''); + + var nickNames = $.trim(data.nick_names); + if(nickNames == '') return; + var uids = nickNames.split(','); + for (var i=0; i'+uids[i]+' '+xe.lang.cmd_delete+''; + $('#deniedNickNameList').append($(tag)); + } + + $('._deniedNickNameCount').html($('#deniedNickNameList li').length); + } + + 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'); diff --git a/modules/member/tpl/member_config.html b/modules/member/tpl/member_config.html index a835c14e0..cc1e837fb 100644 --- a/modules/member/tpl/member_config.html +++ b/modules/member/tpl/member_config.html @@ -5,6 +5,7 @@ xe.lang.confirm_delete = '{$lang->confirm_delete}'; xe.lang.cmd_delete = '{$lang->cmd_delete}'; xe.lang.msg_null_prohibited_id = '{$lang->msg_null_prohibited_id}'; + xe.lang.msg_null_prohibited_nick_name = '{$lang->msg_null_prohibited_nick_name}';

{$XE_VALIDATOR_MESSAGE}

@@ -104,7 +105,20 @@

  • -

    +

    +
    + +
    +
    + + + {$lang->multi_line_input} +
    +
  • +
  • +