Merge branch 'rhymix:master' into master

This commit is contained in:
Lastorder 2026-04-01 12:04:22 +09:00 committed by GitHub
commit dd8fc890f4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
39 changed files with 396 additions and 220 deletions

View file

@ -40,10 +40,10 @@
<action name="procMemberInsert" type="controller" route="signup" />
<action name="procMemberCheckValue" type="controller" />
<action name="procMemberLogin" type="controller" route="login" />
<action name="procMemberFindAccount" type="controller" method="GET|POST" ruleset="findAccount" />
<action name="procMemberFindAccountByQuestion" type="controller" method="GET|POST" />
<action name="procMemberFindAccount" type="controller" ruleset="findAccount" />
<action name="procMemberFindAccountByQuestion" type="controller" />
<action name="procMemberAuthAccount" type="controller" method="GET|POST" route="auth/$member_srl/$auth_key" />
<action name="procMemberAuthEmailAddress" type="controller" method="GET|POST" />
<action name="procMemberAuthEmailAddress" type="controller" method="GET|POST" route="authEmail/$member_srl/$auth_key" />
<action name="procMemberResendAuthMail" type="controller" ruleset="resendAuthMail" />
<action name="procMemberSendVerificationSMS" type="controller" />
<action name="procMemberConfirmVerificationSMS" type="controller" />

View file

