Merge pull request #2124 from kijin/develop

승인, 거부, 미인증 등 회원 상태를 세부 구분하는 status 컬럼 추가
This commit is contained in:
Kijin Sung 2023-06-21 00:40:48 +09:00 committed by GitHub
commit 0faa75204b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 194 additions and 119 deletions

View file

@ -29,9 +29,9 @@ class MemberAdminController extends Member
throw new Rhymix\Framework\Exceptions\InvalidRequest;
}
$args = Context::gets('member_srl','email_address','find_account_answer', 'allow_mailing','allow_message','denied','is_admin','description','group_srl_list','limit_date');
$args = Context::gets('member_srl','email_address','find_account_answer', 'allow_mailing','allow_message','is_admin','denied','status','description','group_srl_list','limit_date');
$oMemberModel = getModel('member');
$config = $oMemberModel->getMemberConfig ();
$config = $oMemberModel->getMemberConfig();
$getVars = array();
if($config->signupForm)
{
@ -80,7 +80,7 @@ class MemberAdminController extends Member
{
$output = executeQuery('member.getMemberInfoByMemberSrl', ['member_srl' => $args->member_srl], ['extra_vars']);
$extra_vars = ($output->data && $output->data->extra_vars) ? unserialize($output->data->extra_vars) : new stdClass;
foreach($this->nouse_extra_vars as $key)
foreach(self::NOUSE_EXTRA_VARS as $key)
{
unset($extra_vars->$key);
}
@ -99,12 +99,19 @@ class MemberAdminController extends Member
$extra_vars->{$formInfo->name} = $all_args->{$formInfo->name};
}
}
foreach($this->admin_extra_vars as $key)
foreach(self::ADMIN_EXTRA_VARS as $key)
{
$extra_vars->{$key} = escape(utf8_clean($all_args->{$key} ?? ''));
}
$args->extra_vars = serialize($extra_vars);
// Normalize denied and status columns
if (!in_array($args->status ?? '', self::STATUS_LIST))
{
$args->status = 'APPROVED';
}
$args->denied = ($args->status === 'APPROVED') ? 'N' : 'Y';
// Delete invalid or past limit dates #1334
if (!isset($args->limit_date))
{
@ -1030,6 +1037,7 @@ class MemberAdminController extends Member
if($var->denied)
{
$args->denied = $var->denied;
$args->status = $var->denied === 'Y' ? 'DENIED' : 'APPROVED';
$output = executeQuery('member.updateMemberDeniedInfo', $args);
if(!$output->toBool())
{

View file

@ -42,17 +42,24 @@ class MemberAdminModel extends Member
{
// Search option
$args = new stdClass();
$args->is_admin = Context::get('is_admin')=='Y'?'Y':'';
$args->is_denied = Context::get('is_denied')=='Y'?'Y':'';
$args->is_admin = Context::get('is_admin') === 'Y' ? 'Y' : null;
$args->status = Context::get('is_denied') === 'Y' ? 'DENIED' : null;
$args->selected_group_srl = Context::get('selected_group_srl');
$filter = Context::get('filter_type');
switch($filter)
{
case 'super_admin' : $args->is_admin = 'Y';break;
case 'site_admin' : $args->member_srls = $this->getSiteAdminMemberSrls();break;
case 'enable' : $args->is_denied = 'N';break;
case 'disable' : $args->is_denied = 'Y';break;
case 'admin':
case 'super_admin':
$args->is_admin = 'Y'; break;
case 'approved':
case 'enable':
$args->status = 'APPROVED'; break;
case 'denied':
case 'disable':
$args->status = 'DENIED'; break;
case 'unauthed':
$args->status = 'UNAUTHED'; break;
}
$search_target = trim(Context::get('search_target') ?? '');

View file

@ -117,29 +117,6 @@ class MemberAdminView extends Member
}
}
// Get list of new members who have not completed email auth
$check_list = array();
foreach ($output->data as $member)
{
if ($member->denied !== 'N')
{
$check_list[$member->member_srl] = false;
}
}
if (count($check_list))
{
$args2 = new stdClass;
$args2->member_srl = array_keys($check_list);
$output2 = executeQueryArray('member.getAuthMailType', $args2);
foreach ($output2->data as $item)
{
if ($item->is_register === 'Y')
{
$check_list[$item->member_srl] = true;
}
}
}
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
@ -148,7 +125,6 @@ class MemberAdminView extends Member
Context::set('sort_index', Context::get('sort_index'));
Context::set('member_config', $oMemberModel->getMemberConfig());
Context::set('member_list', $output->data);
Context::set('new_member_check_list', $check_list);
Context::set('usedIdentifiers', $usedIdentifiers);
Context::set('page_navigation', $output->page_navigation);
Context::set('profileImageConfig', $config->profile_image);
@ -488,22 +464,6 @@ class MemberAdminView extends Member
$member_info->limit_date = '';
}
$member_unauthenticated = false;
if ($member_info->member_srl && $member_info->denied !== 'N')
{
$args2 = new stdClass;
$args2->member_srl = $member_info->member_srl;
$output2 = executeQueryArray('member.getAuthMailType', $args2);
foreach ($output2->data as $item)
{
if ($item->is_register === 'Y')
{
$member_unauthenticated = true;
}
}
}
Context::set('member_unauthenticated', $member_unauthenticated);
$this->setTemplateFile('insert_member');
}

