'text' => 'required|max:255'
]);
$id = $request->input('id');
- $text = $request->input('text');
+ $newName = $request->input('text');
$cart = Panier::find($id);
-
- $cart->name = $text;
-
+ $cart->name = $newName;
$cart->save();
}
--- /dev/null
+<?php
+namespace App\Http\Controllers\Client;
+
+use Illuminate\Notifications\Messages\MailMessage;
+use Illuminate\Auth\Notifications\ResetPassword;
+
+class CustomResetPasswordNotification extends ResetPassword
+{
+ public function __construct($email,$token)
+ {
+ $this->email = $email;
+ $this->token = $token;
+ }
+
+ public function via($notifiable)
+ {
+ return ['mail'];
+ }
+
+ public function toMail($notifiable)
+ {
+ return (new MailMessage())
+ ->subject(trans('backpack::base.password_reset.subject'))
+ ->greeting(trans('backpack::base.password_reset.greeting'))
+ ->line([
+ trans('backpack::base.password_reset.line_1'),
+ trans('backpack::base.password_reset.line_2'),
+ ])
+ ->action(trans('backpack::base.password_reset.button'), route('password.reset').'?token='.$this->token.'&email='.urlencode($this->email))
+ ->line(trans('backpack::base.password_reset.notice'));
+ }
+}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Client;
+
+use App\Models\AuthClient;
+use App\Models\Client;
+use Backpack\Base\app\Notifications\ResetPasswordNotification as ResetPasswordNotification;
+use Carbon\Carbon;
+use Cubist\Backpack\Facades\App;
+use Illuminate\Http\RedirectResponse;
+use Illuminate\Http\Request;
+use Illuminate\Notifications\Messages\MailMessage;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Hash;
+use Illuminate\Support\Facades\Password;
+
+class ForgotPasswordController
+{
+ public function sendResetLink(Request $request)
+ {
+ $request->validate(['email' => 'required|email']);
+
+ $email = $request->input('email');
+ $client = AuthClient::where('email', $email)->first();
+ $broker = Password::broker();
+ $token = $broker->createToken($client);
+
+ if(!$client)
+ return back()->withErrors(['error' => 'error']);
+
+ $status = DB::table('password_resets')->insert([
+ 'email' => $email,
+ 'token' => $token,
+ 'created_at' => Carbon::now()
+ ]);
+
+ $client->sendPasswordResetNotification($token);
+ return $this->sendResetLinkResponse($status);
+ }
+
+ protected function sendResetLinkResponse($response): RedirectResponse
+ {
+ $message = __("Vous allez recevoir un e-mail vous permettant de réinitialiser votre mot de passe");
+ return $response
+ ? back()->with(['status' => __($response), 'message' => $message])
+ : back()->withErrors(['email' => __($response)]);
+ }
+}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Client;
+
+use App\Models\Client;
+use Cubist\Backpack\app\Http\Controllers\CubistFrontController;
+use Cubist\Backpack\app\Magic\Menu\Menu;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Hash;
+
+class ResetPasswordController extends CubistFrontController
+{
+ public function view(Request $request)
+ {
+ $page = Menu::getNavigation()->findOneById(157)->getEntity();
+ $email = $request->get('email');
+ $token = $request->get('token');
+
+ $this->data['page'] = $page->getPageData();
+ $this->data['title'] = 'Changer votre mot de passe';
+ $this->data['token'] = $token;
+ $this->data['email'] = $email;
+
+ $path = "changer-votre-mot-de-passe";
+ $nav = Menu::getNavigation();
+ $item = $nav->findItemWithURL($path,true);
+ $this->data['item'] = $item;
+
+ return view('pages.change_password', $this->data);
+ }
+
+ public function resetPassword(Request $request) {
+ $request['email'] = str_replace('%40', '@', $request->email);
+ $request->validate([
+ 'token' => 'required',
+ 'email' => 'required|email',
+ 'password' => 'required|min:8|confirmed',
+ ]);
+
+ $newPassword = $request->password;
+ $email = $request->email;
+ $token = $request->token;
+
+ // Validate the token
+ $actualToken = DB::table('password_resets')->where('email', $email)->first();
+ $tokenIsValid = Hash::check($token, $actualToken->token);
+ if (!$tokenIsValid) return back()->withErrors(['error' => 'error']);
+
+ // Validate email
+ $client = Client::where('email', $email)->first();
+ if (!$client) return redirect()->back()->withErrors(['email' => __('Email non trouvé')]);
+
+ //Hash and update the new password
+ $client->password = Hash::make($newPassword);
+ $client->update();
+
+ //Delete the token
+ $deleted = DB::table('password_resets')->where('email', $email)->delete();
+
+ return redirect('/se-connecter');
+ }
+}
+++ /dev/null
-<?php
-
-namespace App\Http\Controllers;
-
-use Cubist\Backpack\app\Magic\Menu\Menu;
-use Illuminate\Http\Request;
-use Cubist\Backpack\app\Http\Controllers\CubistFrontController;
-
-class ClientChangePassword extends CubistFrontController
-{
- public function view(Request $request)
- {
- $page = Menu::getNavigation()->findOneById(157)->getEntity();
- $email = $request->get('email');
- $token = $request->get('token');
-
- $this->data['page'] = $page->getPageData();
- $this->data['title'] = 'Changer votre mot de passe';
- $this->data['token'] = $token;
- $this->data['email'] = $email;
-
- $path = "changer-votre-mot-de-passe";
- $nav = Menu::getNavigation();
- $item = $nav->findItemWithURL($path,true);
- $this->data['item'] = $item;
-
- return view('pages.change_password', $this->data);
- }
-}
+++ /dev/null
-<?php
-namespace App\Http\Controllers;
-
-use Cubist\Backpack\app\Magic\Menu\Menu;
-use Cubist\Backpack\app\Magic\Models\CMSPage;
-use Cubist\Backpack\app\Magic\Models\Locale;
-use Cubist\Backpack\app\Magic\Models\Settings;
-use Cubist\Backpack\Facades\App;
-use Illuminate\Http\Request;
-use Illuminate\Http\RedirectResponse;
-use Illuminate\Support\Facades\Auth;
-use Cubist\Backpack\app\Http\Controllers\CubistPageController;
-use Illuminate\Support\Str;
-
-class ClientController extends CubistPageController
-{
- public function logout(Request $request): RedirectResponse
- {
- Auth::guard('web-clients')->logout();
-
- $request->session()->invalidate();
-
- $request->session()->regenerateToken();
-
- return redirect('/se-connecter');
- }
-}
+++ /dev/null
-<?php
-
-namespace App\Http\Controllers;
-
-use App\Models\AuthClient;
-use App\Models\News;
-use App\User;
-use App\Models\Client;
-use Cubist\Backpack\app\Magic\Menu\Menu;
-use Illuminate\Auth\Events\PasswordReset;
-use Illuminate\Support\Facades\Password;
-use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Hash;
-use Illuminate\Support\Str;
-use Cubist\Backpack\app\Http\Controllers\CubistPageController;
-use Illuminate\Support\Facades\DB;
-use Illuminate\Auth\Notifications\ResetPassword;
-use Illuminate\Auth\Passwords\PasswordBroker;
-
-class ClientForgotPassword extends CubistPageController
-{
- /*
- |--------------------------------------------------------------------------
- | Password Reset Controller
- |--------------------------------------------------------------------------
- |
- | This controller is responsible for handling password reset emails and
- | includes a trait which assists in sending these notifications from
- | your application to your users. Feel free to explore this trait.
- |
- */
-
- public function test(Request $request) {
- $request->validate(['email' => 'required|email']);
-
- $status = Password::sendResetLink(
- $request->only('email')
- );
-
- $message = __("Vous allez recevoir un e-mail vous permettant de réinitialiser votre mot de passe");
- return $status === Password::RESET_LINK_SENT
- ? back()->with(['status' => __($status), 'message' => $message])
- : back()->withErrors(['email' => __($status)]);
- }
-
- public function reset(Request $request) {
- $request['email'] = str_replace('%40', '@', $request->email);
- $request->validate([
- 'token' => 'required',
- 'email' => 'required|email',
- 'password' => 'required|min:8|confirmed',
- ]);
-
- $password = $request->password;
- $email = $request->email;
-
- $actualToken = DB::table('password_resets')->where('email', $request->email)->first();
- $tokenIsValid = Hash::check($request->token, $actualToken->token);
-
- // Validate the token
- if (!$tokenIsValid)
- return back()->withErrors(['error' => 'error']);
-
- $client = Client::where('email', $email)->first();
- if (!$client) return redirect()->back()->withErrors(['email' => 'Email non trouvé']);
-
- //Hash and update the new password
- $client->password = Hash::make($password);
- $client->update();
-
- return redirect('/se-connecter');
- }
-}
namespace App\Models;
use Backpack\Base\app\Notifications\ResetPasswordNotification as ResetPasswordNotification;
+use Cubist\Backpack\Facades\App;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
-
+use App\Http\Controllers\Client\CustomResetPasswordNotification;
class AuthClient extends Authenticatable implements CanResetPasswordContract
{
public function sendPasswordResetNotification($token)
{
- $this->notify((new ResetPasswordNotification($token))->locale('fr'));
+ $this->notify((new CustomResetPasswordNotification($this->email, $token))->locale(App::getLocale()));
}
}
{
$this->notify((new ResetPasswordNotification($token))->locale(App::getLocale()));
}
-
}
[v-cloak]
visibility: hidden
display: none
+
+/* Change the white to any color */
+input:-webkit-autofill,
+input:-webkit-autofill:hover,
+input:-webkit-autofill:focus,
+input:-webkit-autofill:active
+ -webkit-box-shadow: 0 0 0 30px white inset !important
<h1 class="text-4xl m-0">Mot de passe oublié</h1>
</div>
- <form class="form-portal" action="/mot-de-passe-oublie"
+ <form class="form-portal" action="/forgot-password"
method="post">
@csrf
<?php
-Route::get('/deconnexion', 'ClientController@logout');
-Route::post('/mot-de-passe-oublie', 'ClientForgotPassword@test')->name('password.email');
+Route::get('/deconnexion', 'Client\ClientController@logout');
+
+Route::post('/forgot-password', 'Client\ForgotPasswordController@sendResetLink')->name('password.email');
Route::get('{page}', 'PageController@catchall')->where([
'page' => '\b(changer-votre-mot-de-passe)\b'
])->name("password.reset")->middleware('client');
-Route::get('changer-votre-mot-de-passe', 'ClientChangePassword@view')->name("password.reset")->middleware('client');
+Route::get('/changer-votre-mot-de-passe', 'Client\ResetPasswordController@view')->name("password.reset")->middleware('client');
-Route::post('/reset-password', 'ClientForgotPassword@reset')->name('password.update');
+Route::post('/reset-password', 'Client\ResetPasswordController@resetPassword')->name('password.update');
//add specific name to be simple to add active class
//add middleware to secure this specific page