新增默认积分和默认组别配置

新增是否允许批量删除会员配置
优化默认头像显示
pull/515/MERGE
Karson 2026-01-14 11:54:31 +08:00
parent e3dd067cef
commit 838a441b2a
5 changed files with 74 additions and 40 deletions

View File

@ -54,6 +54,7 @@ class User extends Backend
return json($result); return json($result);
} }
$this->assignconfig('multi_delete_user', config('fastadmin.multi_delete_user'));
return $this->view->fetch(); return $this->view->fetch();
} }
@ -93,14 +94,38 @@ class User extends Backend
if (!$this->request->isPost()) { if (!$this->request->isPost()) {
$this->error(__("Invalid parameters")); $this->error(__("Invalid parameters"));
} }
$ids = $ids ? $ids : $this->request->post("ids"); $ids = $ids ?: $this->request->post("ids");
$row = $this->model->get($ids); $ids = array_filter(explode(',', $ids));
$this->modelValidate = true; if (!(config('fastadmin.multi_delete_user') ?: false)) {
if (!$row) { if (count($ids) > 1) {
$this->error(__('No Results were found')); $this->error(__('Multi delete is not allowed'));
}
$row = $this->model->get($ids);
$this->modelValidate = true;
if (!$row) {
$this->error(__('No Results were found'));
}
$result = Auth::instance()->delete($row['id']);
$count = $result ? 1 : 0;
if ($count) {
$this->success();
}
} else {
//允许批量删除
$list = $this->model->where('id', 'in', $ids)->select();
$count = 0;
foreach ($list as $item) {
$result = Auth::instance()->delete($item['id']);
if ($result) {
$count++;
}
}
}
if ($count) {
$this->success(__('%s rows deleted succeeded, %s rows deleted failed', $count, count($ids) - $count));
} else {
$this->error(__('No rows were deleted'));
} }
Auth::instance()->delete($row['id']);
$this->success();
} }
} }

View File

@ -1,35 +1,37 @@
<?php <?php
return [ return [
'Id' => 'ID', 'Id' => 'ID',
'Group_id' => '组别ID', 'Group_id' => '组别ID',
'Username' => '用户名', 'Username' => '用户名',
'Nickname' => '昵称', 'Nickname' => '昵称',
'Password' => '密码', 'Password' => '密码',
'Salt' => '密码盐', 'Salt' => '密码盐',
'Email' => '电子邮箱', 'Email' => '电子邮箱',
'Mobile' => '手机号', 'Mobile' => '手机号',
'Avatar' => '头像', 'Avatar' => '头像',
'Level' => '等级', 'Level' => '等级',
'Gender' => '性别', 'Gender' => '性别',
'Male' => '男', 'Male' => '男',
'FeMale' => '女', 'FeMale' => '女',
'Birthday' => '生日', 'Birthday' => '生日',
'Bio' => '格言', 'Bio' => '格言',
'Score' => '积分', 'Score' => '积分',
'Successions' => '连续登录天数', 'Successions' => '连续登录天数',
'Maxsuccessions' => '最大连续登录天数', 'Maxsuccessions' => '最大连续登录天数',
'Prevtime' => '上次登录时间', 'Prevtime' => '上次登录时间',
'Logintime' => '登录时间', 'Logintime' => '登录时间',
'Loginip' => '登录IP', 'Loginip' => '登录IP',
'Loginfailure' => '失败次数', 'Loginfailure' => '失败次数',
'Joinip' => '加入IP', 'Joinip' => '加入IP',
'Jointime' => '加入时间', 'Jointime' => '加入时间',
'Createtime' => '创建时间', 'Createtime' => '创建时间',
'Updatetime' => '更新时间', 'Updatetime' => '更新时间',
'Token' => 'Token', 'Token' => 'Token',
'Status' => '状态', 'Status' => '状态',
'Username must be 3 to 30 characters' => '用户名只能由3-30位数字、字母、下划线组合', 'Username must be 3 to 30 characters' => '用户名只能由3-30位数字、字母、下划线组合',
'Password must be 6 to 30 characters' => '密码长度必须在6-30位之间不能包含空格', 'Password must be 6 to 30 characters' => '密码长度必须在6-30位之间不能包含空格',
'Leave password blank if dont want to change' => '不修改密码请留空', 'Leave password blank if dont want to change' => '不修改密码请留空',
'Multi delete is not allowed' => '不支持批量删除会员',
'%s rows deleted succeeded, %s rows deleted failed' => '操作成功,其中%s行删除成功%s行删除失败',
]; ];

View File

@ -166,12 +166,13 @@ class Auth
$time = time(); $time = time();
$data = [ $data = [
'group_id' => config('fastadmin.user_default_group') ?: 0,
'username' => $username, 'username' => $username,
'password' => $password, 'password' => $password,
'email' => $email, 'email' => $email,
'mobile' => $mobile, 'mobile' => $mobile,
'level' => 1, 'level' => 1,
'score' => 0, 'score' => config('fastadmin.user_initial_score') ?: 0,
'avatar' => '', 'avatar' => '',
]; ];
$params = array_merge($data, [ $params = array_merge($data, [

View File

@ -45,7 +45,7 @@ class User extends Model
public function getAvatarAttr($value, $data) public function getAvatarAttr($value, $data)
{ {
if (!$value) { if (!$value) {
$value = config('fastadmin.user_letter_avatar') ? letter_avatar($data['nickname']) : (config('fastadmin.user_default_avatar') ?: '/assets/img/avatar.png'); $value = config('fastadmin.user_letter_avatar') && $data && ($data['nickname'] ?? '') ? letter_avatar($data['nickname']) : (config('fastadmin.user_default_avatar') ?: '/assets/img/avatar.png');
} }
return cdnurl($value, true); return cdnurl($value, true);
} }

View File

@ -289,6 +289,10 @@ return [
'user_letter_avatar' => true, 'user_letter_avatar' => true,
//会员默认头像仅当user_letter_avatar为false时有效 //会员默认头像仅当user_letter_avatar为false时有效
'user_default_avatar' => '/assets/img/avatar.png', 'user_default_avatar' => '/assets/img/avatar.png',
//会员默认组别
'user_default_group' => 0,
//会员初始积分
'user_initial_score' => 0,
//是否启用会员等级规则,支持none/auto/up,none表示不影响等级,auto表示自动升降级,up表示只升不降 //是否启用会员等级规则,支持none/auto/up,none表示不影响等级,auto表示自动升降级,up表示只升不降
'user_level_rule' => '', 'user_level_rule' => '',
//会员等级积分字典,键名表示等级,值表示所需的积分 //会员等级积分字典,键名表示等级,值表示所需的积分
@ -311,6 +315,8 @@ return [
'multipletab' => true, 'multipletab' => true,
//是否默认展示子菜单 //是否默认展示子菜单
'show_submenu' => false, 'show_submenu' => false,
//是否开启批量删除会员
'multi_delete_user' => false,
//后台皮肤,为空时表示使用skin-black-blue //后台皮肤,为空时表示使用skin-black-blue
'adminskin' => '', 'adminskin' => '',
//后台是否启用面包屑 //后台是否启用面包屑