Organize requests differently.

This commit is contained in:
Taylor Otwell 2014-11-25 09:20:26 -06:00
parent 634c96d8d9
commit d306965007
6 changed files with 130 additions and 22 deletions

View File

@ -1,7 +1,7 @@
<?php namespace App\Http\Controllers\Auth;
use App\User;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Auth\Guard;
@ -40,17 +40,11 @@ public function getRegister()
/**
* Handle a registration request for the application.
*
* @param Request $request
* @param RegisterRequest $request
* @return Response
*/
public function postRegister(Request $request)
public function postRegister(Requests\Auth\RegisterRequest $request)
{
$this->validate($request, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
]);
$user = User::forceCreate([
'name' => $request->name,
'email' => $request->email,
@ -75,15 +69,11 @@ public function getLogin()
/**
* Handle a login request to the application.
*
* @param Request $request
* @param LoginRequest $request
* @return Response
*/
public function postLogin(Request $request)
public function postLogin(Requests\Auth\LoginRequest $request)
{
$this->validate($request, [
'email' => 'required', 'password' => 'required'
]);
$credentials = $request->only('email', 'password');
if ($this->auth->attempt($credentials, $request->has('remember')))

View File

@ -1,7 +1,7 @@
<?php namespace App\Http\Controllers\Auth;
use App\User;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Contracts\Auth\PasswordBroker;
@ -50,13 +50,11 @@ public function getEmail()
/**
* Send a reset link to the given user.
*
* @param Request $request
* @param EmailPasswordLinkRequest $request
* @return Response
*/
public function postEmail(Request $request)
public function postEmail(Requests\Auth\EmailPasswordLinkRequest $request)
{
$this->validate($request, ['email' => 'required']);
switch ($response = $this->passwords->sendResetLink($request->only('email')))
{
case PasswordBroker::INVALID_USER:
@ -86,10 +84,10 @@ public function getReset($token = null)
/**
* Reset the given user's password.
*
* @param Request $request
* @param ResetPasswordRequest $request
* @return Response
*/
public function postReset(Request $request)
public function postReset(Requests\Auth\ResetPasswordRequest $request)
{
$credentials = $request->only(
'email', 'password', 'password_confirmation', 'token'

View File

@ -0,0 +1,29 @@
<?php namespace App\Http\Requests\Auth;
use App\Http\Requests\Request;
class EmailPasswordLinkRequest extends Request {
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'email' => 'required',
];
}
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
}

View File

@ -0,0 +1,29 @@
<?php namespace App\Http\Requests\Auth;
use App\Http\Requests\Request;
class LoginRequest extends Request {
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'email' => 'required', 'password' => 'required',
];
}
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
}

View File

@ -0,0 +1,31 @@
<?php namespace App\Http\Requests\Auth;
use App\Http\Requests\Request;
class RegisterRequest extends Request {
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
];
}
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
}

View File

@ -0,0 +1,31 @@
<?php namespace App\Http\Requests\Auth;
use App\Http\Requests\Request;
class ResetPasswordRequest extends Request {
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'token' => 'required',
'email' => 'required',
'password' => 'required|confirmed',
];
}
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
}