补全管理员操作

dev
vine_liutk 2022-10-14 15:38:24 +08:00
parent 9262a58f10
commit 1ffec7bb41
7 changed files with 71 additions and 12 deletions

View File

@ -8,6 +8,7 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Http\Requestes\AdminUserRequest;
use App\Http\Resources\AdminUserResource;
use App\Http\Requestes\RestPasswordRequest;
use App\Http\Requestes\AdminUserUpdateRequest;
class AdminUserController extends Controller
@ -84,7 +85,23 @@ class AdminUserController extends Controller
* @return void
*/
public function endable(AdminUser $adminUser){
if($adminUser->id == 1){
return $this->error('操作失败,请稍后再试');
}
$adminUser->update([
'is_enable' => (int) !$adminUser->is_enable
]);
return $this->success('操作成功!');
}
public function editPassword(AdminUser $adminUser, RestPasswordRequest $request){
if($adminUser->id == 1){
return $this->error('操作失败,请稍后再试');
}
$adminUser->update([
'password' => bcrypt($request->input('password'))
]);
return $this->success('修改成功!');
}
}

View File

@ -23,6 +23,10 @@ class AuthController extends Controller
return $this->error('用户名或密码错误');
}
if($user->is_enable !== 1){
return $this->error('用户状态异常请联系管理员');
}
return $this->attemptUser($user);
}

View File

@ -2,24 +2,17 @@
namespace App\Http\Controllers;
use App\Exceptions\BizException;
use Illuminate\Http\Request;
use App\Exceptions\BizException;
use Illuminate\Support\Facades\Hash;
use App\Http\Requestes\RestPasswordRequest;
class UserController extends Controller
{
public function resetPwd(Request $request)
public function resetPwd(RestPasswordRequest $request)
{
$input = $request->validate([
'password' => 'required|current_password:api',
'new_password' => 'required',
], [
'password.current_password' => '密码错误',
]);
$input = $request->input();
$user = auth('api')->user();
if (! $user || ! Hash::check($input['password'], $user->password)) {
throw new BizException('密码错误');
}
$user->password = bcrypt($input['new_password']);
$user->save();

View File

@ -0,0 +1,42 @@
<?php
namespace App\Http\Requestes;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
class RestPasswordRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'password' => 'required|string|min:6|max:32',
'password_confirmation' => 'required|same:password',
];
}
public function messages()
{
$messages = [
'password.required' => '请填写登录密码',
'password.string'=> '请正确填写密码',
'password.min' => '密码长度不能低于6位',
'password.max' => '密码长度不能超过32位',
'password.confirmed' => '两次密码不一致',
];
return $messages;
}
protected function failedValidation(Validator $validator)
{
$error = $validator->errors()->all();
throw new HttpResponseException(response()->json(['data' => [], 'code' => 400, 'message' => $error[0]]));
}
}

View File

@ -17,6 +17,7 @@ class AdminUserResource extends JsonResource
{
return [
'id' => $this->id,
'username' => $this->username,
'name' => $this->name,
'avatar'=> $this->avatar,
'department' => $this->department,

View File

@ -12,7 +12,7 @@ class AdminUser extends BaseAdminModel
protected $fillable = [
'name',
'usersname',
'username',
'password',
'avatar',
'department', 'phone', 'status', 'is_enable',

View File

@ -31,6 +31,8 @@ Route::group(['middleware' => 'auth:sanctum'], function () {
/** 系统管理 **/
Route::apiResource('admin-users', AdminUserController::class)->names('admin_users');
Route::put('admin-users/{admin_user}/enable', [AdminUserController::class, 'endable'])->name('admin_users.enable');
Route::put('admin-users/{admin_user}/edit-password', [AdminUserController::class, 'editPassword'])->name('admin_users.edit_password');
Route::apiResource('admin-roles', AdminRoleController::class)->names('admin_roles');
});