修改密码

main
Jing Li 2024-03-25 17:06:38 +08:00
parent fefebbe157
commit 7a0cc84616
3 changed files with 50 additions and 8 deletions

View File

@ -2,9 +2,11 @@
namespace App\Admin\Controllers\System; namespace App\Admin\Controllers\System;
use App\Admin\Controllers\AdminController;
use App\Admin\Requests\System\AdminUserChangePasswordRequest;
use App\Admin\Services\AdminUserService; use App\Admin\Services\AdminUserService;
use Illuminate\Support\Facades\Hash;
use Slowlyo\OwlAdmin\Admin; use Slowlyo\OwlAdmin\Admin;
use Slowlyo\OwlAdmin\Controllers\AdminController;
use Slowlyo\OwlAdmin\Renderers\Form; use Slowlyo\OwlAdmin\Renderers\Form;
use Slowlyo\OwlAdmin\Renderers\Operation; use Slowlyo\OwlAdmin\Renderers\Operation;
use Slowlyo\OwlAdmin\Renderers\Page; use Slowlyo\OwlAdmin\Renderers\Page;
@ -30,6 +32,7 @@ class AdminUserController extends AdminController
->size('md') ->size('md')
->placeholder(__('admin.admin_user.search_username')) ->placeholder(__('admin.admin_user.search_username'))
)) ))
->quickSaveItemApi($this->getQuickEditItemPath(['lock']))
->itemCheckableOn('${id !== 1}') ->itemCheckableOn('${id !== 1}')
->columns([ ->columns([
amisMake()->TableColumn('id', 'ID')->sortable(), amisMake()->TableColumn('id', 'ID')->sortable(),
@ -42,7 +45,7 @@ class AdminUserController extends AdminController
amisMake()->TableColumn('lock', __('admin.admin_user.lock'))->quickEdit(SwitchControl::make()->saveImmediately(true)->mode('inline')->disabledOn('${id === 1}')), amisMake()->TableColumn('lock', __('admin.admin_user.lock'))->quickEdit(SwitchControl::make()->saveImmediately(true)->mode('inline')->disabledOn('${id === 1}')),
amisMake()->TableColumn('created_at', __('admin.created_at'))->type('datetime')->sortable(true), amisMake()->TableColumn('created_at', __('admin.created_at'))->type('datetime')->sortable(true),
Operation::make()->label(__('admin.actions'))->buttons([ Operation::make()->label(__('admin.actions'))->buttons([
$this->editPassword() $this->changePasswordButton()
->visible(Admin::user()->can('admin.system.admin_users.change_password')) ->visible(Admin::user()->can('admin.system.admin_users.change_password'))
->visibleOn('${id != 1}'), ->visibleOn('${id != 1}'),
$this->rowEditButton(true) $this->rowEditButton(true)
@ -82,20 +85,30 @@ class AdminUserController extends AdminController
return $this->baseDetail()->body([]); return $this->baseDetail()->body([]);
} }
public function editPassword() public function changePassword($id, AdminUserChangePasswordRequest $request)
{
$model = Admin::adminUserModel();
$user = $model->findOrFail($id);
$user->update([
'password' => Hash::make($request->input('password')),
]);
return $this->autoResponse('success', __('admin.save'));
}
protected function changePasswordButton()
{ {
return amisMake()->DialogAction()->icon('fa-regular fa-lightbulb')->label(__('admin.admin_user.edit_password'))->level('link')->dialog( return amisMake()->DialogAction()->icon('fa-regular fa-lightbulb')->label(__('admin.admin_user.edit_password'))->level('link')->dialog(
amisMake()->Dialog()->title(__('admin.admin_user.edit_password'))->body([ amisMake()->Dialog()->title(__('admin.admin_user.edit_password'))->body([
amisMake()->Form()->title('') amisMake()->Form()->title('')
->api([ ->api([
'method' => 'PUT', 'method' => 'PUT',
'url' => admin_url('system/admin_users/$id'), 'url' => admin_url('system/admin_users/$id/change-password'),
]) ])
->body([ ->body([
amisMake()->TextControl('id')->value('${id}')->hidden(true), amisMake()->TextControl('password', __('admin.password'))->type('input-password')->required()->validations(['minLength' => 5]),
amisMake()->TextControl('username')->value('${username}')->hidden(true), amisMake()->TextControl('password_confirmation', __('admin.confirm_password'))->type('input-password')->required()->validations(['minLength' => 5]),
amisMake()->TextControl('password', __('admin.password'))->type('input-password')->required()->validations(['minLength' => 6]),
amisMake()->TextControl('confirm_password', __('admin.confirm_password'))->type('input-password')->required()->validations(['minLength' => 6]),
]), ]),
])->size('md') ])->size('md')
); );

View File

@ -0,0 +1,28 @@
<?php
namespace App\Admin\Requests\System;
use Illuminate\Foundation\Http\FormRequest;
class AdminUserChangePasswordRequest extends FormRequest
{
/**
* {@inheritdoc}
*/
public function rules(): array
{
return [
'password' => ['bail', 'required', 'confirmed', 'min:6'],
];
}
/**
* {@inheritdoc}
*/
public function attributes()
{
return [
'password' => '密码',
];
}
}

View File

@ -51,6 +51,7 @@ Route::group([
], function (Router $router) { ], function (Router $router) {
// 账号管理 // 账号管理
$router->resource('admin_users', AdminUserController::class); $router->resource('admin_users', AdminUserController::class);
$router->put('/admin_users/{admin_user}/change-password', [AdminUserController::class, 'changePassword'])->name('admin_users.change_password');
// 角色管理 // 角色管理
$router->resource('admin_roles', AdminRoleController::class); $router->resource('admin_roles', AdminRoleController::class);
$router->post('admin_roles/{admin_role}/menus', [AdminRoleController::class, 'saveMenus'])->name('admin_roles.set_menus'); $router->post('admin_roles/{admin_role}/menus', [AdminRoleController::class, 'saveMenus'])->name('admin_roles.set_menus');