From ab5480fdc9b50066833f1fe8840dd338964769a6 Mon Sep 17 00:00:00 2001 From: Nabeel Shahzad Date: Thu, 20 Sep 2018 11:14:18 -0500 Subject: [PATCH] Add explicit TOC accepted checkbox #244 --- .../2017_06_08_0000_create_users_table.php | 1 + app/Database/seeds/sample.yml | 6 +++ .../Controllers/Auth/RegisterController.php | 4 +- app/Models/User.php | 2 + resources/views/admin/users/fields.blade.php | 4 ++ .../layouts/default/auth/register.blade.php | 52 +++++++++++++++++-- 6 files changed, 65 insertions(+), 4 deletions(-) diff --git a/app/Database/migrations/2017_06_08_0000_create_users_table.php b/app/Database/migrations/2017_06_08_0000_create_users_table.php index 94640c59..32cbfff0 100755 --- a/app/Database/migrations/2017_06_08_0000_create_users_table.php +++ b/app/Database/migrations/2017_06_08_0000_create_users_table.php @@ -32,6 +32,7 @@ class CreateUsersTable extends Migration $table->string('timezone', 64)->nullable(); $table->unsignedTinyInteger('status')->nullable()->default(0); $table->unsignedTinyInteger('state')->nullable()->default(0); + $table->boolean('toc_accepted')->nullable(); $table->boolean('opt_in')->nullable(); $table->boolean('active')->nullable(); $table->ipAddress('last_ip')->nullable(); diff --git a/app/Database/seeds/sample.yml b/app/Database/seeds/sample.yml index ac4fe439..ca9564c4 100644 --- a/app/Database/seeds/sample.yml +++ b/app/Database/seeds/sample.yml @@ -25,6 +25,8 @@ users: flight_time: 0 timezone: America/Chicago state: 1 + opt_in: 1 + toc_accepted: 1 created_at: now updated_at: now - id: 2 @@ -41,6 +43,8 @@ users: created_at: now updated_at: now state: 0 + opt_in: 1 + toc_accepted: 1 - id: 3 name: Raymond Pearson email: raymond.pearson56@example.com @@ -55,6 +59,8 @@ users: created_at: now updated_at: now state: 1 + opt_in: 0 + toc_accepted: 1 role_user: - user_id: 1 diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 8626a147..83369583 100755 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -86,6 +86,7 @@ class RegisterController extends Controller 'airline_id' => 'required', 'home_airport_id' => 'required', 'password' => 'required|min:5|confirmed', + 'toc_accepted' => 'accepted', ]; if (config('captcha.enabled')) { @@ -117,7 +118,7 @@ class RegisterController extends Controller // Convert transfer hours into minutes if (isset($opts['transfer_time'])) { - $opts['transfer_time'] = $opts['transfer_time'] * 60; + $opts['transfer_time'] *= 60; } $user = User::create($opts); @@ -148,6 +149,7 @@ class RegisterController extends Controller 'timezone' => 'required', 'country' => 'required', 'transfer_time' => 'integer|min:0', + 'toc_accepted' => 'accepted', ]; if (config('captcha.enabled')) { diff --git a/app/Models/User.php b/app/Models/User.php index ed98748c..bd95c870 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -62,6 +62,7 @@ class User extends Authenticatable 'timezone', 'state', 'status', + 'toc_accepted', 'opt_in', 'created_at', 'updated_at', @@ -83,6 +84,7 @@ class User extends Authenticatable 'balance' => 'double', 'state' => 'integer', 'status' => 'integer', + 'toc_accepted' => 'boolean', 'opt_in' => 'boolean', ]; diff --git a/resources/views/admin/users/fields.blade.php b/resources/views/admin/users/fields.blade.php index eb289c41..997259d8 100644 --- a/resources/views/admin/users/fields.blade.php +++ b/resources/views/admin/users/fields.blade.php @@ -111,6 +111,10 @@ Last Login {{ show_datetime($user->updated_at) }} + + @lang('toc.title') + {{ $user->toc_accepted ? __('common.yes') : __('common.no') }} + @lang('profile.opt-in') {{ $user->opt_in ? __('common.yes') : __('common.no') }} diff --git a/resources/views/layouts/default/auth/register.blade.php b/resources/views/layouts/default/auth/register.blade.php index ac841cf3..a8a00836 100644 --- a/resources/views/layouts/default/auth/register.blade.php +++ b/resources/views/layouts/default/auth/register.blade.php @@ -95,11 +95,45 @@ @endif @endif - @include('auth.toc') +
+ @include('auth.toc') +
+
+ + + + + + + + + + +
+
+ {{ Form::hidden('toc_accepted', 0, false) }} + {{ Form::checkbox('toc_accepted', 1, null, ['id' => 'toc_accepted']) }} +
+
+ + @if ($errors->has('toc_accepted')) +

{{ $errors->first('toc_accepted') }}

+ @endif +
+
+ {{ Form::hidden('opt_in', 0, false) }} + {{ Form::checkbox('opt_in', 1, null) }} +
+
+ +
- @lang('auth.tocaccept')

- {{ Form::submit(__('auth.register'), ['class' => 'btn btn-primary']) }} + {{ Form::submit(__('auth.register'), [ + 'id' => 'register_button', + 'class' => 'btn btn-primary', + 'disabled' => true, + ]) }}
@@ -112,4 +146,16 @@ @section('scripts') {!! NoCaptcha::renderJs(config('app.locale')) !!} + + @endsection