auth
parent
372f19fc0c
commit
9eca0a82ca
|
|
@ -2,9 +2,76 @@
|
||||||
|
|
||||||
namespace App\Admin\Controllers;
|
namespace App\Admin\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Slowlyo\OwlAdmin\Controllers\AuthController as AdminAuthController;
|
use Slowlyo\OwlAdmin\Controllers\AuthController as AdminAuthController;
|
||||||
|
use Slowlyo\OwlAdmin\Renderers\{Page, Form, TextControl, ImageControl};
|
||||||
|
|
||||||
class AuthController extends AdminAuthController
|
class AuthController extends AdminAuthController
|
||||||
{
|
{
|
||||||
|
public function userSetting(): \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
|
||||||
|
{
|
||||||
|
$user = $this->user();
|
||||||
|
|
||||||
|
$form = Form::make()
|
||||||
|
->title()
|
||||||
|
->panelClassName('px-48 m:px-0')
|
||||||
|
->mode('horizontal')
|
||||||
|
->data(Arr::only($user->toArray(), ['avatar', 'name']))
|
||||||
|
->api('put:' . admin_url('/user_setting'))
|
||||||
|
// ->persistDataKeys(['avatar', 'name'])
|
||||||
|
// ->resetAfterSubmit()
|
||||||
|
->body([
|
||||||
|
ImageControl::make()
|
||||||
|
->label(__('admin.admin_user.avatar'))
|
||||||
|
->name('avatar')
|
||||||
|
->receiver($this->uploadImagePath()),
|
||||||
|
TextControl::make()
|
||||||
|
->label(__('admin.admin_user.name'))
|
||||||
|
->name('name')
|
||||||
|
->required(),
|
||||||
|
TextControl::make()
|
||||||
|
->type('input-password')
|
||||||
|
->label(__('admin.old_password'))
|
||||||
|
->name('old_password'),
|
||||||
|
TextControl::make()
|
||||||
|
->type('input-password')
|
||||||
|
->label('新密码')
|
||||||
|
->name('password')
|
||||||
|
->validations(['minLength' => 6])
|
||||||
|
->requiredOn('!!this.old_password'),
|
||||||
|
TextControl::make()
|
||||||
|
->type('input-password')
|
||||||
|
->label(__('admin.confirm_password'))
|
||||||
|
->name('confirm_password')
|
||||||
|
->validations(['minLength' => 6])
|
||||||
|
->requiredOn('!!this.old_password'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return $this->response()->success(Page::make()->body($form));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function saveUserSetting(): \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
|
||||||
|
{
|
||||||
|
$request = request();
|
||||||
|
$request->validate([
|
||||||
|
'old_password' => ['nullable', 'current_password:sanctum'],
|
||||||
|
'password' => Rule::requiredIf($request->filled('old_password')),
|
||||||
|
'confirm_password' => [Rule::requiredIf($request->filled('old_password')), 'same:password'],
|
||||||
|
], [
|
||||||
|
'password.required' => '新密码必填',
|
||||||
|
'confirm_password.required' => '确认密码必填',
|
||||||
|
'old_password.current_password' => __('admin.admin_user.old_password_error'),
|
||||||
|
'confirm_password.same' => __('admin.admin_user.password_confirmation'),
|
||||||
|
]);
|
||||||
|
$user = $this->user();
|
||||||
|
$attributes = $request->only(['avatar', 'name']);
|
||||||
|
if ($request->filled('old_password')) {
|
||||||
|
$attributes['password']
|
||||||
|
= Hash::make($request->input('password'));
|
||||||
|
}
|
||||||
|
$user->update($attributes);
|
||||||
|
return $this->response()->successMessage(__('admin.action_success'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,10 @@ Route::group([
|
||||||
$router->get('/_settings', '\App\Admin\Controllers\IndexController@settings');
|
$router->get('/_settings', '\App\Admin\Controllers\IndexController@settings');
|
||||||
$router->resource('system/admin_users', App\Admin\Controllers\AdminUserController::class);
|
$router->resource('system/admin_users', App\Admin\Controllers\AdminUserController::class);
|
||||||
|
|
||||||
|
// 用户设置
|
||||||
|
$router->get('user_setting', [App\Admin\Controllers\AuthController::class, 'userSetting']);
|
||||||
|
$router->put('user_setting', [App\Admin\Controllers\AuthController::class, 'saveUserSetting']);
|
||||||
|
|
||||||
$router->group([
|
$router->group([
|
||||||
'prefix' => 'api',
|
'prefix' => 'api',
|
||||||
], function (Router $router) {
|
], function (Router $router) {
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ return [
|
||||||
'logout' => '退出登录',
|
'logout' => '退出登录',
|
||||||
'username' => '用户名',
|
'username' => '用户名',
|
||||||
'password' => '密码',
|
'password' => '密码',
|
||||||
'old_password' => '旧密码',
|
'old_password' => '原密码',
|
||||||
'confirm_password' => '确认密码',
|
'confirm_password' => '确认密码',
|
||||||
'captcha' => '验证码',
|
'captcha' => '验证码',
|
||||||
'captcha_error' => '验证码有误',
|
'captcha_error' => '验证码有误',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue