File: /var/www/console.fixgini.com/app/Http/Controllers/Profile/UpdatePasswordController.php
<?php
namespace App\Http\Controllers\Profile;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\ValidationException;
class UpdatePasswordController extends Controller
{
public function updatePassword(Request $request)
{
try {
$validatedData = $request->validate([
'user_id' => ['required', 'string', 'exists:users,id'],
'current_password' => ['required', 'string'],
'new_password' => ['required', 'string', 'min:8', 'different:current_password'],
'password_confirmation' => ['required', 'string', 'same:new_password'],
]);
} catch (ValidationException $e) {
Log::alert($e->getMessage());
return response()->json(['error' => $e->getMessage()], 422);
}
try {
$user = User::find($request->input('user_id'));
if (!Hash::check($request->input('current_password'), $user->password)) {
return response()->json(['error' => 'Current password is incorrect.'], 422);
}
$user->password = Hash::make($request->input('new_password'));
$user->save();
return response()->json(['message' => 'Password updated successfully.'], 200);
} catch (\Exception $e) {
$message = $e->getMessage();
return response()->json(['error' => $e->getMessage()], 400);
}
}
}