From 180be3df9520fd07ab74a51c14ccf6d1df7f9e70 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sat, 5 Aug 2023 16:05:25 +0900 Subject: [PATCH] Wrap insertGroup() and updateGroup() in transactions to prevent inconsistent result when updating is_default --- modules/member/member.admin.controller.php | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index c237f0de7..a896a846b 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -1346,6 +1346,9 @@ class MemberAdminController extends Member return $trigger_output; } + $oDB = DB::getInstance(); + $oDB->begin(); + // Check the value of is_default. $args->is_default = $args->is_default ?? 'N'; if($args->is_default === 'Y') @@ -1355,7 +1358,17 @@ class MemberAdminController extends Member } $args->group_srl = !empty($args->group_srl) ? $args->group_srl : getNextSequence(); $args->list_order = $args->list_order ?? $args->group_srl; + $output = executeQuery('member.insertGroup', $args); + if ($output->toBool()) + { + $oDB->commit(); + } + else + { + $oDB->rollback(); + } + $this->_deleteMemberGroupCache(); // Call trigger (after) @@ -1384,6 +1397,9 @@ class MemberAdminController extends Member return $trigger_output; } + $oDB = DB::getInstance(); + $oDB->begin(); + // Check the value of is_default. $args->is_default = $args->is_default ?? 'N'; if($args->is_default === 'Y') @@ -1393,6 +1409,15 @@ class MemberAdminController extends Member } $output = executeQuery('member.updateGroup', $args); + if ($output->toBool()) + { + $oDB->commit(); + } + else + { + $oDB->rollback(); + } + $this->_deleteMemberGroupCache(); // Call trigger (after)