Fix #2302 add MemberController::removeMemberFromGroup() method and related trigger events

This commit is contained in:
Kijin Sung 2024-03-24 21:52:43 +09:00
parent 6a71410a5a
commit 89befa31a0

View file

@ -2203,7 +2203,7 @@ class MemberController extends Member
}
/**
* Add group_srl to member_srl
* Add member to group
*
* @param int $member_srl
* @param int $group_srl
@ -2245,6 +2245,47 @@ class MemberController extends Member
return $output;
}
/**
* Remove member from group
*
* @param int $member_srl
* @param int $group_srl
*
* @return BaseObject
*/
public static function removeMemberFromGroup(int $member_srl, int $group_srl): BaseObject
{
// Return if member does not belong to group
$args = new stdClass();
$args->member_srl = $member_srl;
$args->group_srl = $group_srl;
$output = executeQueryArray('member.getMemberGroupMember', $args);
if ($output->data && count($output->data) < 1)
{
return $output;
}
// Call trigger (before)
$trigger_output = ModuleHandler::triggerCall('member.removeMemberFromGroup', 'before', $args);
if (!$trigger_output->toBool())
{
return $trigger_output;
}
// Remove member from group
$output = executeQuery('member.deleteMemberGroupMember', $args);
if (!$output->toBool())
{
return $output;
}
// Call trigger (after)
ModuleHandler::triggerCall('member.removeMemberFromGroup', 'after', $args);
self::clearMemberCache($member_srl);
return $output;
}
/**
* Change a group of certain members
* Available only when a member has a single group