View file

@ -8,10 +8,11 @@
class Member extends ModuleObject
{
/**
* Extra vars for admin purposes
* Constants
*/
public $admin_extra_vars = ['refused_reason', 'limited_reason'];
public $nouse_extra_vars = ['error_return_url', 'success_return_url', '_rx_ajax_compat', '_rx_csrf_token', 'ruleset', 'captchaType', 'use_editor', 'use_html'];
public const ADMIN_EXTRA_VARS = ['refused_reason', 'limited_reason'];
public const NOUSE_EXTRA_VARS = ['error_return_url', 'success_return_url', '_rx_ajax_compat', '_rx_csrf_token', 'ruleset', 'captchaType', 'use_editor', 'use_html'];
public const STATUS_LIST = ['APPROVED', 'DENIED', 'UNAUTHED', 'SUSPENDED', 'DELETED'];
/**
* constructor
@ -147,6 +148,10 @@ class Member extends ModuleObject
if(!$oDB->isColumnExists("member", "last_login_ipaddress")) return true;
if(!$oDB->isIndexExists("member","idx_last_login_ipaddress")) return true;
// Add column for status
if(!$oDB->isColumnExists("member", "status")) return true;
if(!$oDB->isIndexExists("member", "idx_status")) return true;
// Add column for list order
if(!$oDB->isColumnExists("member", "list_order")) return true;
if(!$oDB->isIndexExists("member","idx_list_order")) return true;
@ -168,6 +173,13 @@ class Member extends ModuleObject
if(!$oDB->isColumnExists('member_devices', 'device_token_type')) return true;
if(!$oDB->isColumnExists('member_devices', 'last_active_date')) return true;
// Update status column
$output = executeQuery('member.getDeniedAndStatus');
if ($output->data->count)
{
return true;
}
// Check mid
$config = ModuleModel::getModuleConfig('member');
if (empty($config->mid))
@ -317,6 +329,16 @@ class Member extends ModuleObject
$oDB->addIndex("member","idx_last_login_ipaddress", array("last_login_ipaddress"));
}
// Add column for status
if(!$oDB->isColumnExists("member", "status"))
{
$oDB->addColumn("member", "status", "varchar", 20, 'APPROVED', true, 'denied');
}
if(!$oDB->isIndexExists("member", "idx_status"))
{
$oDB->addIndex("member", "idx_status", array("status"));
}
// Add column for list order
if(!$oDB->isColumnExists("member", "list_order"))
{
@ -375,6 +397,37 @@ class Member extends ModuleObject
$oDB->query("UPDATE member_devices SET last_active_date = regdate WHERE last_active_date = ''");
}
// Update status column
$output = executeQuery('member.getDeniedAndStatus');
if ($output->data->count)
{
$oDB->begin();
$result = $oDB->query("UPDATE `member` SET `status` = 'DENIED' WHERE `denied` = 'Y'");
if ($result)
{
$result = $oDB->query("UPDATE `member` AS `m` " .
"JOIN `member_auth_mail` AS `a` ON `m`.`member_srl` = `a`.`member_srl` " .
"SET `m`.`status` = 'UNAUTHED' WHERE `m`.`status` = 'DENIED' " .
"AND `a`.`is_register` = 'Y'");
if ($result)
{
$oDB->commit();
}
else
{
var_dump($result);
var_dump(Rhymix\Framework\Debug::getErrors());
$oDB->rollback();
exit;
}
}
else
{
$oDB->rollback();
}
}
// Get module config
$config = ModuleModel::getModuleConfig('member') ?: new stdClass;
$changed = false;

View file

@ -766,7 +766,11 @@ class MemberController extends Member
$args->extra_vars = serialize($extra_vars);
// Set the user state as "denied" when using mail authentication
if($config->enable_confirm == 'Y') $args->denied = 'Y';
if($config->enable_confirm == 'Y')
{
$args->denied = 'Y';
$args->status = 'UNAUTHED';
}
// remove whitespace
$checkInfos = array('user_id', 'user_name', 'nick_name', 'email_address');
@ -1025,7 +1029,7 @@ class MemberController extends Member
// Get existing extra vars
$output = executeQuery('member.getMemberInfoByMemberSrl', ['member_srl' => $args->member_srl], ['extra_vars']);
$extra_vars = ($output->data && $output->data->extra_vars) ? unserialize($output->data->extra_vars) : new stdClass;
foreach($this->nouse_extra_vars as $key)
foreach(self::NOUSE_EXTRA_VARS as $key)
{
unset($extra_vars->$key);
}
@ -1772,16 +1776,21 @@ class MemberController extends Member
$is_register = $output->data->is_register;
// If credentials are correct, change the password to a new one
$args = new stdClass;
$args->member_srl = $member_srl;
if($is_register === 'Y')
{
$args->denied = 'N';
$args->status = 'APPROVED';
$query_id = 'member.updateMemberStatus';
}
else
{
$args->password = MemberModel::hashPassword($output->data->new_password);
$query_id = 'member.updateMemberPassword';
}
$output = executeQuery('member.updateMemberPassword', $args);
$output = executeQuery($query_id, $args);
if(!$output->toBool())
{
return $output;
@ -1832,7 +1841,7 @@ class MemberController extends Member
{
throw new Rhymix\Framework\Exception('msg_not_exists_member');
}
if($member_info->denied !== 'Y')
if($member_info->status !== 'UNAUTHED')
{
throw new Rhymix\Framework\Exception('msg_activation_not_needed');
}
@ -2334,17 +2343,17 @@ class MemberController extends Member
}
// If denied == 'Y', notify
if($member_info->denied == 'Y')
if($member_info->denied === 'Y')
{
$args->member_srl = $member_info->member_srl;
$output = executeQuery('member.chkAuthMail', $args);
if ($output->toBool() && $output->data->count)
if ($member_info->status === 'UNAUTHED')
{
return new BaseObject(-1, sprintf(lang('msg_user_not_confirmed'), $member_info->email_address));
}
$refused_reason = $member_info->refused_reason ? ('<br>' . lang('refused_reason') . ': ' . $member_info->refused_reason) : '';
return new BaseObject(-1, lang('msg_user_denied') . $refused_reason);
else
{
$refused_reason = $member_info->refused_reason ? ('<br>' . lang('refused_reason') . ': ' . $member_info->refused_reason) : '';
return new BaseObject(-1, lang('msg_user_denied') . $refused_reason);
}
}
// Notify if user is limited
@ -2744,10 +2753,16 @@ class MemberController extends Member
}
}
// Set status
if (!isset($args->status))
{
$args->status = ($args->denied === 'Y') ? 'UNAUTHED' : 'APPROVED';
}
// Insert data into the DB
$args->list_order = -1 * $args->member_srl;
$oDB = &DB::getInstance();
$oDB = DB::getInstance();
$oDB->begin();
$output = executeQuery('member.insertMember', $args);
@ -2855,6 +2870,7 @@ class MemberController extends Member
if($is_admin == false)
{
unset($args->denied);
unset($args->status);
}
if($logged_info->member_srl != $args->member_srl && $is_admin == false)
{
@ -3703,7 +3719,8 @@ class MemberController extends Member
$args->email_address = $member_info->email_address;
$args->user_id = $member_info->user_id;
$args->nick_name = $member_info->nick_name;
$args->denied = "Y";
$args->denied = 'Y';
$args->status = 'DENIED';
$args->description = trim(vsprintf("%s\n%s [%s %s]\ninfo: %s\ndocuments: %d\ncomments: %d]", [
trim($member_info->description),
lang('cmd_spammer'),

View file

@ -0,0 +1,12 @@
<query id="getDeniedAndStatus" action="select">
<tables>
<table name="member" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="equal" column="denied" default="Y" />
<condition operation="equal" column="status" default="APPROVED" />
</conditions>
</query>

View file

@ -8,6 +8,7 @@
<conditions>
<condition operation="equal" column="is_admin" var="is_admin" />
<condition operation="equal" column="denied" var="is_denied" pipe="and" />
<condition operation="equal" column="status" var="status" pipe="and" />
<condition operation="in" column="member_srl" var="member_srls" pipe="and" />
<group pipe="and">
<condition operation="like" column="user_id" var="s_user_id" />

View file

@ -11,6 +11,7 @@
<condition operation="in" column="mgm.group_srl" var="selected_group_srl" notnull="notnull" />
<condition operation="equal" column="member.is_admin" var="is_admin" />
<condition operation="equal" column="member.denied" var="is_denied" pipe="and" />
<condition operation="equal" column="member.status" var="status" pipe="and" />
<condition operation="in" column="member.member_srl" var="member_srls" pipe="and" />
<group pipe="and">
<condition operation="like" column="member.user_id" var="s_user_id" />

View file

@ -21,14 +21,15 @@
<column name="birthday" var="birthday" />
<column name="allow_mailing" var="allow_mailing" default="Y" />
<column name="allow_message" var="allow_message" default="Y" />
<column name="is_admin" var="is_admin" default="N" />
<column name="denied" var="denied" default="N" />
<column name="status" var="status" default="APPROVED" />
<column name="regdate" var="regdate" default="curdate()" />
<column name="ipaddress" var="ipaddress" default="ipaddress()" />
<column name="last_login" var="last_login" default="curdate()" />
<column name="last_login_ipaddress" var="last_login_ipaddress" default="ipaddress()" />
<column name="change_password_date" var="change_password_date" default="curdate()" />
<column name="limit_date" var="limit_date" />
<column name="is_admin" var="is_admin" default="N" />
<column name="description" var="description" />
<column name="extra_vars" var="extra_vars" />
<column name="list_order" var="list_order" />

View file

@ -3,16 +3,16 @@
<table name="member" />
</tables>
<columns>
<column name="password" var="password" notnull="notnull" />
<column name="user_name" var="user_name" notnull="notnull" minlength="1" maxlength="40" />
<column name="nick_name" var="nick_name" notnull="notnull" minlength="1" maxlength="40" />
<column name="user_id" var="user_id" notnull="notnull" />
<column name="password" var="password" notnull="notnull" />
<column name="email_address" var="email_address" notnull="notnull" />
<column name="email_id" var="email_id" />
<column name="email_host" var="email_host" />
<column name="phone_number" var="phone_number" />
<column name="phone_country" var="phone_country" />
<column name="phone_type" var="phone_type" />
<column name="user_name" var="user_name" notnull="notnull" minlength="1" maxlength="40" />
<column name="nick_name" var="nick_name" notnull="notnull" minlength="1" maxlength="40" />
<column name="find_account_question" var="find_account_question" />
<column name="find_account_answer" var="find_account_answer" default="" />
<column name="homepage" var="homepage" default="" />
@ -20,9 +20,10 @@
<column name="birthday" var="birthday" />
<column name="allow_mailing" var="allow_mailing" default="Y" />
<column name="allow_message" var="allow_message" />
<column name="denied" var="denied" />
<column name="limit_date" var="limit_date" />
<column name="is_admin" var="is_admin" />
<column name="denied" var="denied" />
<column name="status" var="status" />
<column name="limit_date" var="limit_date" />
<column name="description" var="description" />
<column name="extra_vars" var="extra_vars" />
</columns>

View file

@ -1,9 +1,10 @@
<query id="updatememberDeniedInfo" action="update">
<query id="updateMemberDeniedInfo" action="update">
<tables>
<table name="member" />
</tables>
<columns>
<column name="denied" var="denied" notnull="notnull" />
<column name="status" var="status" notnull="notnull" />
</columns>
<conditions>
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" filter="number" />

View file

@ -4,7 +4,7 @@
</tables>
<columns>
<column name="password" var="password" />
<column name="denied" var="denied" />
<column name="change_password_date" var="change_password_date" default="curdate()" />
</columns>
<conditions>
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" filter="number" />

View file

@ -0,0 +1,12 @@
<query id="updateMemberStatus" action="update">
<tables>
<table name="member" />
</tables>
<columns>
<column name="denied" var="denied" />
<column name="status" var="status" notnull="notnull" />
</columns>
<conditions>
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" filter="number" />
</conditions>
</query>

View file

@ -1,31 +1,32 @@
<table name="member">
<column name="member_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" />
<column name="user_id" type="varchar" size="80" notnull="notnull" unique="unique_user_id" />
<column name="password" type="varchar" size="250" notnull="notnull" />
<column name="email_address" type="varchar" size="80" notnull="notnull" unique="unique_email_address" />
<column name="email_id" type="varchar" size="80" notnull="notnull" />
<column name="email_host" type="varchar" size="80" index="idx_email_host" />
<column name="member_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" />
<column name="user_id" type="varchar" size="80" notnull="notnull" unique="unique_user_id" />
<column name="password" type="varchar" size="250" notnull="notnull" />
<column name="email_address" type="varchar" size="80" notnull="notnull" unique="unique_email_address" />
<column name="email_id" type="varchar" size="80" notnull="notnull" />
<column name="email_host" type="varchar" size="80" index="idx_email_host" />
<column name="phone_number" type="varchar" size="80" index="idx_phone_number" />
<column name="phone_country" type="varchar" size="10" index="idx_phone_country" />
<column name="phone_type" type="varchar" size="10" index="idx_phone_type" />
<column name="user_name" type="varchar" size="40" notnull="notnull" />
<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" />
<column name="blog" type="varchar" size="250" />
<column name="birthday" type="char" size="8" />
<column name="allow_mailing" type="char" size="1" default="Y" notnull="notnull" index="idx_allow_mailing" />
<column name="allow_message" type="char" size="1" default="Y" notnull="notnull" />
<column name="denied" type="char" size="1" default="N" index="idx_is_denied" />
<column name="regdate" type="date" index="idx_regdate" />
<column name="user_name" type="varchar" size="40" notnull="notnull" />
<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" />
<column name="blog" type="varchar" size="250" />
<column name="birthday" type="char" size="8" />
<column name="allow_mailing" type="char" size="1" notnull="notnull" default="Y" index="idx_allow_mailing" />
<column name="allow_message" type="char" size="1" notnull="notnull" default="Y" />
<column name="is_admin" type="char" size="1" notnull="notnull" default="N" index="idx_is_admin" />
<column name="denied" type="char" size="1" notnull="notnull" default="N" index="idx_is_denied" />
<column name="status" type="varchar" size="20" notnull="notnull" default="APPROVED" index="idx_status" />
<column name="regdate" type="date" index="idx_regdate" />
<column name="ipaddress" type="varchar" size="60" index="idx_ipaddress" />
<column name="last_login" type="date" index="idx_last_login" />
<column name="last_login" type="date" index="idx_last_login" />
<column name="last_login_ipaddress" type="varchar" size="60" index="idx_last_login_ipaddress" />
<column name="limit_date" type="date" />
<column name="change_password_date" type="date" />
<column name="is_admin" type="char" size="1" default="N" index="idx_is_admin" />
<column name="description" type="text" />
<column name="extra_vars" type="text" />
<column name="list_order" type="number" size="11" notnull="notnull" index="idx_list_order" />
<column name="change_password_date" type="date" />
<column name="limit_date" type="date" />
<column name="description" type="text" />
<column name="extra_vars" type="text" />
<column name="list_order" type="number" size="11" notnull="notnull" index="idx_list_order" />
</table>

View file

@ -72,11 +72,9 @@
<div class="x_control-group" cond="$member_srl">
<label class="x_control-label">{$lang->status}</label>
<div class="x_controls">
<label class="x_inline" for="appoval"><input type="radio" name="denied" id="appoval" value="N" checked="checked"|cond="$member_info->denied == 'N'" disabled="disabled"|cond="$member_info->member_srl == $logged_info->member_srl" /> {$lang->approval}</label>
<label class="x_inline" for="deny"><input type="radio" name="denied" id="deny" value="Y" checked="checked"|cond="$member_info->denied == 'Y' && !$member_unauthenticated" disabled="disabled"|cond="$member_unauthenticated || $member_info->member_srl == $logged_info->member_srl" /> {$lang->denied}</label>
<!--@if($member_unauthenticated)-->
<label class="x_inline" for="deny2"><input type="radio" name="denied" id="deny2" value="Y" checked="checked"|cond="($member_info->denied == 'Y' && $member_unauthenticated) || $member_info->member_srl == $logged_info->member_srl" /> {$lang->member_unauthenticated}</label>
<!--@endif-->
<label class="x_inline" for="status_approved"><input type="radio" name="status" id="status_approved" value="APPROVED" checked="checked"|cond="$member_info->status == 'APPROVED' || $member_info->denied == 'Y' || $member_info->member_srl == $logged_info->member_srl" /> {$lang->approval}</label>
<label class="x_inline" for="status_denied"><input type="radio" name="status" id="status_denied" value="DENIED" checked="checked"|cond="$member_info->status == 'DENIED' && $member_info->member_srl != $logged_info->member_srl" disabled="disabled"|cond="$member_info->member_srl == $logged_info->member_srl" /> {$lang->denied}</label>
<label class="x_inline" for="status_unauthed"><input type="radio" name="status" id="status_unauthed" value="UNAUTHED" checked="checked"|cond="$member_info->status == 'UNAUTHED' && $member_info->member_srl != $logged_info->member_srl" disabled="disabled"|cond="$member_info->member_srl == $logged_info->member_srl" /> {$lang->member_unauthenticated}</label>
</div>
</div>
<div class="x_control-group div_refused_reason">
@ -198,7 +196,7 @@
refused_reason_division.slideUp(200);
}
});
if(!$('#until').val())
{
$('.div_limited_reason').hide();

View file

@ -16,11 +16,13 @@
<caption>
<a href="{getUrl('filter_type', '', 'page', '')}" class="active"|cond="!$filter_type">{$lang->cmd_show_all_member}<block cond="!$filter_type">({$total_count})</block></a>
<i>|</i>
<a href="{getUrl('filter_type', 'super_admin', 'page', '')}" class="active"|cond="$filter_type=='super_admin'">{$lang->cmd_show_super_admin_member}<block cond="$filter_type=='super_admin'">({$total_count})</block></a>
<a href="{getUrl('filter_type', 'admin', 'page', '')}" class="active"|cond="$filter_type=='admin'">{$lang->cmd_show_super_admin_member}<block cond="$filter_type=='admin'">({$total_count})</block></a>
<i>|</i>
<a href="{getUrl('filter_type', 'enable', 'page', '')}" class="active"|cond="$filter_type=='enable'">{$lang->approval}<block cond="$filter_type=='enable'">({$total_count})</block></a>
<a href="{getUrl('filter_type', 'approved', 'page', '')}" class="active"|cond="$filter_type=='approved'">{$lang->approval}<block cond="$filter_type=='approved'">({$total_count})</block></a>
<i>|</i>
<a href="{getUrl('filter_type', 'disable', 'page', '')}" class="active"|cond="$filter_type=='disable'">{$lang->denied}<block cond="$filter_type=='disable'">({$total_count})</block></a>
<a href="{getUrl('filter_type', 'denied', 'page', '')}" class="active"|cond="$filter_type=='denied'">{$lang->denied}<block cond="$filter_type=='denied'">({$total_count})</block></a>
<i>|</i>
<a href="{getUrl('filter_type', 'unauthed', 'page', '')}" class="active"|cond="$filter_type=='unauthed'">{$lang->member_unauthenticated}<block cond="$filter_type=='unauthed'">({$total_count})</block></a>
<div class="x_pull-right x_btn-group">
<a class="x_btn x_btn-inverse" href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminInsert')}">{$lang->msg_new_member}</a>
<a href="#listManager" data-value="modify" class="modalAnchor _member x_btn">{$lang->modify}</a>
@ -76,16 +78,16 @@
<!--@end-->
</td>
<td class="nowr">
<!--@if($member_info['denied']=='Y')-->
<!--@if(isset($new_member_check_list[$member_info['member_srl']]) && $new_member_check_list[$member_info['member_srl']])-->
<span style="color:red;">{$lang->member_unauthenticated}</span>
<!--@else-->
<span style="color:red;">{$lang->denied}</span>
<!--@endif-->
<!--@if($member_info['status'] == 'APPROVED')-->
{$lang->approval}
<!--@elseif($member_info['status'] == 'DENIED')-->
<span style="color:red;">{$lang->denied}</span>
<!--@elseif($member_info['status'] == 'UNAUTHED')-->
<span style="color:red;">{$lang->member_unauthenticated}</span>
<!--@elseif($member_info['limit_date'] && substr($member_info['limit_date'], 0, 8) >= date('Ymd'))-->
<span style="color:red;">{$lang->member_limited}</span>
<!--@else-->
{$lang->approval}
<span style="color:red;">{$member_info['status']}</span>
<!--@end-->
</td>
<td class="nowr rx_detail_marks" title="{zdate($member_info['regdate'], 'Y-m-d H:i:s')}<!--@if($member_info['ipaddress'])--> ({$member_info['ipaddress']})<!--@end-->">
@ -119,7 +121,7 @@
<input cond="$search_keyword" type="hidden" name="search_keyword" value="{$search_keyword}" />
<ul>
<li class="x_disabled"|cond="!$page || $page == 1"><a href="{getUrl('page', '')}">&laquo; {$lang->first_page}</a></li>
<block cond="$page_navigation->first_page != 1 && $page_navigation->first_page + $page_navigation->page_count > $page_navigation->last_page - 1 && $page_navigation->page_count != $page_navigation->total_page">
<li>
<a href="#goTo" data-toggle title="{$lang->cmd_go_to_page}">&hellip;</a>
@ -129,12 +131,12 @@
</span>
</li>
</block>
<!--@while($page_no = $page_navigation->getNextPage())-->
{@$last_page = $page_no}
<li class="x_active"|cond="$page_no == $page"><a href="{getUrl('page', $page_no)}">{$page_no}</a></li>
<!--@end-->
<block cond="$last_page != $page_navigation->last_page && $last_page + 1 != $page_navigation->last_page">
<li>
<a href="#goTo" data-toggle title="{$lang->cmd_go_to_page}">&hellip;</a>
@ -143,9 +145,9 @@
<button type="submit" class="x_add-on">Go</button>
</span>
</li>
</block>
<li class="x_disabled"|cond="$page == $page_navigation->last_page"><a href="{getUrl('page', $page_navigation->last_page)}" title="{$page_navigation->last_page}">{$lang->last_page} &raquo;</a></li>
</ul>
</form>