feat(users):Update du password et création routes modification password
This commit is contained in:
parent
45980b854e
commit
40ff942b66
|
|
@ -4,6 +4,8 @@ namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use App\Http\Requests\Auth\UpdatePasswordRequest;
|
||||||
|
|
||||||
class UsersController extends Controller
|
class UsersController extends Controller
|
||||||
{
|
{
|
||||||
|
|
@ -70,4 +72,28 @@ class UsersController extends Controller
|
||||||
'username' => $user->username,
|
'username' => $user->username,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @requestMediaType multipart/form-data
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function updatePassword(UpdatePasswordRequest $request)
|
||||||
|
{
|
||||||
|
$data = $request->validated();
|
||||||
|
$user = $request->user();
|
||||||
|
|
||||||
|
if (!Hash::check($data['old_password'], $user->password)) {
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'The provided password does not match your current password.',
|
||||||
|
], 422);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'password' => $data['new_password'],
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'message' => 'Password updated successfully',
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,16 @@ class RegisterRequest extends FormRequest
|
||||||
return [
|
return [
|
||||||
'username' => ['required', 'string', 'max:120', 'unique:users,username'],
|
'username' => ['required', 'string', 'max:120', 'unique:users,username'],
|
||||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'],
|
'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'],
|
||||||
'password' => ['required', 'string', Password::defaults(), 'confirmed'],
|
'password' => [
|
||||||
|
'required',
|
||||||
|
'string',
|
||||||
|
Password::min(8)
|
||||||
|
->letters()
|
||||||
|
->mixedCase()
|
||||||
|
->numbers()
|
||||||
|
->symbols(),
|
||||||
|
'confirmed',
|
||||||
|
],
|
||||||
'device_name' => ['nullable', 'string', 'max:255'],
|
'device_name' => ['nullable', 'string', 'max:255'],
|
||||||
'avatar' => ['nullable', 'image', 'max:10240'],
|
'avatar' => ['nullable', 'image', 'max:10240'],
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests\Auth;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Validation\ValidationRule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Validation\Rules\Password;
|
||||||
|
|
||||||
|
class UpdatePasswordRequest extends FormRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*/
|
||||||
|
public function authorize(): bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*
|
||||||
|
* @return array<string, array<int, string|ValidationRule>>
|
||||||
|
*/
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'old_password' => ['required', 'string', 'min:8'],
|
||||||
|
'new_password' => [
|
||||||
|
'required',
|
||||||
|
'string',
|
||||||
|
Password::min(8)
|
||||||
|
->letters()
|
||||||
|
->mixedCase()
|
||||||
|
->numbers()
|
||||||
|
->symbols(),
|
||||||
|
'confirmed',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -36,6 +36,7 @@ Route::middleware('auth:sanctum')->group(function (): void {
|
||||||
// User
|
// User
|
||||||
Route::get('users/leaderboard', [UsersController::class, 'leaderboard']);
|
Route::get('users/leaderboard', [UsersController::class, 'leaderboard']);
|
||||||
Route::put('users/update/username', [UsersController::class, 'updateUsername']);
|
Route::put('users/update/username', [UsersController::class, 'updateUsername']);
|
||||||
|
Route::put('users/update/password', [UsersController::class, 'updatePassword']);
|
||||||
Route::get('users/{user}', [UsersController::class, 'show']);
|
Route::get('users/{user}', [UsersController::class, 'show']);
|
||||||
Route::post('users/{user}/avatar', [UsersController::class, 'updateAvatar']);
|
Route::post('users/{user}/avatar', [UsersController::class, 'updateAvatar']);
|
||||||
Route::post('hunts/{hunt}/participate', [HuntsController::class, 'participate']);
|
Route::post('hunts/{hunt}/participate', [HuntsController::class, 'participate']);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue