Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
ResetPasswordController
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 4
30
0.00% covered (danger)
0.00%
0 / 1
 resetPassword
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 sendResetResponse
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 sendResetFailedResponse
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 change
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace App\Http\Controllers\v1\Auth;
4
5use App\Http\Controllers\Controller;
6use App\Http\Models\Auth\User;
7use Illuminate\Auth\Events\PasswordReset;
8use Illuminate\Foundation\Auth\ResetsPasswords;
9use Illuminate\Http\Request;
10use Illuminate\Support\Facades\Hash;
11use Illuminate\Support\Str;
12
13class ResetPasswordController extends Controller
14{
15    use ResetsPasswords;
16
17    protected function resetPassword(User $user, $password)
18    {
19        $this->setUserPassword($user, $password);
20        $user->setRememberToken(Str::random(60));
21        $user->save();
22        event(new PasswordReset($user));
23    }
24
25    protected function sendResetResponse(Request $request, $response)
26    {
27        return response()->json(['message' => trans($response)]);
28    }
29
30    protected function sendResetFailedResponse(Request $request, $response)
31    {
32        return response()->json(['error' => trans($response)]);
33    }
34
35    public function change(Request $request)
36    {
37        $data = $request->validate([
38            'old_password' => 'required|min:8',
39            'new_password' => 'required|confirmed|min:8',
40        ]);
41
42        if (Hash::check($data['old_password'], $request->user()->password)) {
43            $this->resetPassword($request->user(), $data['new_password']);
44
45            return $this->sendResetResponse($request, 'passwords.change');
46        } else {
47            return $this->sendResetFailedResponse($request, 'passwords.match');
48        }
49    }
50}