Browse Source

Refactor change password feature into own controller

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
c150dc689d
  1. 47
      app/Http/Controllers/Auth/ChangePasswordController.php
  2. 41
      app/Http/Controllers/AuthController.php
  3. 43
      app/Http/Requests/Accounts/ChangePasswordRequest.php
  4. 2
      resources/views/auth/passwords/change.blade.php
  5. 6
      routes/web/account.php

47
app/Http/Controllers/Auth/ChangePasswordController.php

@ -0,0 +1,47 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ChangePasswordController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
public function show()
{
return view('auth.passwords.change');
}
public function update(Request $request)
{
$input = $request->validate([
'old_password' => 'required',
'password' => 'required|between:6,15|confirmed',
'password_confirmation' => 'required',
]);
if (app('hash')->check($input['old_password'], auth()->user()->password))
{
$user = auth()->user();
$user->password = $input['password'];
$user->save();
flash(trans('auth.password_changed'), 'success');
return back();
}
flash(trans('auth.old_password_failed'), 'danger');
return back();
}
}

41
app/Http/Controllers/AuthController.php

@ -15,23 +15,15 @@ use Illuminate\Http\Request;
class AuthController extends Controller
{
use ResetsPasswords, ThrottlesLogins;
use ThrottlesLogins;
public function __construct(Guard $auth, PasswordBroker $passwords)
{
$this->auth = $auth;
$this->passwords = $passwords;
$this->middleware('guest', ['only' => [
'getLogin', 'postLogin', 'getRegister', 'postRegister',
'getActivate'
]
]);
$this->middleware('auth', ['only' => [
'getLogout', 'getChangePassword', 'postChangePassword',
'getProfile', 'patchProfile'
]
]);
$this->middleware('guest', ['only' => ['getLogin', 'postLogin', 'getRegister', 'postRegister']]);
$this->middleware('auth', ['only' => ['getLogout', 'getProfile', 'patchProfile']]);
}
public function getLogin()
@ -79,33 +71,6 @@ class AuthController extends Controller
return redirect()->route('home');
}
public function getActivate($code)
{
}
public function getChangePassword()
{
return view('auth.change-password');
}
public function postChangePassword(ChangePasswordRequest $request)
{
$input = $request->except('_token');
$user = auth()->user();
if (app('hash')->check($input['old_password'], $user->password)) {
$user->password = $input['password'];
$user->save();
flash()->success(trans('auth.password_changed'));
return redirect()->back();
}
flash()->error('Password lama tidak cocok!');
return redirect()->back();
}
public function getProfile()
{
$user = Auth::user();

43
app/Http/Requests/Accounts/ChangePasswordRequest.php

@ -1,43 +0,0 @@
<?php
namespace App\Http\Requests\Accounts;
use App\Http\Requests\Request;
class ChangePasswordRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return auth()->check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'old_password' => 'required',
'password' => 'required|between:6,15|confirmed',
'password_confirmation' => 'required',
];
}
public function messages()
{
return [
'old_password.required' => 'Password lama harus diisi.',
'password.required' => 'Password baru harus diisi.',
'password.between' => 'Password baru harus antara 6 - 15 karakter.',
'password.confirmed' => 'Konfirmasi password baru tidak sesuai.',
'password_confirmation.required' => 'Konfirmasi password baru harus diisi.',
];
}
}

2
resources/views/auth/change-password.blade.php → resources/views/auth/passwords/change.blade.php

@ -9,7 +9,7 @@
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
{!! Form::open(['route'=>'auth.change-password']) !!}
{!! Form::open(['route'=>'auth.change-password', 'method' => 'patch']) !!}
<div class="panel-body">
{!! FormField::password('old_password', ['label' => false, 'placeholder' => trans('auth.old_password')]) !!}
{!! FormField::password('password', ['label' => false, 'placeholder' => trans('auth.new_password')]) !!}

6
routes/web/account.php

@ -9,12 +9,14 @@ Route::group(['middleware' => 'web','as'=>'auth.'], function() {
Route::get('register', ['as'=>'register', 'uses' => 'AuthController@getRegister']);
Route::post('register', ['as'=>'register', 'uses' => 'AuthController@postRegister']);
Route::get('activate', ['as'=>'activate', 'uses' => 'AuthController@getActivate']);
Route::get('change-password', ['as'=>'change-password', 'uses' => 'AuthController@getChangePassword']);
Route::post('change-password', ['as'=>'change-password', 'uses' => 'AuthController@postChangePassword']);
Route::get('profile', ['as'=>'profile', 'uses' => 'AuthController@getProfile']);
Route::patch('profile', ['as'=>'profile', 'uses' => 'AuthController@patchProfile']);
});
// Change Password Routes...
Route::get('change-password', 'Auth\ChangePasswordController@show')->name('auth.change-password');
Route::patch('change-password', 'Auth\ChangePasswordController@update')->name('auth.change-password');
// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('auth.reset-request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('auth.reset-email');

Loading…
Cancel
Save