From 1be420b0e95fbe310b9856d6a03da09c72184adc Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 4 Mar 2025 20:37:45 +0000 Subject: [PATCH 1/6] Fixed test Signed-off-by: snipe --- tests/Feature/Settings/LdapSettingsTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Feature/Settings/LdapSettingsTest.php b/tests/Feature/Settings/LdapSettingsTest.php index 317ccb42df..154a441385 100644 --- a/tests/Feature/Settings/LdapSettingsTest.php +++ b/tests/Feature/Settings/LdapSettingsTest.php @@ -28,6 +28,7 @@ class LdapSettingsTest extends TestCase 'ldap_basedn' => 'uid=', 'ldap_fname_field' => 'SomeFirstnameField', 'ldap_server' => 'ldaps://ldap.example.com', + 'ldap_invert_active_flag' => 0, ])) ->assertStatus(302) ->assertValid('ldap_enabled') From a31a732d38cf947107b09b9bcbc020566d4e426d Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 4 Mar 2025 20:38:15 +0000 Subject: [PATCH 2/6] Nicer UI for invert flag Signed-off-by: snipe --- resources/views/settings/ldap.blade.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/resources/views/settings/ldap.blade.php b/resources/views/settings/ldap.blade.php index 9d4a19b018..62e4306165 100644 --- a/resources/views/settings/ldap.blade.php +++ b/resources/views/settings/ldap.blade.php @@ -171,7 +171,9 @@
- {{ Form::label('ldap_client_tls_key', trans('admin/settings/general.ldap_client_tls_key')) }} +
- {{ Form::label('ldap_invert_active_flag', trans('admin/settings/general.ldap_invert_active_flag')) }} +
@error('ldap_invert_active_flag') - + {{ $message }} @enderror +

+ {!! trans('admin/settings/general.ldap_invert_active_flag_help') !!} +

+ @if (config('app.lock_passwords')===true)

- {{ trans('general.feature_disabled') }} + {!! trans('general.feature_disabled') !!}

