mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-24 12:07:23 +08:00
limit change user name interval
This commit is contained in:
@@ -86,7 +86,9 @@ class Test extends Command
|
|||||||
*/
|
*/
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
|
$time = Carbon::parse('2022-08-10');
|
||||||
|
$r = $time->diffInDays();
|
||||||
|
dd($r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -126,6 +126,10 @@ class EditSetting extends Page implements Forms\Contracts\HasForms
|
|||||||
->inline(true)
|
->inline(true)
|
||||||
->label(__('label.setting.system.change_username_card_allow_characters_outside_the_alphabets'))
|
->label(__('label.setting.system.change_username_card_allow_characters_outside_the_alphabets'))
|
||||||
,
|
,
|
||||||
|
Forms\Components\TextInput::make('system.change_username_min_interval_in_days')
|
||||||
|
->integer()
|
||||||
|
->label(__('label.setting.system.change_username_min_interval_in_days'))
|
||||||
|
,
|
||||||
])->columns(2);
|
])->columns(2);
|
||||||
|
|
||||||
$tabs = apply_filter('nexus_setting_tabs', $tabs);
|
$tabs = apply_filter('nexus_setting_tabs', $tabs);
|
||||||
|
|||||||
@@ -399,6 +399,14 @@ class UserRepository extends BaseRepository
|
|||||||
$meta = $records->get($metaKey)->first();
|
$meta = $records->get($metaKey)->first();
|
||||||
$user = User::query()->findOrFail($uid, User::$commonFields);
|
$user = User::query()->findOrFail($uid, User::$commonFields);
|
||||||
if ($metaKey == UserMeta::META_KEY_CHANGE_USERNAME) {
|
if ($metaKey == UserMeta::META_KEY_CHANGE_USERNAME) {
|
||||||
|
$changeLog = $user->usernameChangeLogs()->orderBy('id', 'desc')->first();
|
||||||
|
if ($changeLog) {
|
||||||
|
$miniDays = Setting::get('system.change_username_min_interval_in_days', 365);
|
||||||
|
if ($changeLog->created_at->diffInDays() <= $miniDays) {
|
||||||
|
$msg = nexus_trans('user.change_username_lte_min_interval', ['last_change_time' => $changeLog->created_at, 'interval' => $miniDays]);
|
||||||
|
throw new \RuntimeException($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
NexusDB::transaction(function () use ($user, $meta, $params) {
|
NexusDB::transaction(function () use ($user, $meta, $params) {
|
||||||
$this->changeUsername(
|
$this->changeUsername(
|
||||||
$user, UsernameChangeLog::CHANGE_TYPE_USER, $user, $params['username'],
|
$user, UsernameChangeLog::CHANGE_TYPE_USER, $user, $params['username'],
|
||||||
|
|||||||
@@ -26,4 +26,5 @@ return [
|
|||||||
\App\Models\User::CLASS_SYSOP => 'Sysop',
|
\App\Models\User::CLASS_SYSOP => 'Sysop',
|
||||||
\App\Models\User::CLASS_STAFF_LEADER => 'Staff Leader',
|
\App\Models\User::CLASS_STAFF_LEADER => 'Staff Leader',
|
||||||
],
|
],
|
||||||
|
'change_username_lte_min_interval' => 'Last change time: :last_change_time, unmet minimum interval: :interval days',
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ return [
|
|||||||
'system' => [
|
'system' => [
|
||||||
'tab_header' => '系统',
|
'tab_header' => '系统',
|
||||||
'change_username_card_allow_characters_outside_the_alphabets' => '改名卡是否允许英文字母外的字符',
|
'change_username_card_allow_characters_outside_the_alphabets' => '改名卡是否允许英文字母外的字符',
|
||||||
|
'change_username_min_interval_in_days' => '修改用户名最小间隔天数',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'user' => [
|
'user' => [
|
||||||
|
|||||||
@@ -26,4 +26,5 @@ return [
|
|||||||
\App\Models\User::CLASS_SYSOP => '维护开发员',
|
\App\Models\User::CLASS_SYSOP => '维护开发员',
|
||||||
\App\Models\User::CLASS_STAFF_LEADER => '主管',
|
\App\Models\User::CLASS_STAFF_LEADER => '主管',
|
||||||
],
|
],
|
||||||
|
'change_username_lte_min_interval' => '上次修改时间::last_change_time,未满足最小间隔::interval 天',
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -26,4 +26,5 @@ return [
|
|||||||
\App\Models\User::CLASS_SYSOP => '維護開發員',
|
\App\Models\User::CLASS_SYSOP => '維護開發員',
|
||||||
\App\Models\User::CLASS_STAFF_LEADER => '主管',
|
\App\Models\User::CLASS_STAFF_LEADER => '主管',
|
||||||
],
|
],
|
||||||
|
'change_username_lte_min_interval' => '上次修改時間::last_change_time,未滿足最小間隔::interval 天',
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user