@ -944,6 +944,8 @@ class MemberAdminController extends Member
if(!$output->toBool()) return $output;
// memberConfig update
$config = MemberModel::getMemberConfig();
$signupItem = new stdClass();
$signupItem->name = $args->column_name;
$signupItem->title = $args->column_title;
@ -954,9 +956,6 @@ class MemberAdminController extends Member
$signupItem->description = $args->description;
$signupItem->isPublic = 'Y';
$oMemberModel = getModel('member');
$config = $oMemberModel->getMemberConfig();
if($isInsert)
{
$config->signupForm[] = $signupItem;
@ -967,6 +966,7 @@ class MemberAdminController extends Member
{
if($val->member_join_form_srl == $signupItem->member_join_form_srl)
{
$signupItem->isPublic = $val->isPublic ?? 'Y';
$config->signupForm[$key] = $signupItem;
}
}

View file

@ -44,7 +44,7 @@ class MemberAdminModel extends Member
$args = new stdClass();
$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');
$args->selected_group_srl = intval(Context::get('selected_group_srl')) ?: null;
$filter = Context::get('filter_type');
switch($filter)
@ -128,21 +128,11 @@ class MemberAdminModel extends Member
}
// Change the query id if selected_group_srl exists (for table join)
$sort_order = Context::get('sort_order');
$sort_order = Context::get('sort_order') === 'desc' ? 'desc' : 'asc';
$sort_index = Context::get('sort_index');
if(!$sort_index || !in_array($sort_index, ['user_id', 'email_address', 'phone_number', 'user_name', 'nick_name', 'regdate', 'last_login']))
{
$sort_index = "list_order";
}
if(!$sort_order)
{
$sort_order = 'asc';
}
if($sort_order != 'asc')
{
$sort_order = 'desc';
$sort_index = 'list_order';
}
if($args->selected_group_srl)
@ -158,13 +148,13 @@ class MemberAdminModel extends Member
$args->sort_order = $sort_order;
Context::set('sort_order', $sort_order);
// Other variables
$args->page = Context::get('page');
$args->list_count = 40;
$args->page_count = 10;
$output = executeQuery($query_id, $args);
return $output;
// Other variables
$args->list_count = intval(Context::get('list_count')) ?: 30;
$args->page_count = 10;
$args->page = max(1, intval(Context::get('page')));
return executeQueryArray($query_id, $args);
}
/**

View file

@ -1872,7 +1872,7 @@ class MemberController extends Member
$tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin);
if(!is_dir($tpl_path)) $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
$find_url = getFullUrl ('', 'module', 'member', 'act', 'procMemberAuthAccount', 'member_srl', $member_info->member_srl, 'auth_key', $args->auth_key);
$find_url = self::generateSafeAuthUrl('procMemberAuthAccount', $member_info->member_srl, $args->auth_key);
Context::set('find_url', $find_url);
$oTemplate = new Rhymix\Framework\Template($tpl_path, 'find_member_account_mail');
@ -2104,7 +2104,7 @@ class MemberController extends Member
$tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin);
if(!is_dir($tpl_path)) $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
$auth_url = getFullUrl('','module','member','act','procMemberAuthAccount','member_srl',$member_info->member_srl, 'auth_key',$auth_info->auth_key);
$auth_url = self::generateSafeAuthUrl('procMemberAuthAccount', $member_info->member_srl, $auth_info->auth_key);
Context::set('auth_url', $auth_url);
$oTemplate = new Rhymix\Framework\Template($tpl_path, 'confirm_member_account_mail');
@ -2161,7 +2161,7 @@ class MemberController extends Member
$tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin);
if(!is_dir($tpl_path)) $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
$auth_url = getFullUrl('','module','member','act','procMemberAuthAccount','member_srl',$member_info->member_srl, 'auth_key',$auth_args->auth_key);
$auth_url = self::generateSafeAuthUrl('procMemberAuthAccount', $member_info->member_srl, $auth_args->auth_key);
Context::set('auth_url', $auth_url);
$oTemplate = new Rhymix\Framework\Template($tpl_path, 'confirm_member_account_mail');
@ -3721,7 +3721,7 @@ class MemberController extends Member
Context::set('memberInfo', $memberInfo);
Context::set('newEmail', $newEmail);
$auth_url = getFullUrl('','module','member','act','procMemberAuthEmailAddress','member_srl',$member_info->member_srl, 'auth_key',$auth_args->auth_key);
$auth_url = self::generateSafeAuthUrl('procMemberAuthEmailAddress', $member_info->member_srl, $auth_args->auth_key);
Context::set('auth_url', $auth_url);
$oTemplate = new Rhymix\Framework\Template($tpl_path, 'confirm_member_new_email');
@ -4054,6 +4054,43 @@ class MemberController extends Member
return new BaseObject(0);
}
/**
* Generate a URL pointing to the main page of a properly configured domain.
*
* @return string
*/
public static function generateSafeLink(string $target = '_blank'): string
{
$domain_info = ModuleModel::getSiteInfoByDomain($_SERVER['HTTP_HOST']) ?: ModuleModel::getDefaultDomainInfo();
$base_url = Context::getRequestUri(0, $domain_info->domain);
$title = Context::replaceUserLang($domain_info->settings->title ?? '');
if ($title === '')
{
$title = $base_url;
}
return sprintf('<a href="%s" target="%s">%s</a>', escape($base_url, false), escape($target, false), escape($title, false));
}
/**
* Generate a URL for account auth.
*
* @param string $act
* @param int $member_srl
* @param string $auth_key
* @return string
*/
public static function generateSafeAuthUrl(string $act, int $member_srl, string $auth_key): string
{
$domain_info = ModuleModel::getSiteInfoByDomain($_SERVER['HTTP_HOST']) ?: ModuleModel::getDefaultDomainInfo();
$base_url = Context::getRequestUri(0, $domain_info->domain);
return $base_url . substr(getUrl([
'module' => 'member',
'act' => $act,
'member_srl' => $member_srl,
'auth_key' => $auth_key,
]), strlen(\RX_BASEURL));
}
/**
* Denied user login and write description
*

View file

@ -1,7 +1,7 @@
{$lang->msg_confirm_account_info}<br />
<hr noshade="noshade" />
<ul>
<li>Site : <a href="{getUrl()}" target="_blank">{getUrl()}</a></li>
<li>{$lang->site} : {MemberController::generateSafeLink()}</li>
<li loop="$memberInfo=>$name,$value" cond="!is_object($value)&&!is_array($value)">{$name} : {$value}</li>
</ul>
<hr noshade="noshade" />

View file

@ -1,7 +1,7 @@
{$lang->msg_confirm_account_info}<br />
<hr noshade="noshade" />
<ul>
<li>Site : <a href="{getUrl()}" target="_blank">{getUrl()}</a></li>
<li>{$lang->site} : {MemberController::generateSafeLink()}</li>
<li loop="$memberInfo=>$name,$value" cond="!is_object($value)&&!is_array($value)">{$name} : {$value}</li>
</ul>
<hr noshade="noshade" />

View file

@ -1,7 +1,7 @@
{$lang->msg_find_account_info}<br />
<hr noshade="noshade" />
<ul>
<li>{$lang->site} : <a href="{getUrl()}" target="_blank">{getUrl()}</a></li>
<li>{$lang->site} : {MemberController::generateSafeLink()}</li>
<!--@if($memberInfo[$lang->user_id])-->
<li>{$lang->user_id} : {$memberInfo[$lang->user_id]}</li>
<!--@elseif($memberInfo[$lang->email_address])-->