@endif
+
From 9351cc225295e1a391e45a059d4be83145db0276 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 4 Mar 2025 20:38:22 +0000 Subject: [PATCH 3/6] Set default to 0 Signed-off-by: snipe --- ...2_26_153413_add_ldap_invert_active_flag_to_setting_table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/2025_02_26_153413_add_ldap_invert_active_flag_to_setting_table.php b/database/migrations/2025_02_26_153413_add_ldap_invert_active_flag_to_setting_table.php index c435e014c4..7ca354bfea 100644 --- a/database/migrations/2025_02_26_153413_add_ldap_invert_active_flag_to_setting_table.php +++ b/database/migrations/2025_02_26_153413_add_ldap_invert_active_flag_to_setting_table.php @@ -12,7 +12,7 @@ return new class extends Migration public function up(): void { Schema::table('settings', function (Blueprint $table) { - $table->boolean('ldap_invert_active_flag')->default(false); + $table->boolean('ldap_invert_active_flag')->default(0); }); } From d89f38bbfb73c5d4fdc276d1e208a16e0c121833 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 4 Mar 2025 20:38:33 +0000 Subject: [PATCH 4/6] Set defaults on save Signed-off-by: snipe --- app/Http/Controllers/SettingsController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 807c514d0b..ecb21e2ab2 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -850,8 +850,8 @@ class SettingsController extends Controller $setting->ldap_fname_field = $request->input('ldap_fname_field'); $setting->ldap_auth_filter_query = $request->input('ldap_auth_filter_query'); $setting->ldap_version = $request->input('ldap_version', 3); - $setting->ldap_active_flag = $request->input('ldap_active_flag'); - $setting->ldap_invert_active_flag = $request->input('ldap_invert_active_flag'); + $setting->ldap_active_flag = $request->input('ldap_active_flag', 0); + $setting->ldap_invert_active_flag = $request->input('ldap_invert_active_flag', 0); $setting->ldap_emp_num = $request->input('ldap_emp_num'); $setting->ldap_email = $request->input('ldap_email'); $setting->ldap_manager = $request->input('ldap_manager'); From f4f6dcb885a637987db20ba3f2521564de6641f4 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 4 Mar 2025 20:48:59 +0000 Subject: [PATCH 5/6] Updated test Signed-off-by: snipe --- .../Email/ExpiringAlertsNotificationTest.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/tests/Feature/Notifications/Email/ExpiringAlertsNotificationTest.php b/tests/Feature/Notifications/Email/ExpiringAlertsNotificationTest.php index 5bc034ba5a..81cbb39001 100644 --- a/tests/Feature/Notifications/Email/ExpiringAlertsNotificationTest.php +++ b/tests/Feature/Notifications/Email/ExpiringAlertsNotificationTest.php @@ -26,20 +26,21 @@ class ExpiringAlertsNotificationTest extends TestCase $alert_email = Setting::first()->alert_email; $expiringAsset = Asset::factory()->create([ - 'purchase_date' => now()->subMonths(11)->format('Y-m-d'), + 'purchase_date' => now()->subDays(350)->format('Y-m-d'), + 'warranty_months' => 12, + 'archived' => 0, + 'deleted_at' => null, + ]); + + $expiredAsset = Asset::factory()->create([ + 'purchase_date' => now()->subDays(370)->format('Y-m-d'), 'warranty_months' => 12, 'archived' => 0, 'deleted_at' => null, ]); - $expiredAsset = Asset::factory()->create([ - 'purchase_date' => now()->subMonths(13)->format('Y-m-d'), - 'warranty_months' => 12, - 'archived' => 0, - 'deleted_at' => null, - ]); $notExpiringAsset = Asset::factory()->create([ - 'purchase_date' => now()->subMonths(10)->format('Y-m-d'), + 'purchase_date' => now()->subDays(330)->format('Y-m-d'), 'warranty_months' => 12, 'archived' => 0, 'deleted_at' => null, From 4bac509341c2e3a8187bb00fd98f740afcd4bcc4 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 4 Mar 2025 12:58:04 -0800 Subject: [PATCH 6/6] fix Expiring alert tests --- app/Console/Commands/SendExpirationAlerts.php | 14 +++++++------- app/Models/Asset.php | 5 ++++- .../Email/ExpiringAlertsNotificationTest.php | 7 +++---- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/app/Console/Commands/SendExpirationAlerts.php b/app/Console/Commands/SendExpirationAlerts.php index 1220e0cd9d..2e0c2a62f5 100644 --- a/app/Console/Commands/SendExpirationAlerts.php +++ b/app/Console/Commands/SendExpirationAlerts.php @@ -42,7 +42,7 @@ class SendExpirationAlerts extends Command public function handle() { $settings = Setting::getSettings(); - $threshold = $settings->alert_interval; + $alert_interval = $settings->alert_interval; if (($settings->alert_email != '') && ($settings->alerts_enabled == 1)) { @@ -51,18 +51,18 @@ class SendExpirationAlerts extends Command ->map(fn($item) => trim($item)) // Trim each email ->all(); // Expiring Assets - $assets = Asset::getExpiringWarrantee($threshold); + $assets = Asset::getExpiringWarrantee($alert_interval); if ($assets->count() > 0) { - $this->info(trans_choice('mail.assets_warrantee_alert', $assets->count(), ['count' => $assets->count(), 'threshold' => $threshold])); - Mail::to($recipients)->send(new ExpiringAssetsMail($assets, $threshold)); + $this->info(trans_choice('mail.assets_warrantee_alert', $assets->count(), ['count' => $assets->count(), 'threshold' => $alert_interval])); + Mail::to($recipients)->send(new ExpiringAssetsMail($assets, $alert_interval)); } // Expiring licenses - $licenses = License::getExpiringLicenses($threshold); + $licenses = License::getExpiringLicenses($alert_interval); if ($licenses->count() > 0) { - $this->info(trans_choice('mail.license_expiring_alert', $licenses->count(), ['count' => $licenses->count(), 'threshold' => $threshold])); - Mail::to($recipients)->send(new ExpiringLicenseMail($licenses, $threshold)); + $this->info(trans_choice('mail.license_expiring_alert', $licenses->count(), ['count' => $licenses->count(), 'threshold' => $alert_interval])); + Mail::to($recipients)->send(new ExpiringLicenseMail($licenses, $alert_interval)); } } else { if ($settings->alert_email == '') { diff --git a/app/Models/Asset.php b/app/Models/Asset.php index c571578172..cc016583c3 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -785,9 +785,12 @@ class Asset extends Depreciable ->whereNotNull('warranty_months') ->whereNotNull('purchase_date') ->whereNull('deleted_at') - ->whereRaw('DATE_ADD(`purchase_date`,INTERVAL `warranty_months` MONTH) <= DATE(NOW() + INTERVAL ' + ->whereRaw('DATE_ADD(`purchase_date`, INTERVAL `warranty_months` MONTH) <= DATE_ADD(NOW(), INTERVAL ' . $days . ' DAY) AND DATE_ADD(`purchase_date`, INTERVAL `warranty_months` MONTH) > NOW()') +// ->whereRaw('DATE_ADD(`purchase_date`,INTERVAL `warranty_months` MONTH) <= DATE(NOW() + INTERVAL ' +// . $days +// . ' DAY) AND DATE_ADD(`purchase_date`, INTERVAL `warranty_months` MONTH) > NOW()') ->orderByRaw('DATE_ADD(`purchase_date`,INTERVAL `warranty_months` MONTH)') ->get(); } diff --git a/tests/Feature/Notifications/Email/ExpiringAlertsNotificationTest.php b/tests/Feature/Notifications/Email/ExpiringAlertsNotificationTest.php index 5bc034ba5a..09baf26d25 100644 --- a/tests/Feature/Notifications/Email/ExpiringAlertsNotificationTest.php +++ b/tests/Feature/Notifications/Email/ExpiringAlertsNotificationTest.php @@ -26,20 +26,19 @@ class ExpiringAlertsNotificationTest extends TestCase $alert_email = Setting::first()->alert_email; $expiringAsset = Asset::factory()->create([ - 'purchase_date' => now()->subMonths(11)->format('Y-m-d'), + 'purchase_date' => now()->subDays(350)->format('Y-m-d'), 'warranty_months' => 12, 'archived' => 0, 'deleted_at' => null, ]); - $expiredAsset = Asset::factory()->create([ - 'purchase_date' => now()->subMonths(13)->format('Y-m-d'), + 'purchase_date' => now()->subDays(370)->format('Y-m-d'), 'warranty_months' => 12, 'archived' => 0, 'deleted_at' => null, ]); $notExpiringAsset = Asset::factory()->create([ - 'purchase_date' => now()->subMonths(10)->format('Y-m-d'), + 'purchase_date' => now()->subDays(330)->format('Y-m-d'), 'warranty_months' => 12, 'archived' => 0, 'deleted_at' => null,