diff --git a/modules/member/member.class.php b/modules/member/member.class.php
index 840963d6a..0f47cb905 100644
--- a/modules/member/member.class.php
+++ b/modules/member/member.class.php
@@ -170,6 +170,12 @@ class Member extends ModuleObject
if(!$oDB->isColumnExists('member_devices', 'device_token_type')) return true;
if(!$oDB->isColumnExists('member_devices', 'last_active_date')) return true;
+ // Check member_auth_mail table
+ if(!$oDB->isColumnExists('member_auth_mail', 'auth_type')) return true;
+ if(!$oDB->isIndexExists('member_auth_mail', 'unique_auth_key')) return true;
+ if(!$oDB->isIndexExists('member_auth_mail', 'idx_member_srl')) return true;
+ if($oDB->isIndexExists('member_auth_mail', 'unique_key')) return true;
+
// Update status column
$output = executeQuery('member.getDeniedAndStatus');
if ($output->data->count)
@@ -383,6 +389,25 @@ class Member extends ModuleObject
$oDB->query("UPDATE member_devices SET last_active_date = regdate WHERE last_active_date = ''");
}
+ // Check member_auth_mail table
+ if(!$oDB->isColumnExists('member_auth_mail', 'auth_type'))
+ {
+ $oDB->addColumn('member_auth_mail', 'auth_type', 'varchar', '20', 'password_v1', true, 'new_password');
+ $oDB->query("UPDATE member_auth_mail SET auth_type = 'signup' WHERE is_register = 'Y'");
+ }
+ if(!$oDB->isIndexExists('member_auth_mail', 'unique_auth_key'))
+ {
+ $oDB->addIndex('member_auth_mail', 'unique_auth_key', ['auth_key'], true);
+ }
+ if(!$oDB->isIndexExists('member_auth_mail', 'idx_member_srl'))
+ {
+ $oDB->addIndex('member_auth_mail', 'idx_member_srl', ['member_srl']);
+ }
+ if($oDB->isIndexExists('member_auth_mail', 'unique_key'))
+ {
+ $oDB->dropIndex('member_auth_mail', 'unique_key');
+ }
+
// Update status column
$output = executeQuery('member.getDeniedAndStatus');
if ($output->data->count)
diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php
index f9020bc8c..fd1c37929 100644
--- a/modules/member/member.controller.php
+++ b/modules/member/member.controller.php
@@ -1670,6 +1670,7 @@ class MemberController extends Member
$args->member_srl = $member_info->member_srl;
$args->new_password = Rhymix\Framework\Password::getRandomPassword(8);
$args->auth_key = Rhymix\Framework\Security::getRandom(40, 'hex');
+ $args->auth_type = 'password_v1';
$args->is_register = 'N';
$output = executeQuery('member.insertAuthMail', $args);
@@ -2858,6 +2859,7 @@ class MemberController extends Member
$auth_args->member_srl = $args->member_srl;
$auth_args->new_password = $args->password;
$auth_args->auth_key = Rhymix\Framework\Security::getRandom(40, 'hex');
+ $args->auth_type = 'signup';
$auth_args->is_register = 'Y';
$output = executeQuery('member.insertAuthMail', $auth_args);
@@ -3435,6 +3437,8 @@ class MemberController extends Member
$auth_args->member_srl = $member_info->member_srl;
$auth_args->auth_key = Rhymix\Framework\Security::getRandom(40, 'hex');
$auth_args->new_password = 'XE_change_emaill_address';
+ $auth_args->auth_type = 'change_email';
+ $auth_args->is_register = 'N';
$output = executeQuery('member.insertAuthMail', $auth_args);
if(!$output->toBool())
@@ -3499,7 +3503,7 @@ class MemberController extends Member
$output = executeQuery('member.updateMemberEmailAddress', $args);
if(!$output->toBool()) return $output;
- // Remove all values having the member_srl and new_password equal to 'XE_change_emaill_address' from authentication table
+ // Remove all values having the member_srl and auth_type = change_email
executeQuery('member.deleteAuthChangeEmailAddress',$args);
self::clearMemberCache($args->member_srl);
diff --git a/modules/member/queries/deleteAuthChangeEmailAddress.xml b/modules/member/queries/deleteAuthChangeEmailAddress.xml
index 48d35b132..05d788c46 100644
--- a/modules/member/queries/deleteAuthChangeEmailAddress.xml
+++ b/modules/member/queries/deleteAuthChangeEmailAddress.xml
@@ -4,6 +4,9 @@