diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 7c9924f7c..3ba114b43 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -640,7 +640,7 @@ class SettingsController extends Controller $audit_diff_months = ((int)$request->input('audit_interval') - (int)($setting->audit_interval)); // Grab all assets that have an existing next_audit_date, chunking to handle very large datasets - Asset::whereNotNull('next_audit_date')->chunk(20, function ($assets) use ($audit_diff_months) { + Asset::whereNotNull('next_audit_date')->chunk(200, function ($assets) use ($audit_diff_months) { // Update assets' next_audit_date values foreach ($assets as $asset) { diff --git a/app/Models/Company.php b/app/Models/Company.php index c3a2fdae7..60a8022ed 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -113,6 +113,14 @@ final class Company extends SnipeModel } } + /** + * Get the company id for the current user taking into + * account the full multiple company support setting + * and if the current user is a super user. + * + * @param $unescaped_input + * @return int|mixed|string|null + */ public static function getIdForCurrentUser($unescaped_input) { if (! static::isFullMultipleCompanySupportEnabled()) { diff --git a/tests/Unit/CompanyTest.php b/tests/Unit/Models/Company/CompanyTest.php similarity index 92% rename from tests/Unit/CompanyTest.php rename to tests/Unit/Models/Company/CompanyTest.php index 6e0450484..6fd17e554 100644 --- a/tests/Unit/CompanyTest.php +++ b/tests/Unit/Models/Company/CompanyTest.php @@ -1,5 +1,5 @@ settings->disableMultipleFullCompanySupport(); + + $this->actingAs(User::factory()->create()); + $this->assertEquals(1000, Company::getIdForCurrentUser(1000)); + } + + public function testReturnsProvidedValueForSuperUsersWhenFullCompanySupportEnabled() + { + $this->settings->enableMultipleFullCompanySupport(); + + $this->actingAs(User::factory()->superuser()->create()); + $this->assertEquals(2000, Company::getIdForCurrentUser(2000)); + } + + public function testReturnsNonSuperUsersCompanyIdWhenFullCompanySupportEnabled() + { + $this->settings->enableMultipleFullCompanySupport(); + + $this->actingAs(User::factory()->forCompany(['id' => 2000])->create()); + $this->assertEquals(2000, Company::getIdForCurrentUser(1000)); + } + + public function testReturnsProvidedValueForNonSuperUserWithoutCompanyIdWhenFullCompanySupportEnabled() + { + $this->settings->enableMultipleFullCompanySupport(); + + $this->actingAs(User::factory()->create(['company_id' => null])); + $this->assertEquals(1000, Company::getIdForCurrentUser(1000)); + } +}