diff --git a/app/Console/Commands/MoveUploadsToNewDisk.php b/app/Console/Commands/MoveUploadsToNewDisk.php index 6794a09f4..95689a803 100644 --- a/app/Console/Commands/MoveUploadsToNewDisk.php +++ b/app/Console/Commands/MoveUploadsToNewDisk.php @@ -91,7 +91,7 @@ class MoveUploadsToNewDisk extends Command for ($l = 0; $l < count($logos); $l++) { $type_count++; $filename = basename($logos[$l]); - $new_url = Storage::disk('public')->url($logos[$l], file_get_contents($public_upload[$i])); + $new_url = Storage::disk('public')->url($logos[$l], file_get_contents($public_upload[$l])); $this->info($type_count.'. LOGO: '.$filename.' was copied to '.$new_url); } @@ -116,7 +116,7 @@ class MoveUploadsToNewDisk extends Command $filename = basename($private_upload[$x]); try { - Storage::disk('private_uploads')->put($private_type.'/'.$filename, file_get_contents($public_upload[$i])); + Storage::put($private_type.'/'.$filename, file_get_contents($private_upload[$i])); $new_url = Storage::url($private_type.'/'.$filename, $filename); $this->info($type_count.'. PRIVATE: '.$filename.' was copied to '.$new_url); diff --git a/app/Console/Commands/PurgeLoginAttempts.php b/app/Console/Commands/PurgeLoginAttempts.php new file mode 100644 index 000000000..7a7a1394d --- /dev/null +++ b/app/Console/Commands/PurgeLoginAttempts.php @@ -0,0 +1,44 @@ +confirm("\n****************************************************\nTHIS WILL DELETE ALL OF THE YOUR LOGIN ATTEMPT RECORDS. \nThere is NO undo! \n****************************************************\n\nDo you wish to continue? No backsies! [y|N]")) { + \DB::statement('delete from login_attempts'); + } + } +} diff --git a/app/Http/Controllers/Api/SettingsController.php b/app/Http/Controllers/Api/SettingsController.php index 71741bb6a..deb14fb5f 100644 --- a/app/Http/Controllers/Api/SettingsController.php +++ b/app/Http/Controllers/Api/SettingsController.php @@ -137,7 +137,7 @@ class SettingsController extends Controller try { Notification::send(Setting::first(), new MailTest()); return response()->json(['message' => 'Mail sent to '.config('mail.reply_to.address')], 200); - } catch (Exception $e) { + } catch (\Exception $e) { return response()->json(['message' => $e->getMessage()], 500); } } diff --git a/app/Http/Controllers/Licenses/LicenseFilesController.php b/app/Http/Controllers/Licenses/LicenseFilesController.php index 817fbb329..1e3ade907 100644 --- a/app/Http/Controllers/Licenses/LicenseFilesController.php +++ b/app/Http/Controllers/Licenses/LicenseFilesController.php @@ -39,7 +39,8 @@ class LicenseFilesController extends Controller $upload_success = false; foreach ($request->file('file') as $file) { - $file_name = 'license-'.date('Y-m-d-His').'-'.$file->getBasename().'.'.$file->getClientOriginalExtension(); + + $file_name = 'license-'.$license->id.'-'.str_random(8).'-'.str_slug(basename($file->getClientOriginalName(), '.'.$file->getClientOriginalExtension())).'.'.$file->getClientOriginalExtension(); $upload_success = $file->storeAs('private_uploads/licenses', $file_name); diff --git a/app/Models/Asset.php b/app/Models/Asset.php index 8404a0e1d..724157723 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -245,10 +245,10 @@ class Asset extends Depreciable public function availableForCheckout() { if ( - (!$this->assignedTo) || + ((!$this->assignedTo) && ($this->assetstatus->archived == 0)) || ((empty($this->assigned_to)) && (empty($this->deleted_at)) && - (($this->assetstatus) && ($this->assetstatus->deployable == 1)))) + (($this->assetstatus) && ($this->assetstatus->deployable == 1)))) { return true; } diff --git a/app/Notifications/CheckinAccessoryNotification.php b/app/Notifications/CheckinAccessoryNotification.php index cc712e271..ba7c3b201 100644 --- a/app/Notifications/CheckinAccessoryNotification.php +++ b/app/Notifications/CheckinAccessoryNotification.php @@ -111,7 +111,7 @@ class CheckinAccessoryNotification extends Notification ]; return (new SlackMessage) - ->content(':arrow_down: :keyboard: Accessory Checked In') + ->content(':arrow_down: :keyboard: '.trans('mail.Accessory_Checkin_Notification')) ->from($botname) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) @@ -135,7 +135,7 @@ class CheckinAccessoryNotification extends Notification 'note' => $this->note, 'target' => $this->target, ]) - ->subject('Accessory checked in'); + ->subject(trans('mail.Accessory_Checkin_Notification')); } } diff --git a/app/Notifications/CheckinAssetNotification.php b/app/Notifications/CheckinAssetNotification.php index 0b0c29d7b..e0f1e66f3 100644 --- a/app/Notifications/CheckinAssetNotification.php +++ b/app/Notifications/CheckinAssetNotification.php @@ -79,7 +79,7 @@ class CheckinAssetNotification extends Notification ]; return (new SlackMessage) - ->content(':arrow_down: :computer: Asset Checked In') + ->content(':arrow_down: :computer: '.trans('mail.Asset_Checkin_Notification')) ->from($botname) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) @@ -113,7 +113,7 @@ class CheckinAssetNotification extends Notification 'fields' => $fields, 'expected_checkin' => $this->expected_checkin, ]) - ->subject('Asset checked in'); + ->subject(trans('mail.Asset_Checkin_Notification')); return $message; diff --git a/app/Notifications/CheckinLicenseSeatNotification.php b/app/Notifications/CheckinLicenseSeatNotification.php index f9d4914c3..a3bfb039e 100644 --- a/app/Notifications/CheckinLicenseSeatNotification.php +++ b/app/Notifications/CheckinLicenseSeatNotification.php @@ -83,7 +83,7 @@ class CheckinLicenseSeatNotification extends Notification return (new SlackMessage) - ->content(':arrow_down: :floppy_disk: License Checked In') + ->content(':arrow_down: :floppy_disk: '.trans('mail.License_Checkin_Notification')) ->from($botname) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) @@ -106,7 +106,7 @@ class CheckinLicenseSeatNotification extends Notification 'note' => $this->note, 'target' => $this->target, ]) - ->subject('License checked in'); + ->subject(trans('mail.License_Checkin_Notification')); } diff --git a/app/Notifications/ExpectedCheckinAdminNotification.php b/app/Notifications/ExpectedCheckinAdminNotification.php index c90c2fa3e..7f29a915f 100644 --- a/app/Notifications/ExpectedCheckinAdminNotification.php +++ b/app/Notifications/ExpectedCheckinAdminNotification.php @@ -48,7 +48,7 @@ class ExpectedCheckinAdminNotification extends Notification [ 'assets' => $this->assets, ]) - ->subject('Expected asset checkin report'); + ->subject(trans('mail.Expected_Checkin_Report')); return $message; diff --git a/app/Notifications/ExpectedCheckinNotification.php b/app/Notifications/ExpectedCheckinNotification.php index e7262ae54..dadd920cf 100644 --- a/app/Notifications/ExpectedCheckinNotification.php +++ b/app/Notifications/ExpectedCheckinNotification.php @@ -2,7 +2,7 @@ namespace App\Notifications; -use Carbon\Carbon; +use App\Helpers\Helper; use Illuminate\Bus\Queueable; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; @@ -46,16 +46,18 @@ class ExpectedCheckinNotification extends Notification */ public function toMail() { - $formatted_due = Carbon::parse($this->params->expected_checkin)->format('D, M j, Y'); - return (new MailMessage) - ->error() - ->subject('Reminder: '.$this->params->present()->name().' checkin deadline approaching') - ->line('Hi, '.$this->params->assignedto->first_name.' '.$this->params->assignedto->last_name) - ->greeting('An asset checked out to you is due to be checked back in on '.$formatted_due.'.') - ->line('Asset: '.$this->params->present()->name()) - ->line('Serial: '.$this->params->serial) - ->line('Asset Tag: '.$this->params->asset_tag) - ->action('View Your Assets', route('view-assets')); + + $message = (new MailMessage)->markdown('notifications.markdown.expected-checkin', + [ + 'date' => Helper::getFormattedDateObject($this->params->expected_checkin, 'date', false), + 'asset' => $this->params->present()->name(), + 'serial' => $this->params->serial, + 'asset_tag' => $this->params->asset_tag + ]) + ->subject(trans('mail.Expected_Checkin_Notification', ['name' => $this->params->present()->name()])); + + return $message; + } } diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index 8b60aa7d7..e756ef79f 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -242,4 +242,9 @@ 'login_enabled' => 'Login Enabled', 'audit_due' => 'Due for Audit', 'audit_overdue' => 'Overdue for Audit', + 'accept' => 'Accept :asset', + 'i_accept' => 'I accept', + 'i_decline' => 'I decline', + 'sign_tos' => 'Sign below to indicate that you agree to the terms of service:', + 'clear_signature' => 'Clear Signature' ]; diff --git a/resources/lang/en/mail.php b/resources/lang/en/mail.php index f8c781c8e..23cc8e58b 100644 --- a/resources/lang/en/mail.php +++ b/resources/lang/en/mail.php @@ -70,5 +70,11 @@ return array( 'welcome' => 'Welcome :name', 'welcome_to' => 'Welcome to :web!', 'your_credentials' => 'Your Snipe-IT credentials', - + 'Accessory_Checkin_Notification' => 'Accessory checked in', + 'Asset_Checkin_Notification' => 'Asset checked in', + 'License_Checkin_Notification' => 'License checked in', + 'Expected_Checkin_Report' => 'Expected asset checkin report' + 'Expected_Checkin_Notification' => 'Reminder: :name checkin deadline approaching', + 'Expected_Checkin_Date' => 'An asset checked out to you is due to be checked back in on :date', + 'your_assets' => 'View Your Assets' ); diff --git a/resources/views/account/accept-asset.blade.php b/resources/views/account/accept-asset.blade.php index 780b9408e..ca27f1880 100644 --- a/resources/views/account/accept-asset.blade.php +++ b/resources/views/account/accept-asset.blade.php @@ -2,7 +2,7 @@ {{-- Page title --}} @section('title') - Accept {{ $item->present()->name() }} + {{trans('general.accept', ['asset' => $item->present()->name()])}} @parent @stop @@ -42,14 +42,14 @@