GrafiteInc/Scaffold

View on GitHub
app/Http/Controllers/User/SecurityController.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace App\Http\Controllers\User;

use App\Http\Controllers\Controller;
use App\Http\Requests\UserPasswordUpdateRequest;
use Grafite\Auth\Foundation\ResetsPasswords;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;

class SecurityController extends Controller
{
    use ResetsPasswords;

    protected $redirectPath = '/user/settings/password';

    /**
     * User wants to change their password.
     *
     * @return \Illuminate\View\View
     */
    public function index(Request $request)
    {
        return view('user.security')->with([
            'user' => $request->user(),
        ]);
    }

    /**
     * Change the user's password and return.
     *
     * @return \Illuminate\Http\RedirectResponse
     */
    public function update(UserPasswordUpdateRequest $request)
    {
        $password = $request->new_password;

        if (Hash::check($request->old_password, $request->user()->password)) {
            $this->resetPassword($request->user(), $password);

            activity('Password updated');

            return redirect()->route('user.security')
                ->withMessage('Password updated successfully');
        }

        return redirect()->back()->withErrors(['Password could not be updated']);
    }
}