@@ -6,7 +6,7 @@ use Illuminate\Http\Request; | |||||
use App\Models\User; | use App\Models\User; | ||||
use App\Models\Order; | use App\Models\Order; | ||||
use App\Models\Service; | use App\Models\Service; | ||||
use App\Notifications\ChangeEmail; | use App\Mail\ChangeEmail; | ||||
use Illuminate\Support\Facades\Log; | use Illuminate\Support\Facades\Log; | ||||
use Illuminate\Support\Facades\Hash; | use Illuminate\Support\Facades\Hash; | ||||
@@ -14,6 +14,8 @@ use Illuminate\Support\Facades\URL; | |||||
use Illuminate\Auth\Events\Registered; | use Illuminate\Auth\Events\Registered; | ||||
use Illuminate\Support\Facades\Password; | use Illuminate\Support\Facades\Password; | ||||
use Illuminate\Support\Facades\Auth; | use Illuminate\Support\Facades\Auth; | ||||
use Illuminate\Notifications\Messages\MailMessage; | |||||
use Mail; | |||||
use Stripe\Stripe; | use Stripe\Stripe; | ||||
use Stripe\Customer; | use Stripe\Customer; | ||||
@@ -36,6 +38,7 @@ class UserController extends Controller | |||||
$user->password = Hash::make($request->password); | $user->password = Hash::make($request->password); | ||||
$user->save(); | $user->save(); | ||||
Auth::login($user); | |||||
event(new Registered($user)); | event(new Registered($user)); | ||||
} | } | ||||
@@ -99,10 +102,8 @@ class UserController extends Controller | |||||
$validated = $request->validate([ | $validated = $request->validate([ | ||||
'name' => 'required|max:30' | 'name' => 'required|max:30' | ||||
]); | ]); | ||||
Stripe::setApiKey(config('services.stripe.secret')); | |||||
$user = Auth::user(); | $user = Auth::user(); | ||||
$user->name = $request->name; | $user->name = $request->name; | ||||
Customer::update($user->customer_id, ['name' => $request->name]); | |||||
$user->save(); | $user->save(); | ||||
return $user; | return $user; | ||||
} | } | ||||
@@ -115,8 +116,8 @@ class UserController extends Controller | |||||
$link = URL::temporarySignedRoute('reset-email', now()->addDays(30), | $link = URL::temporarySignedRoute('reset-email', now()->addDays(30), | ||||
['user' => Auth::user()->id, 'email' => $request->email]); | ['user' => Auth::user()->id, 'email' => $request->email]); | ||||
Auth::user()->notify(new ChangeEmail($link, | Mail::to($request->email)->send(new ChangeEmail(Auth::user()->email, | ||||
$request->email)); | $link)); | ||||
} | } | ||||
@@ -0,0 +1,40 @@ | |||||
<?php | |||||
namespace App\Mail; | |||||
use Illuminate\Bus\Queueable; | |||||
use Illuminate\Contracts\Queue\ShouldQueue; | |||||
use Illuminate\Mail\Mailable; | |||||
use Illuminate\Queue\SerializesModels; | |||||
class ChangeEmail extends Mailable | |||||
{ | |||||
use Queueable, SerializesModels; | |||||
/** | |||||
* Create a new message instance. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public $current_email; | |||||
public $link; | |||||
public function __construct($current_email, $link) | |||||
{ | |||||
$this->current_email = $current_email; | |||||
$this->link = $link; | |||||
} | |||||
/** | |||||
* Build the message. | |||||
* | |||||
* @return $this | |||||
*/ | |||||
public function build() | |||||
{ | |||||
$this->view('change-email'); | |||||
$this->from('donotreply@trendplays.com'); | |||||
$this->subject('Email change requested'); | |||||
return $this; | |||||
} | |||||
} |
@@ -1,66 +0,0 @@ | |||||
<?php | |||||
namespace App\Notifications; | |||||
use Illuminate\Bus\Queueable; | |||||
use Illuminate\Contracts\Queue\ShouldQueue; | |||||
use Illuminate\Notifications\Messages\MailMessage; | |||||
use Illuminate\Notifications\Notification; | |||||
class ChangeEmail extends Notification | |||||
{ | |||||
use Queueable; | |||||
private $link; | |||||
private $email; | |||||
/** | |||||
* Create a new notification instance. | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function __construct($link, $email) | |||||
{ | |||||
$this->link = $link; | |||||
$this->email = $email; | |||||
} | |||||
/** | |||||
* Get the notification's delivery channels. | |||||
* | |||||
* @param mixed $notifiable | |||||
* @return array | |||||
*/ | |||||
public function via($notifiable) | |||||
{ | |||||
return ['mail']; | |||||
} | |||||
/** | |||||
* Get the mail representation of the notification. | |||||
* | |||||
* @param mixed $notifiable | |||||
* @return \Illuminate\Notifications\Messages\MailMessage | |||||
*/ | |||||
public function toMail($notifiable) | |||||
{ | |||||
return (new MailMessage) | |||||
->line('An email change has been requested. Please confirm your new address by clicking the link below.') | |||||
->action('Confirm', $this->link) | |||||
->to($this->email) | |||||
->line('If you do not recognize this activity, please disregard this email.'); | |||||
} | |||||
/** | |||||
* Get the array representation of the notification. | |||||
* | |||||
* @param mixed $notifiable | |||||
* @return array | |||||
*/ | |||||
public function toArray($notifiable) | |||||
{ | |||||
return [ | |||||
// | |||||
]; | |||||
} | |||||
} |
@@ -0,0 +1,26 @@ | |||||
@extends('master') | |||||
@section('title', 'Change Email') | |||||
@section('head-metas') | |||||
@parent | |||||
<link rel="stylesheet" href="/css/app.css"> | |||||
<link rel="stylesheet" href="/css/panel.css"> | |||||
@endsection | |||||
@section('content') | |||||
@parent | |||||
<main id="ticket-email"> | |||||
<h3>An email change has been requested from {{$current_email}}</h3> | |||||
<a href="{{$link}}"><button>Confirm</button></a> | |||||
<small>If you do not recognize this activity, please disregard this | |||||
message.</small> | |||||
</main> | |||||
@endsection | |||||
@section('footer') | |||||
@endsection |
@@ -10,7 +10,6 @@ use App\Http\Controllers\Ticket; | |||||
use Illuminate\Foundation\Auth\EmailVerificationRequest; | use Illuminate\Foundation\Auth\EmailVerificationRequest; | ||||
use Illuminate\Http\Request; | use Illuminate\Http\Request; | ||||
use Illuminate\Support\Facades\Auth; | use Illuminate\Support\Facades\Auth; | ||||
use App\Notifications\ChangeEmail; | |||||
/* | /* | ||||
|-------------------------------------------------------------------------- | |-------------------------------------------------------------------------- | ||||
@@ -43,16 +42,11 @@ Route::get('/verify-email', function() { | |||||
} | } | ||||
})->middleware('auth')->name('verification.notice'); | })->middleware('auth')->name('verification.notice'); | ||||
Route::get('/verify/{id}/{hash}', function (EmailVerificationRequest $request, $id) { | Route::get('/verify/{id}/{hash}', function (EmailVerificationRequest $request) { | ||||
if (Auth::user()->email_verified_at) { | |||||
abort(404); | |||||
} | |||||
Auth::loginUsingId($id); | |||||
$request->fulfill(); | $request->fulfill(); | ||||
return redirect('/panel'); | return redirect('/panel'); | ||||
})->middleware(['signed'])->name('verification.verify'); | })->middleware(['auth', 'signed'])->name('verification.verify'); | ||||
Route::post('/resend-verification', function (Request $request) { | Route::post('/resend-verification', function (Request $request) { | ||||
if (Auth::user()->email_verified_at) { | if (Auth::user()->email_verified_at) { | ||||