Repository URL to install this package:
|
Version:
1.0.0 ▾
|
<?php
/**
* Created by PhpStorm.
* User: danilo
* Date: 14/07/16
* Time: 16:25
*/
namespace Modules\Users\Traits;
use Illuminate\Foundation\Auth\ResetsPasswords;
use Illuminate\Http\Request;
use Illuminate\Mail\Message;
use Modules\Users\Facades\Password;
trait CmsResetsPasswords
{
use ResetsPasswords;
/**
* @param Request $request
* @return $this|\Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
*/
public function postEmail(Request $request)
{
$this->validate($request, ['email' => 'required']);
$response = Password::sendResetLink($request->only('email'), function (Message $message) {
$message->subject($this->getEmailSubject());
});
switch ($response) {
case Password::RESET_LINK_SENT:
if ($request->ajax()) {
return response()->json([
'status' => trans($response)
], 200);
}
flash()->success(trans($response));
return redirect()->back()->with('status', trans($response));
case Password::INVALID_USER:
if ($request->ajax()) {
return response()->json([
'email' => [trans($response)]
], 400);
}
return redirect()->back()->withErrors(['email' => trans($response)]);
default:
if ($request->ajax()) {
die('ok');
return response()->json([
'status' => trans($response)
], 200);
}
flash()->error(trans($response));
return redirect()->back()->with('status', trans($response));
}
}
/**
* @param Request $request
* @return $this|\Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function postReset(Request $request)
{
$this->validate($request, [
'token' => 'required',
'email' => 'required',
'password' => 'required|confirmed|min:6',
]);
$credentials = $request->only(
'email', 'password', 'password_confirmation', 'token'
);
$response = Password::reset($credentials, function ($user, $password) {
$this->resetPassword($user, $password);
});
switch ($response) {
case Password::PASSWORD_RESET:
if ($request->ajax()) {
return response()->json([
'redirectTo' => $this->redirectPath()
], 200);
}
return redirect($this->redirectPath());
default:
if ($request->ajax()) {
return response()->json([
'email' => [trans($response)]
], 400);
}
return redirect()->back()
->withInput($request->only('email'))
->withErrors(['email' => trans($response)]);
}
}
}