diff --git a/app/Http/Controllers/RegistrationController.php b/app/Http/Controllers/RegistrationController.php index 1446e00..f1ddd62 100644 --- a/app/Http/Controllers/RegistrationController.php +++ b/app/Http/Controllers/RegistrationController.php @@ -2,8 +2,10 @@ namespace App\Http\Controllers; +use Illuminate\Support\Facades\Input; use Illuminate\Http\Request; use App\User; +use Mail; use App\Rules\Pesel; /* 'phoneNumber' => 'required|regex:/^([0-9\s\-\+\(\)]*)$/|min:9' */ @@ -39,6 +41,9 @@ class RegistrationController extends Controller $request = request(); + + $confirmation_code = str_random(30); + $user = User::create([ 'password' => $request-> password, 'email' => $request-> email, @@ -48,13 +53,45 @@ class RegistrationController extends Controller 'phoneNumber' => $request-> phoneNumber, 'functionID' => 1, 'degreeID' => 1, - 'number' => 'ABC123' + 'number' => 'ABC123', + 'confirmation_code' => $confirmation_code ]); + Mail::send('emails.verify', compact('confirmation_code'), function($message) { + $message->to(Input::get('email'), Input::get('name'))->subject('Weryfikacja adresu e-mail'); + }); + + //Flash::message('Thanks for signing up! Please check your email.'); + auth()->login($user); return redirect()->to('/jednostka'); } + + public function confirm($confirmation_code) + { + if( ! $confirmation_code) + { + throw new InvalidConfirmationCodeException; + } + + $user = User::whereConfirmationCode($confirmation_code)->first(); + + if ( ! $user) + { + throw new InvalidConfirmationCodeException; + } + + $user->confirmed = 1; + $user->confirmation_code = null; + $user->email_verified_at = now(); + $user->save(); + + //Flash::message('You have successfully verified your account.'); + + return redirect()->to('/jednostka'); + } + } diff --git a/app/Http/Controllers/fireFightersController.php b/app/Http/Controllers/fireFightersController.php index 7cdd8ed..db0870f 100644 --- a/app/Http/Controllers/fireFightersController.php +++ b/app/Http/Controllers/fireFightersController.php @@ -16,6 +16,7 @@ class fireFightersController extends Controller if(auth()->user() != null && auth()->user()->fireStationID != null ){ // $users = user::where("fireStationID", auth()->user()->fireStationID)->get(); $users = DB::table('users')->where("fireStationID", '=', auth()->user()->fireStationID)->get(); + echo ""; return view("fireFighters", ["users" => $users]); } else{ return view('fireFighters'); @@ -28,7 +29,7 @@ class fireFightersController extends Controller $fireStation = fireStation::find(auth()->user()->fireStationID); if($fireStation-> creatorID == auth()->user()->id){ return view('fireFightersAdd'); - } else return view("fireFighters"); + } else return fireFightersController::create(); } else return view("unit"); } @@ -84,7 +85,7 @@ class fireFightersController extends Controller 'changingID' => auth()->user()-> id ]); - return view('fireFighters'); + return fireFightersController::create(); } diff --git a/app/Http/Controllers/fireStationController.php b/app/Http/Controllers/fireStationController.php index 4f9de4d..a97e451 100644 --- a/app/Http/Controllers/fireStationController.php +++ b/app/Http/Controllers/fireStationController.php @@ -51,12 +51,17 @@ class fireStationController extends Controller $request = request(); + + $voivodeship = DB::table('wojewodztwa')->select('name')->where('id', $request -> voivodeship)->first(); + $county = DB::table('powiaty')->select('name')->where('id', $request -> county)->first(); + $community = DB::table('gminy')->select('name')->where('id', $request -> community)->first(); + $jednostka = fireStation::create([ 'name' => $request -> unitName, 'number' => $request -> number, - 'voivodeship' => $request -> voivodeship, - 'county' => $request -> county, - 'community' => $request -> community, + 'voivodeship' => $voivodeship -> name, + 'county' => $county -> name, + 'community' => $community -> name, 'postOffice' => $request -> postOffice, 'zipCode' => $request -> zipCode, 'address' => $request -> address, diff --git a/app/User.php b/app/User.php index 1ac71ef..9bf1995 100644 --- a/app/User.php +++ b/app/User.php @@ -18,7 +18,7 @@ class User extends Authenticatable * @var array */ protected $fillable = [ - 'name', 'surname', 'password', 'PESEL', 'phoneNumber', 'email', 'fireStationID', 'functionID', 'degreeID', 'number', 'statusID', 'deleted', 'creatorID', 'changingID', + 'name', 'surname', 'password', 'PESEL', 'phoneNumber', 'email', 'fireStationID', 'functionID', 'degreeID', 'number', 'statusID', 'deleted', 'creatorID', 'changingID', 'confirmation_code', ]; /** diff --git a/config/mail.php b/config/mail.php index f400645..6eb539c 100644 --- a/config/mail.php +++ b/config/mail.php @@ -29,7 +29,7 @@ return [ | */ - 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + 'host' => env('MAIL_HOST', 'mailtrap.io'), /* |-------------------------------------------------------------------------- @@ -42,7 +42,7 @@ return [ | */ - 'port' => env('MAIL_PORT', 587), + 'port' => env('MAIL_PORT', 2525), /* |-------------------------------------------------------------------------- diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 7c5efa6..bd0ae30 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -29,6 +29,8 @@ class CreateUsersTable extends Migration $table->integer('deleted')->default(0); $table->integer('creatorID')->nullable()->default(null); $table->integer('changingID')->nullable()->default(null); + $table->boolean('confirmed')->default(0); + $table->string('confirmation_code')->nullable(); $table->timestamp('email_verified_at')->nullable(); $table->rememberToken(); $table->timestamps(); diff --git a/resources/views/emails/verify.blade.php b/resources/views/emails/verify.blade.php new file mode 100644 index 0000000..be96a1c --- /dev/null +++ b/resources/views/emails/verify.blade.php @@ -0,0 +1,17 @@ + + + + + + +

Weryfikacja adresu e-mail

+ +
+ Dziękujemy za utworzenie konta w serwisie eOSP. Proszę kliknąć w link poniżej by dokonać weryfikacji adresu e-mail {{ URL::to('register/verify/' . $confirmation_code) }}
+ + W razie problemów proszę wkleić powyższy link w polu adresowym przeglądarki internetowej. + +
+ + + \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 2ed96e3..c7fe621 100644 --- a/routes/web.php +++ b/routes/web.php @@ -57,6 +57,11 @@ Route::get('/jednostka/getcounties/{id}','DataController@getCounties'); Route::get('/jednostka/getcommunities/{id}','DataController@getCommunities'); +Route::get('register/verify/{confirmationCode}', [ + 'as' => 'confirmation_path', + 'uses' => 'RegistrationController@confirm' +]); + //Auth::routes(); // //Route::get('/home', 'HomeController@index')->name('home');