Skip to content

Instantly share code, notes, and snippets.

@fearrr
Created January 7, 2016 14:25
Show Gist options
  • Save fearrr/bbf0e96933e5f1128f43 to your computer and use it in GitHub Desktop.
Save fearrr/bbf0e96933e5f1128f43 to your computer and use it in GitHub Desktop.
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
use Illuminate\Http\Request;
use Illuminate\Mail\Message;
use Illuminate\Support\Facades\Password;
use Illuminate\Http\JsonResponse;
use Validator;
use Config;
class PasswordController extends Controller
{
use ResetsPasswords;
protected $redirectTo = '/personal/dashboard';
public function __construct()
{
$this->middleware('guest');
}
public function resetSend(Request $request)
{
$v = Validator::make($request->all(), [
'email' => 'required|email|max:50|min:3',
], [
'email.required' => 'Пажалуйста, укажите Ваш e-mail!',
'email.email' => 'Указанный E-mail не похож на корректный!',
'email.max' => 'Указанный E-mail не похож на корректный!',
'email.min' => 'Указанный E-mail не похож на корректный!',
]);
if ($v->fails())
{
if($request->ajax()){
return new JsonResponse($v->errors(), 422);
}
else{
return redirect()->back()->withErrors($v->errors());
}
}
$response = Password::sendResetLink($request->only('email'), function (Message $message) {
$message->subject($this->getEmailSubject());
});
switch ($response) {
case Password::RESET_LINK_SENT:
if($request->ajax()){
return new JsonResponse([$response], 200);
}
else{
return redirect()->back()->with('status', trans($response));
}
case Password::INVALID_USER:
if($request->ajax()){
return new JsonResponse([$response], 400);
}
else{
return redirect()->back()->withErrors(['email' => trans($response)]);
}
}
}
protected function getEmailSubject()
{
return property_exists($this, 'subject') ? $this->subject : Config::get('app.project_name').' Ссылка сброса пароля';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment