From 266a9e5328a3870fb141785f630fd846d426ad76 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 06:53:47 -0700 Subject: [PATCH 01/21] Removed stored_eula_file from controller Signed-off-by: snipe --- app/Http/Controllers/Api/ReportsController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Http/Controllers/Api/ReportsController.php b/app/Http/Controllers/Api/ReportsController.php index 815138654..1406dba79 100644 --- a/app/Http/Controllers/Api/ReportsController.php +++ b/app/Http/Controllers/Api/ReportsController.php @@ -52,7 +52,6 @@ class ReportsController extends Controller 'accept_signature', 'action_type', 'note', - 'stored_eula_file', ]; $sort = in_array($request->input('sort'), $allowed_columns) ? e($request->input('sort')) : 'created_at'; From bcd0671213703b27f3d1f87bc32d4bed7489f01f Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 06:54:26 -0700 Subject: [PATCH 02/21] Migration to drop stored_eula_column MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It’s extraneous, since we already have a file field in the action_logs, and we already store the stored_eula_file in checkout_acceptances. Signed-off-by: snipe --- ..._05_16_235350_remove_stored_eula_field.php | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 database/migrations/2022_05_16_235350_remove_stored_eula_field.php diff --git a/database/migrations/2022_05_16_235350_remove_stored_eula_field.php b/database/migrations/2022_05_16_235350_remove_stored_eula_field.php new file mode 100644 index 000000000..48c8a1882 --- /dev/null +++ b/database/migrations/2022_05_16_235350_remove_stored_eula_field.php @@ -0,0 +1,48 @@ +get(); + + foreach ($actionlog_eulas as $eula_file) { + $eula_file->filename = $eula_file->stored_eula_file; + $eula_file->save(); + } + + $actionlog_bad_action_type = Actionlog::where('item_id', '=', 0)->whereNull('target_type')->whereNull('action_type')->whereNull('target_type')->get(); + + foreach ($actionlog_bad_action_type as $bad_action_type) { + $bad_action_type->delete(); + } + + Schema::table('action_logs', function (Blueprint $table) { + $table->dropColumn('stored_eula_file'); + }); + + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('action_logs', function (Blueprint $table) { + $table->string('stored_eula_file')->nullable()->default(null); + }); + } +} From d0e8a4ca0951b482901f80cb55b7d09b9310c45b Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 06:55:23 -0700 Subject: [PATCH 03/21] Added some comments for clarity Signed-off-by: snipe --- app/Listeners/LogListener.php | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/app/Listeners/LogListener.php b/app/Listeners/LogListener.php index 3988d116c..8fb6bfc00 100644 --- a/app/Listeners/LogListener.php +++ b/app/Listeners/LogListener.php @@ -22,24 +22,44 @@ use App\Models\LicenseSeat; class LogListener { + /** + * These onBlah methods are used by the subscribe() method further down in this file. + * This one creates an action_logs entry for the checkin + * @param CheckoutableCheckedIn $event + * @return void + * + */ public function onCheckoutableCheckedIn(CheckoutableCheckedIn $event) { $event->checkoutable->logCheckin($event->checkedOutTo, $event->note, $event->action_date); } + /** + * These onBlah methods are used by the subscribe() method further down in this file. + * This one creates an action_logs entry for the checkout + * + * @param CheckoutableCheckedOut $event + * @return void + * + */ public function onCheckoutableCheckedOut(CheckoutableCheckedOut $event) { $event->checkoutable->logCheckout($event->note, $event->checkedOutTo, $event->checkoutable->last_checkout); } + /** + * These onBlah methods are used by the subscribe() method further down in this file. + * This creates the entry in the action_logs table for the accept/decline action + */ public function onCheckoutAccepted(CheckoutAccepted $event) { + \Log::error('event passed to the onCheckoutAccepted listener:'); $logaction = new Actionlog(); $logaction->item()->associate($event->acceptance->checkoutable); $logaction->target()->associate($event->acceptance->assignedTo); $logaction->accept_signature = $event->acceptance->signature_filename; - $logaction->stored_eula_file = $event->acceptance->stored_eula_file; + $logaction->filename = $event->acceptance->stored_eula_file; $logaction->action_type = 'accepted'; // TODO: log the actual license seat that was checked out @@ -47,6 +67,7 @@ class LogListener $logaction->item()->associate($event->acceptance->checkoutable->license); } + \Log::debug('New onCheckoutAccepted Listener fired. logaction: '.print_r($logaction, true)); $logaction->save(); } From 4eab5fd075fedf937b21dc48d211d993bbf8a0d5 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 06:55:33 -0700 Subject: [PATCH 04/21] Removed older comments Signed-off-by: snipe --- app/Http/Controllers/Assets/AssetCheckinController.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index 8acc0a7b6..657b02171 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -98,9 +98,6 @@ class AssetCheckinController extends Controller } $asset->location_id = $asset->rtd_location_id; - \Log::debug('After Location ID: '.$asset->location_id); - \Log::debug('After RTD Location ID: '.$asset->rtd_location_id); - if ($request->filled('location_id')) { \Log::debug('NEW Location ID: '.$request->get('location_id')); From e467ce912b1725f8baf14340ffa7e205e9059d12 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 06:56:43 -0700 Subject: [PATCH 05/21] Added some debugging and comments Signed-off-by: snipe --- app/Listeners/CheckoutableListener.php | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/app/Listeners/CheckoutableListener.php b/app/Listeners/CheckoutableListener.php index 93d16ff5b..22006d1cc 100644 --- a/app/Listeners/CheckoutableListener.php +++ b/app/Listeners/CheckoutableListener.php @@ -24,10 +24,14 @@ use Illuminate\Support\Facades\Notification; class CheckoutableListener { /** - * Notify the user about the checked out checkoutable + * Notify the user about the checked out checkoutable and add a record to the + * checkout_requests table. */ public function onCheckedOut($event) { + + \Log::debug('onCheckedOut in the Checkoutable listener fired'); + /** * When the item wasn't checked out to a user, we can't send notifications */ @@ -58,14 +62,12 @@ class CheckoutableListener */ public function onCheckedIn($event) { - \Log::debug('checkin fired'); + \Log::debug('onCheckedIn in the Checkoutable listener fired'); /** * When the item wasn't checked out to a user, we can't send notifications */ if (! $event->checkedOutTo instanceof User) { - \Log::debug('checked out to not a user'); - return; } @@ -81,16 +83,14 @@ class CheckoutableListener $acceptance->delete(); } } - \Log::debug('checked out to a user'); + + // Use default locale if (! $event->checkedOutTo->locale) { - \Log::debug('Use default settings locale'); Notification::locale(Setting::getSettings()->locale)->send( $this->getNotifiables($event), $this->getCheckinNotification($event) ); } else { - \Log::debug('Use user locale? I do not think this works as expected yet'); - // \Log::debug(print_r($this->getNotifiables($event), true)); Notification::send( $this->getNotifiables($event), $this->getCheckinNotification($event) @@ -151,10 +151,6 @@ class CheckoutableListener private function getCheckinNotification($event) { - // $model = get_class($event->checkoutable); - - - $notificationClass = null; switch (get_class($event->checkoutable)) { From adbac82c303c420311e9e0f52efdd0eab6f11894 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 06:56:55 -0700 Subject: [PATCH 06/21] Removed stored_eula_file from actionlog Signed-off-by: snipe --- app/Models/Actionlog.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/Actionlog.php b/app/Models/Actionlog.php index 8d430c79d..2d406b3aa 100755 --- a/app/Models/Actionlog.php +++ b/app/Models/Actionlog.php @@ -25,7 +25,7 @@ class Actionlog extends SnipeModel protected $table = 'action_logs'; public $timestamps = true; - protected $fillable = ['created_at', 'item_type', 'user_id', 'item_id', 'action_type', 'note', 'target_id', 'target_type', 'stored_eula', 'stored_eula_file']; + protected $fillable = ['created_at', 'item_type', 'user_id', 'item_id', 'action_type', 'note', 'target_id', 'target_type', 'stored_eula']; use Searchable; From 93eba43b76c3939500f9420ba7a12a9d627b67d0 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 06:57:10 -0700 Subject: [PATCH 07/21] Removed trailing slash from route Signed-off-by: snipe --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index c6b53d915..63019632d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -125,7 +125,7 @@ Route::group(['middleware' => 'auth'], function () { [ActionlogController::class, 'displaySig'] )->name('log.signature.view'); Route::get( - 'stored-eula-file/{filename}/', + 'stored-eula-file/{filename}', [ActionlogController::class, 'getStoredEula'] )->name('log.storedeula.download'); }); From 14495cd1da6d62cd07f3a220d2d9c2596e59d404 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 06:57:47 -0700 Subject: [PATCH 08/21] Nicer PDF display Signed-off-by: snipe --- .../accept/accept-asset-eula.blade.php | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/resources/views/account/accept/accept-asset-eula.blade.php b/resources/views/account/accept/accept-asset-eula.blade.php index 0f6abefff..9c8261e1b 100644 --- a/resources/views/account/accept/accept-asset-eula.blade.php +++ b/resources/views/account/accept/accept-asset-eula.blade.php @@ -4,6 +4,11 @@ + @@ -15,23 +20,36 @@ @endif
-

Date: {{ date($date_settings) }}


-

Asset Tag: {{ $item_tag }}

-

Asset Model: {{ $item_model }}

-

Asset Serial: {{ $item_serial }}


+

+{{ trans('general.date') }}: {{ date($date_settings) }}
+{{ trans('general.asset_tag') }}: {{ $item_tag }}
+{{ trans('general.asset_model') }}: {{ $item_model }}
+{{ trans('general.serial') }}: {{ $item_serial }}

+ + @if ($eula) +
{!! $eula !!} +
@endif -
-

Assigned on: {{$check_out_date}}

-

Accepted on: {{$accepted_date}}

-

Assigned to: {{$assigned_to}}

+

+Assigned on: {{$check_out_date}}
+Accepted on: {{$accepted_date}}
+Assigned to: {{$assigned_to}} +

+ + @if ($signature) -
- -
+
+
+ {{ trans('general.signature') }} +
+
+ + {{$accepted_date}} +
@endif \ No newline at end of file From 8c64e7359a2263baf9b1c06cab565b751b05c978 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 06:59:24 -0700 Subject: [PATCH 09/21] Added signature column, removed stored_eula_file column Signed-off-by: snipe --- resources/views/hardware/view.blade.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index 39ca47d4d..78d8b6081 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -1100,8 +1100,10 @@ {{ trans('general.item') }} {{ trans('general.target') }} {{ trans('general.notes') }} - {{ trans('general.accept_eula') }} - {{ trans('general.download') }} + @if ($snipeSettings->require_accept_signature=='1') + {{ trans('general.signature') }} + @endif + {{ trans('general.download') }} {{ trans('admin/hardware/table.changed')}} From eb5f33e815dab129329f6ff7bfde78b5638518c6 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 07:00:30 -0700 Subject: [PATCH 10/21] Removed logging statement Signed-off-by: snipe --- app/Notifications/CheckinAssetNotification.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Notifications/CheckinAssetNotification.php b/app/Notifications/CheckinAssetNotification.php index fc2537704..9868ad1b4 100644 --- a/app/Notifications/CheckinAssetNotification.php +++ b/app/Notifications/CheckinAssetNotification.php @@ -54,7 +54,6 @@ class CheckinAssetNotification extends Notification * has the corresponding checkbox checked. */ if ($this->item->checkin_email() && $this->target instanceof User && $this->target->email != '') { - \Log::debug('use email'); $notifyBy[] = 'mail'; } From 75acb0f28a2c12a7efcf7732a1dad0e25e35c5eb Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 07:01:02 -0700 Subject: [PATCH 11/21] Added sig and eula pdf to checkout_acceptance Signed-off-by: snipe --- app/Models/CheckoutAcceptance.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/Models/CheckoutAcceptance.php b/app/Models/CheckoutAcceptance.php index cc6ca37fd..1f2af711f 100644 --- a/app/Models/CheckoutAcceptance.php +++ b/app/Models/CheckoutAcceptance.php @@ -57,20 +57,24 @@ class CheckoutAcceptance extends Model } /** - * Accept the checkout acceptance + * Add a record to the checkout_acceptance table ONLY. + * Do not add stuff here that doesn't have a corresponding column in the + * checkout_acceptances table or you'll get an error. * * @param string $signature_filename */ - public function accept($signature_filename) + public function accept($signature_filename, $eula = null, $filename = null) { $this->accepted_at = now(); $this->signature_filename = $signature_filename; + $this->stored_eula = $eula; + $this->stored_eula_file = $filename; $this->save(); /** * Update state for the checked out item */ - $this->checkoutable->acceptedCheckout($this->assignedTo, $signature_filename); + $this->checkoutable->acceptedCheckout($this->assignedTo, $signature_filename, $filename); } /** From ebd3c111298a6ba99171c3007de085dfa0c57f4e Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 07:01:12 -0700 Subject: [PATCH 12/21] Added singleton Signed-off-by: snipe --- app/Providers/SettingsServiceProvider.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Providers/SettingsServiceProvider.php b/app/Providers/SettingsServiceProvider.php index be9928282..8ab77c663 100644 --- a/app/Providers/SettingsServiceProvider.php +++ b/app/Providers/SettingsServiceProvider.php @@ -36,6 +36,11 @@ class SettingsServiceProvider extends ServiceProvider // Model paths and URLs + + \App::singleton('eula_pdf_path', function () { + return 'eula_pdf_path/'; + }); + \App::singleton('assets_upload_path', function () { return 'assets/'; }); From 8e85d316c90bfd8972859248db4d42ca664f93c0 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 07:01:33 -0700 Subject: [PATCH 13/21] Removed stored_eula_file from API transformer Signed-off-by: snipe --- app/Http/Transformers/ActionlogsTransformer.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/Http/Transformers/ActionlogsTransformer.php b/app/Http/Transformers/ActionlogsTransformer.php index fb2e291fd..12f89de2b 100644 --- a/app/Http/Transformers/ActionlogsTransformer.php +++ b/app/Http/Transformers/ActionlogsTransformer.php @@ -59,9 +59,14 @@ class ActionlogsTransformer $array = [ 'id' => (int) $actionlog->id, 'icon' => $icon, - 'file' => ($actionlog->filename!='') ? + 'file' => ($actionlog->filename!='') + ? [ - 'url' => route('show/assetfile', ['assetId' => $actionlog->item->id, 'fileId' => $actionlog->id]), + 'url' => ($actionlog->present()->actionType()=='accepted') + ? + route('log.storedeula.download', ['filename' => $actionlog->filename]) + : + route('show/assetfile', ['assetId' => $actionlog->id, 'fileId' => $actionlog->id]), 'filename' => $actionlog->filename, 'inlineable' => (bool) Helper::show_file_inline($actionlog->filename), ] : null, @@ -96,7 +101,6 @@ class ActionlogsTransformer 'signature_file' => ($actionlog->accept_signature) ? route('log.signature.view', ['filename' => $actionlog->accept_signature ]) : null, 'log_meta' => ((isset($clean_meta)) && (is_array($clean_meta))) ? $clean_meta: null, 'action_date' => ($actionlog->action_date) ? Helper::getFormattedDateObject($actionlog->action_date, 'datetime'): Helper::getFormattedDateObject($actionlog->created_at, 'datetime'), - 'stored_eula_file' => ($actionlog->stored_eula_file) ? route('log.storedeula.download', ['filename' => $actionlog->stored_eula_file]) : null, ]; //\Log::info("Clean Meta is: ".print_r($clean_meta,true)); From afb3843fad71c28c199bb440af42dd20151ed552 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 07:01:56 -0700 Subject: [PATCH 14/21] Added sig and filename to acceptedCheckout method Signed-off-by: snipe --- app/Models/Traits/Acceptable.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Models/Traits/Acceptable.php b/app/Models/Traits/Acceptable.php index b0ddd665a..967d878fa 100644 --- a/app/Models/Traits/Acceptable.php +++ b/app/Models/Traits/Acceptable.php @@ -17,8 +17,9 @@ trait Acceptable * @param User $acceptedBy * @param string $signature */ - public function acceptedCheckout(User $acceptedBy, $signature) + public function acceptedCheckout(User $acceptedBy, $signature, $filename = null) { + \Log::debug('acceptedCheckout in Acceptable trait fired, tho it doesn\'t do anything?'); } /** From b7eb72fe4987ce19dd1c5ea1bda74c4c379e3e74 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 07:08:37 -0700 Subject: [PATCH 15/21] Rough refactor of the acceptance controller Signed-off-by: snipe --- .../Account/AcceptanceController.php | 113 +++++++++--------- 1 file changed, 59 insertions(+), 54 deletions(-) diff --git a/app/Http/Controllers/Account/AcceptanceController.php b/app/Http/Controllers/Account/AcceptanceController.php index 788a921f9..8726c058c 100644 --- a/app/Http/Controllers/Account/AcceptanceController.php +++ b/app/Http/Controllers/Account/AcceptanceController.php @@ -106,87 +106,92 @@ class AcceptanceController extends Controller Storage::makeDirectory('private_uploads/signatures', 775); } - $sig_filename = ''; - if ($request->filled('signature_output')) { - $sig_filename = 'siglog-'.Str::uuid().'-'.date('Y-m-d-his').'.png'; - $data_uri = e($request->input('signature_output')); - $encoded_image = explode(',', $data_uri); - $decoded_image = base64_decode($encoded_image[1]); - $acceptance->stored_eula_file = 'accepted-eula-'.date('Y-m-d-h-i-s').'.pdf'; - $path = Storage::put('private_uploads/signatures/'.$sig_filename, (string) $decoded_image); + /** + * Check for the eula-pdfs directory + */ + if (! Storage::exists('private_uploads/eula-pdfs')) { + Storage::makeDirectory('private_uploads/eula-pdfs', 775); } + $sig_filename = ''; + $item = $acceptance->checkoutable_type::find($acceptance->checkoutable_id); + $display_model = ''; + $pdf_view_route = ''; + $pdf_filename = 'accepted-eula-'.date('Y-m-d-h-i-s').'.pdf'; + if ($request->input('asset_acceptance') == 'accepted') { - $acceptance->accept($sig_filename); - event(new CheckoutAccepted($acceptance)); - - $return_msg = trans('admin/users/message.accepted'); + // The item was accepted, check for a signature + if ($request->filled('signature_output')) { + $sig_filename = 'siglog-'.Str::uuid().'-'.date('Y-m-d-his').'.png'; + $data_uri = e($request->input('signature_output')); + $encoded_image = explode(',', $data_uri); + $decoded_image = base64_decode($encoded_image[1]); + Storage::put('private_uploads/signatures/'.$sig_filename, (string) $decoded_image); + } - } else { - $acceptance->decline($sig_filename); + // this is horrible + if ($acceptance->checkoutable_type== 'App\Models\Asset') { + $pdf_view_route ='account.accept.accept-asset-eula'; + $asset_model = AssetModel::find($item->model_id); + $display_model = $asset_model->name; - event(new CheckoutDeclined($acceptance)); - $return_msg = trans('admin/users/message.declined'); - } +// } elseif ($acceptance->checkoutable_type== 'App\Models\License') { +// $pdf_view_route ='account.accept.accept-license-eula'; +// $license = License::find($item->id); +// $display_model = $license->name; - $item = $acceptance->checkoutable_type::find($acceptance->checkoutable_id); + } elseif ($acceptance->checkoutable_type== 'App\Models\Accessory') { + $pdf_view_route ='account.accept.accept-accessory-eula'; + $accessory = Accessory::find($item->id); + $display_model = $accessory->name; + $assigned_to = User::find($item->assigned_to); - if ($acceptance->checkoutable_type== 'App\Models\Asset') { - $assigned_to = User::find($item->assigned_to); - $asset_model = AssetModel::find($item->model_id); +// } elseif ($acceptance->checkoutable_type== 'App\Models\Consumable') { +// $pdf_view_route ='account.accept.accept-consumable-eula'; +// $consumable = Consumable::find($item->id); +// $display_model = $consumable->name; + + } + + /** + * Gather the data for the PDF + */ $branding_settings = SettingsController::getPDFBranding(); $data = [ 'item_tag' => $item->asset_tag, - 'item_model' => $asset_model->name, + 'item_model' => $display_model, 'item_serial' => $item->serial, 'eula' => $item->getEula(), 'check_out_date' => Carbon::parse($acceptance->created_at)->format($branding_settings->date_display_format), 'accepted_date' => Carbon::parse($acceptance->accepted_at)->format($branding_settings->date_display_format), - 'assigned_to' => $assigned_to->first_name . ' ' . $assigned_to->last_name, + 'assigned_to' => $assigned_to, 'company_name' => $branding_settings->site_name, 'signature' => storage_path() . '/private_uploads/signatures/' . $sig_filename, 'logo' => public_path() . '/uploads/' . $branding_settings->logo, 'date_settings' => $branding_settings->date_display_format, ]; - $pdf = Pdf::loadView('account.accept.accept-asset-eula', $data); - Storage::put('private_uploads/eula-pdfs/' . $acceptance->stored_eula_file, $pdf->output()); - $a = new Actionlog(); - $a->stored_eula = $item->getEula(); - $a->stored_eula_file = $acceptance->stored_eula_file; - $a->save(); + if ($pdf_view_route!='') { + $pdf = Pdf::loadView($pdf_view_route, $data); + Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf->output()); + } - return redirect()->to('account/accept')->with('success', $return_msg); + $acceptance->accept($sig_filename, $item->getEula(), $pdf_filename); + event(new CheckoutAccepted($acceptance)); + + $return_msg = trans('admin/users/message.accepted'); + + } else { + $acceptance->decline($sig_filename); + event(new CheckoutDeclined($acceptance)); + $return_msg = trans('admin/users/message.declined'); } -// - $accessory_user= DB::table('checkout_acceptances')->find($acceptance->assigned_to_id); - $assigned_to = User::find($accessory_user->assigned_to_id); - $accessory_model = Accessory::find($item->id); - $branding_settings = SettingsController::getPDFBranding(); - $data = [ - 'item_tag' => $item->model_number, - 'item_model' => $accessory_model->name, - 'eula' => $item->getEula(), - 'check_out_date' => Carbon::parse($acceptance->created_at)->format($branding_settings->date_display_format), - 'accepted_date' => Carbon::parse($acceptance->accepted_at)->format($branding_settings->date_display_format), -// 'assigned_by' => self - 'assigned_to' => $assigned_to->first_name . ' ' . $assigned_to->last_name, - 'company_name' => $branding_settings->site_name, - 'signature' => storage_path() . '/private_uploads/signatures/' . $sig_filename, - 'logo' => public_path() . '/uploads/' . $branding_settings->logo, - 'date_settings' => $branding_settings->date_display_format, - ]; - $pdf = Pdf::loadView('account.accept.accept-accessory-eula', $data); - Storage::put('private_uploads/eula-pdfs/' . $acceptance->stored_eula_file, $pdf->output()); - $a = new Actionlog(); - $a->stored_eula = $item->getEula(); - $a->stored_eula_file = $acceptance->stored_eula_file; - $a->save(); return redirect()->to('account/accept')->with('success', $return_msg); + } } \ No newline at end of file From 2bd0679a8165cfb8281c410446f022b165824c19 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 17 May 2022 07:27:03 -0700 Subject: [PATCH 16/21] A few more tweaks to PDFs Signed-off-by: snipe --- .../accept/accept-accessory-eula.blade.php | 34 +++++++++++++------ .../accept/accept-asset-eula.blade.php | 7 +--- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/resources/views/account/accept/accept-accessory-eula.blade.php b/resources/views/account/accept/accept-accessory-eula.blade.php index d2eb09017..723653825 100644 --- a/resources/views/account/accept/accept-accessory-eula.blade.php +++ b/resources/views/account/accept/accept-accessory-eula.blade.php @@ -4,6 +4,11 @@ + @@ -15,22 +20,31 @@ @endif
-

Date: {{ date($date_settings) }}


-

Asset Tag: {{ $item_tag }}

-

Asset Model: {{ $item_model }}

+

+ {{ trans('general.date') }}: {{ date($date_settings) }}
+ {{ trans('general.asset_tag') }}: {{ $item_tag }}
+ {{ trans('general.asset_model') }}: {{ $item_model }}
+ {{ trans('general.serial') }}: {{ $item_serial }}

+ + @if ($eula) +
{!! $eula !!} +
@endif -
-

Assigned on: {{$check_out_date}}

-

Accepted on: {{$accepted_date}}

-

Assigned to: {{$assigned_to}}

+

+ Assigned on: {{$check_out_date}}
+ Assigned to: {{$assigned_to}} +

+ + @if ($signature) -
- -
+
+
+ {{ trans('general.signature') }}: {{$accepted_date}} +
@endif \ No newline at end of file diff --git a/resources/views/account/accept/accept-asset-eula.blade.php b/resources/views/account/accept/accept-asset-eula.blade.php index 9c8261e1b..b9d2cdd91 100644 --- a/resources/views/account/accept/accept-asset-eula.blade.php +++ b/resources/views/account/accept/accept-asset-eula.blade.php @@ -36,7 +36,6 @@

Assigned on: {{$check_out_date}}
-Accepted on: {{$accepted_date}}
Assigned to: {{$assigned_to}}

@@ -44,11 +43,7 @@ Assigned to: {{$assigned_to}} @if ($signature)

- {{ trans('general.signature') }} -
-
- - {{$accepted_date}} + {{ trans('general.signature') }}: {{$accepted_date}}
@endif From a37a576ee59b853c876bd01223e4bf15aacdbc71 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 18 May 2022 11:09:46 -0700 Subject: [PATCH 17/21] FIxed translation string Signed-off-by: snipe --- resources/views/account/accept/accept-asset-eula.blade.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/views/account/accept/accept-asset-eula.blade.php b/resources/views/account/accept/accept-asset-eula.blade.php index b9d2cdd91..c987c7e2d 100644 --- a/resources/views/account/accept/accept-asset-eula.blade.php +++ b/resources/views/account/accept/accept-asset-eula.blade.php @@ -7,6 +7,7 @@ @@ -24,7 +25,7 @@ {{ trans('general.date') }}: {{ date($date_settings) }}
{{ trans('general.asset_tag') }}: {{ $item_tag }}
{{ trans('general.asset_model') }}: {{ $item_model }}
-{{ trans('general.serial') }}: {{ $item_serial }}

+{{ trans('admin/hardward/form.serial') }}: {{ $item_serial }}

@if ($eula) From 625f12081379875c9b468308669338cb36c0c56a Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 18 May 2022 11:09:56 -0700 Subject: [PATCH 18/21] Removed unused cases Signed-off-by: snipe --- .../Controllers/Account/AcceptanceController.php | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/Account/AcceptanceController.php b/app/Http/Controllers/Account/AcceptanceController.php index 8726c058c..22567985e 100644 --- a/app/Http/Controllers/Account/AcceptanceController.php +++ b/app/Http/Controllers/Account/AcceptanceController.php @@ -132,16 +132,11 @@ class AcceptanceController extends Controller // this is horrible - if ($acceptance->checkoutable_type== 'App\Models\Asset') { + if ($acceptance->checkoutable_type == 'App\Models\Asset') { $pdf_view_route ='account.accept.accept-asset-eula'; $asset_model = AssetModel::find($item->model_id); $display_model = $asset_model->name; - - -// } elseif ($acceptance->checkoutable_type== 'App\Models\License') { -// $pdf_view_route ='account.accept.accept-license-eula'; -// $license = License::find($item->id); -// $display_model = $license->name; + $assigned_to = User::find($item->assigned_to); } elseif ($acceptance->checkoutable_type== 'App\Models\Accessory') { $pdf_view_route ='account.accept.accept-accessory-eula'; @@ -149,11 +144,6 @@ class AcceptanceController extends Controller $display_model = $accessory->name; $assigned_to = User::find($item->assigned_to); -// } elseif ($acceptance->checkoutable_type== 'App\Models\Consumable') { -// $pdf_view_route ='account.accept.accept-consumable-eula'; -// $consumable = Consumable::find($item->id); -// $display_model = $consumable->name; - } /** From f439970e7ad5e9ebc9f1895a1a00e13744ba7333 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 19 May 2022 11:27:56 -0700 Subject: [PATCH 19/21] Fixed typo Signed-off-by: snipe --- resources/views/account/accept/accept-asset-eula.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/account/accept/accept-asset-eula.blade.php b/resources/views/account/accept/accept-asset-eula.blade.php index c987c7e2d..611772cf1 100644 --- a/resources/views/account/accept/accept-asset-eula.blade.php +++ b/resources/views/account/accept/accept-asset-eula.blade.php @@ -13,7 +13,7 @@ -@if ($signature) +@if ($logo)

{{$company_name}}

@@ -25,7 +25,7 @@ {{ trans('general.date') }}: {{ date($date_settings) }}
{{ trans('general.asset_tag') }}: {{ $item_tag }}
{{ trans('general.asset_model') }}: {{ $item_model }}
-{{ trans('admin/hardward/form.serial') }}: {{ $item_serial }}

+{{ trans('admin/hardware/form.serial') }}: {{ $item_serial }}

@if ($eula) From ad8143b0bd99786d9f2585dcf17bbc9db6298a2b Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 19 May 2022 11:28:14 -0700 Subject: [PATCH 20/21] Added comments Signed-off-by: snipe --- .../Controllers/Account/AcceptanceController.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Account/AcceptanceController.php b/app/Http/Controllers/Account/AcceptanceController.php index 22567985e..2342b3fc6 100644 --- a/app/Http/Controllers/Account/AcceptanceController.php +++ b/app/Http/Controllers/Account/AcceptanceController.php @@ -124,7 +124,7 @@ class AcceptanceController extends Controller // The item was accepted, check for a signature if ($request->filled('signature_output')) { $sig_filename = 'siglog-'.Str::uuid().'-'.date('Y-m-d-his').'.png'; - $data_uri = e($request->input('signature_output')); + $data_uri = $request->input('signature_output'); $encoded_image = explode(',', $data_uri); $decoded_image = base64_decode($encoded_image[1]); Storage::put('private_uploads/signatures/'.$sig_filename, (string) $decoded_image); @@ -136,18 +136,19 @@ class AcceptanceController extends Controller $pdf_view_route ='account.accept.accept-asset-eula'; $asset_model = AssetModel::find($item->model_id); $display_model = $asset_model->name; - $assigned_to = User::find($item->assigned_to); + $assigned_to = User::find($item->assigned_to)->present()->fullName; } elseif ($acceptance->checkoutable_type== 'App\Models\Accessory') { $pdf_view_route ='account.accept.accept-accessory-eula'; $accessory = Accessory::find($item->id); $display_model = $accessory->name; - $assigned_to = User::find($item->assigned_to); + $assigned_to = User::find($item->assignedTo); } /** - * Gather the data for the PDF + * Gather the data for the PDF. We fire this whether there is a signature required or not, + * since we want the moment-in-time proof of what the EULA was when they accepted it. */ $branding_settings = SettingsController::getPDFBranding(); $data = [ @@ -159,12 +160,13 @@ class AcceptanceController extends Controller 'accepted_date' => Carbon::parse($acceptance->accepted_at)->format($branding_settings->date_display_format), 'assigned_to' => $assigned_to, 'company_name' => $branding_settings->site_name, - 'signature' => storage_path() . '/private_uploads/signatures/' . $sig_filename, + 'signature' => '', 'logo' => public_path() . '/uploads/' . $branding_settings->logo, 'date_settings' => $branding_settings->date_display_format, ]; if ($pdf_view_route!='') { + \Log::debug($pdf_filename.' is the filename, and the route was specified.'); $pdf = Pdf::loadView($pdf_view_route, $data); Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf->output()); } From bd384d3f1099db0055ee8f68f4122b003d84421f Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 19 May 2022 17:53:30 -0700 Subject: [PATCH 21/21] Small formatting fixes Signed-off-by: snipe --- .../Account/AcceptanceController.php | 5 +++-- .../accept/accept-accessory-eula.blade.php | 17 +++++++---------- .../account/accept/accept-asset-eula.blade.php | 13 ++++++------- resources/views/account/accept/create.blade.php | 6 +++--- 4 files changed, 19 insertions(+), 22 deletions(-) diff --git a/app/Http/Controllers/Account/AcceptanceController.php b/app/Http/Controllers/Account/AcceptanceController.php index 2342b3fc6..a40a58634 100644 --- a/app/Http/Controllers/Account/AcceptanceController.php +++ b/app/Http/Controllers/Account/AcceptanceController.php @@ -113,11 +113,12 @@ class AcceptanceController extends Controller Storage::makeDirectory('private_uploads/eula-pdfs', 775); } - $sig_filename = ''; $item = $acceptance->checkoutable_type::find($acceptance->checkoutable_id); $display_model = ''; $pdf_view_route = ''; $pdf_filename = 'accepted-eula-'.date('Y-m-d-h-i-s').'.pdf'; + $sig_filename=''; + if ($request->input('asset_acceptance') == 'accepted') { @@ -160,7 +161,7 @@ class AcceptanceController extends Controller 'accepted_date' => Carbon::parse($acceptance->accepted_at)->format($branding_settings->date_display_format), 'assigned_to' => $assigned_to, 'company_name' => $branding_settings->site_name, - 'signature' => '', + 'signature' => ($sig_filename) ? storage_path() . '/private_uploads/signatures/' . $sig_filename : null, 'logo' => public_path() . '/uploads/' . $branding_settings->logo, 'date_settings' => $branding_settings->date_display_format, ]; diff --git a/resources/views/account/accept/accept-accessory-eula.blade.php b/resources/views/account/accept/accept-accessory-eula.blade.php index 723653825..98b80ba09 100644 --- a/resources/views/account/accept/accept-accessory-eula.blade.php +++ b/resources/views/account/accept/accept-accessory-eula.blade.php @@ -7,12 +7,13 @@ -@if ($signature) +@if ($logo)

{{$company_name}}

@@ -22,10 +23,8 @@

{{ trans('general.date') }}: {{ date($date_settings) }}
- {{ trans('general.asset_tag') }}: {{ $item_tag }}
{{ trans('general.asset_model') }}: {{ $item_model }}
- {{ trans('general.serial') }}: {{ $item_serial }}

- +

@if ($eula)
@@ -36,15 +35,13 @@

Assigned on: {{$check_out_date}}
- Assigned to: {{$assigned_to}} + Assigned to: {{$assigned_to}}
+ Accepted on: {{$accepted_date}}

-@if ($signature) -
-
- {{ trans('general.signature') }}: {{$accepted_date}} -
+@if ($signature!='') + @endif \ No newline at end of file diff --git a/resources/views/account/accept/accept-asset-eula.blade.php b/resources/views/account/accept/accept-asset-eula.blade.php index 611772cf1..c5d496310 100644 --- a/resources/views/account/accept/accept-asset-eula.blade.php +++ b/resources/views/account/accept/accept-asset-eula.blade.php @@ -25,7 +25,8 @@ {{ trans('general.date') }}: {{ date($date_settings) }}
{{ trans('general.asset_tag') }}: {{ $item_tag }}
{{ trans('general.asset_model') }}: {{ $item_model }}
-{{ trans('admin/hardware/form.serial') }}: {{ $item_serial }}

+{{ trans('admin/hardware/form.serial') }}: {{ $item_serial }} +

@if ($eula) @@ -37,15 +38,13 @@

Assigned on: {{$check_out_date}}
-Assigned to: {{$assigned_to}} +Assigned to: {{$assigned_to}}
+Accepted on: {{$accepted_date}}

-@if ($signature) -
-
- {{ trans('general.signature') }}: {{$accepted_date}} -
+@if ($signature!='') + @endif \ No newline at end of file diff --git a/resources/views/account/accept/create.blade.php b/resources/views/account/accept/create.blade.php index defba995b..9cd97e838 100644 --- a/resources/views/account/accept/create.blade.php +++ b/resources/views/account/accept/create.blade.php @@ -46,14 +46,14 @@
@@ -77,7 +77,7 @@
- +