Don't require user_id if member is inserted through other module

https://xetown.com/tips/1516822
This commit is contained in:
Kijin Sung 2021-01-29 15:52:22 +09:00
parent 4377c06d6b
commit 9228d3b8a9

View file

@ -2633,10 +2633,15 @@ class memberController extends member
$args->member_srl = getNextSequence(); $args->member_srl = getNextSequence();
$args->list_order = -1 * $args->member_srl; $args->list_order = -1 * $args->member_srl;
// Execute insert or update depending on the value of member_srl // Set user_id if empty. Otherwise convert to lowercase.
if(!$args->user_id) $args->user_id = 't'.$args->member_srl; if (trim($args->user_id ?? '') === '')
// Enter the user's identity changed to lowercase {
else $args->user_id = strtolower($args->user_id); $args->user_id = 't' . $args->member_srl;
}
else
{
$args->user_id = strtolower($args->user_id);
}
if(!$args->user_name) $args->user_name = $args->member_srl; if(!$args->user_name) $args->user_name = $args->member_srl;
if(!$args->nick_name) $args->nick_name = $args->member_srl; if(!$args->nick_name) $args->nick_name = $args->member_srl;
@ -2812,9 +2817,6 @@ class memberController extends member
// Insert data into the DB // Insert data into the DB
$args->list_order = -1 * $args->member_srl; $args->list_order = -1 * $args->member_srl;
if(!$args->user_id) $args->user_id = 't'.$args->member_srl;
if(!$args->user_name) $args->user_name = $args->member_srl;
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
$oDB->begin(); $oDB->begin();
@ -3830,6 +3832,7 @@ class memberController extends member
*/ */
protected function _checkSignUpFields($config, $args, $mode = 'insert') protected function _checkSignUpFields($config, $args, $mode = 'insert')
{ {
$not_required_if_indirect_insert = ['user_id'];
$not_required_in_update = ['password']; $not_required_in_update = ['password'];
foreach($config->signupForm as $formInfo) foreach($config->signupForm as $formInfo)
@ -3840,9 +3843,16 @@ class memberController extends member
{ {
// pass // pass
} }
elseif (!isset($args->{$formInfo->name}) || !$args->{$formInfo->name}) elseif (!isset($args->{$formInfo->name}) || trim($args->{$formInfo->name} ?? '') === '')
{ {
return new BaseObject(-1, sprintf(lang('common.filter.isnull'), $formInfo->title)); if (in_array($formInfo->name, $not_required_if_indirect_insert) && !preg_match('/^procMember.+/i', Context::get('act')))
{
// pass
}
else
{
return new BaseObject(-1, sprintf(lang('common.filter.isnull'), $formInfo->title));
}
} }
} }
if ($formInfo->name === 'email_address' && $args->{$formInfo->name} && !Mail::isVaildMailAddress($args->{$formInfo->name})) if ($formInfo->name === 'email_address' && $args->{$formInfo->name} && !Mail::isVaildMailAddress($args->{$formInfo->name}))