From b6d1e6cc61812e1199f0ce071eae348a12600569 Mon Sep 17 00:00:00 2001 From: Sanja Date: Tue, 13 Feb 2024 13:26:33 -0800 Subject: [PATCH 1/6] Update admin retrieval logic to use is_administrator --- ProcessMaker/ImportExport/Exporters/ScriptExecutorExporter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProcessMaker/ImportExport/Exporters/ScriptExecutorExporter.php b/ProcessMaker/ImportExport/Exporters/ScriptExecutorExporter.php index e3a0152c14..0f3e8a1444 100644 --- a/ProcessMaker/ImportExport/Exporters/ScriptExecutorExporter.php +++ b/ProcessMaker/ImportExport/Exporters/ScriptExecutorExporter.php @@ -23,7 +23,7 @@ public function export() : void public function import() : bool { $authenticatedUser = Auth::user(); - $userId = $authenticatedUser ? $authenticatedUser->id : User::where('username', 'admin')->pluck('id'); + $userId = $authenticatedUser ? $authenticatedUser->id : User::where('is_administrator', true)->first()->id; switch ($this->mode) { case 'copy': case 'new': From 3284ae64e646eb59166f9c49c946155513465756 Mon Sep 17 00:00:00 2001 From: Sanja Date: Wed, 14 Feb 2024 15:09:46 -0800 Subject: [PATCH 2/6] Seed Admin User in test database --- tests/bootstrap.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 586fd87c58..63e2906e85 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -96,6 +96,9 @@ Artisan::call('migrate:fresh', []); Artisan::call('db:seed', ['--class' => 'AnonymousUserSeeder']); + // Seed the super administrator user data + Artisan::call('db:seed', ['--class' => 'UserSeeder']); + \Illuminate\Foundation\Testing\RefreshDatabaseState::$migrated = true; ScriptExecutor::firstOrCreate( From 332da14b365b42b511a142b04cfba6aa616c063b Mon Sep 17 00:00:00 2001 From: Sanja Date: Wed, 14 Feb 2024 16:19:16 -0800 Subject: [PATCH 3/6] Create Admin User Seeder for PHPUnit Tests --- database/seeders/AdminUserSeeder.php | 57 ++++++++++++++++++++++++++++ tests/bootstrap.php | 2 +- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 database/seeders/AdminUserSeeder.php diff --git a/database/seeders/AdminUserSeeder.php b/database/seeders/AdminUserSeeder.php new file mode 100644 index 0000000000..9868dc93b1 --- /dev/null +++ b/database/seeders/AdminUserSeeder.php @@ -0,0 +1,57 @@ + self::$INSTALLER_ADMIN_USERNAME, + 'is_administrator' => true, + ], [ + 'username' => self::$INSTALLER_ADMIN_USERNAME, + 'password' => Hash::make(env('INSTALL_ADMIN_PASSWORD', self::$INSTALLER_ADMIN_PASSWORD)), + 'email' => self::$INSTALLER_ADMIN_EMAIL, + 'firstname' => self::$INSTALLER_ADMIN_FIRSTNAME, + 'lastname' => self::$INSTALLER_ADMIN_LASTNAME, + 'address' => null, + 'city' => null, + 'state' => null, + 'postal' => null, + 'country' => null, + 'phone' => null, + 'fax' => null, + 'cell' => null, + 'title' => null, + 'birthdate' => null, + 'timezone' => 'America/Los_Angeles', + 'datetime_format' => 'm/d/Y H:i', + 'language' => 'en', + 'status' => 'ACTIVE', + ]); + } +} diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 63e2906e85..e1cb98da8c 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -97,7 +97,7 @@ Artisan::call('db:seed', ['--class' => 'AnonymousUserSeeder']); // Seed the super administrator user data - Artisan::call('db:seed', ['--class' => 'UserSeeder']); + Artisan::call('db:seed', ['--class' => 'AdminUserSeeder']); \Illuminate\Foundation\Testing\RefreshDatabaseState::$migrated = true; From e6e2343ee28f556bf03fb75267886059e8ee991f Mon Sep 17 00:00:00 2001 From: Sanja Date: Wed, 14 Feb 2024 16:31:01 -0800 Subject: [PATCH 4/6] Remove unused 'user' variable --- database/seeders/AdminUserSeeder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/database/seeders/AdminUserSeeder.php b/database/seeders/AdminUserSeeder.php index 9868dc93b1..82f92836dc 100644 --- a/database/seeders/AdminUserSeeder.php +++ b/database/seeders/AdminUserSeeder.php @@ -28,8 +28,8 @@ class AdminUserSeeder extends Seeder */ public function run(ClientRepository $clients) { - //Create admin user - $user = User::updateOrCreate([ + // Create admin user + User::updateOrCreate([ 'username' => self::$INSTALLER_ADMIN_USERNAME, 'is_administrator' => true, ], [ From b68f58c5c5f678fb36b6ee167d547aca76893ed4 Mon Sep 17 00:00:00 2001 From: Sanja Date: Wed, 14 Feb 2024 16:40:09 -0800 Subject: [PATCH 5/6] SonarQube fixes --- ...UserSeeder.php => AdminTestUserSeeder.php} | 24 +++++++++---------- tests/bootstrap.php | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) rename database/seeders/{AdminUserSeeder.php => AdminTestUserSeeder.php} (56%) diff --git a/database/seeders/AdminUserSeeder.php b/database/seeders/AdminTestUserSeeder.php similarity index 56% rename from database/seeders/AdminUserSeeder.php rename to database/seeders/AdminTestUserSeeder.php index 82f92836dc..db6cace1c8 100644 --- a/database/seeders/AdminUserSeeder.php +++ b/database/seeders/AdminTestUserSeeder.php @@ -9,17 +9,17 @@ use ProcessMaker\Models\GroupMember; use ProcessMaker\Models\User; -class AdminUserSeeder extends Seeder +class AdminTestUserSeeder extends Seeder { - public static $INSTALLER_ADMIN_USERNAME = 'admin_test'; + public static $INSTALLER_ADMIN_TEST_USERNAME = 'admin_test'; - public static $INSTALLER_ADMIN_PASSWORD = 'admin'; + public static $INSTALLER_ADMIN_TEST_PASSWORD = 'admin'; - public static $INSTALLER_ADMIN_EMAIL = 'admin_test@processmaker.com'; + public static $INSTALLER_ADMIN_TEST_EMAIL = 'admin_test@processmaker.com'; - public static $INSTALLER_ADMIN_FIRSTNAME = 'Admin'; + public static $INSTALLER_ADMIN_TEST_FIRSTNAME = 'Admin'; - public static $INSTALLER_ADMIN_LASTNAME = 'TestUser'; + public static $INSTALLER_ADMIN_TEST_LASTNAME = 'TestUser'; /** * Run the database seeds. @@ -30,14 +30,14 @@ public function run(ClientRepository $clients) { // Create admin user User::updateOrCreate([ - 'username' => self::$INSTALLER_ADMIN_USERNAME, + 'username' => self::$INSTALLER_ADMIN_TEST_USERNAME, 'is_administrator' => true, ], [ - 'username' => self::$INSTALLER_ADMIN_USERNAME, - 'password' => Hash::make(env('INSTALL_ADMIN_PASSWORD', self::$INSTALLER_ADMIN_PASSWORD)), - 'email' => self::$INSTALLER_ADMIN_EMAIL, - 'firstname' => self::$INSTALLER_ADMIN_FIRSTNAME, - 'lastname' => self::$INSTALLER_ADMIN_LASTNAME, + 'username' => self::$INSTALLER_ADMIN_TEST_USERNAME, + 'password' => Hash::make(self::$INSTALLER_ADMIN_TEST_PASSWORD), + 'email' => self::$INSTALLER_ADMIN_TEST_EMAIL, + 'firstname' => self::$INSTALLER_ADMIN_TEST_FIRSTNAME, + 'lastname' => self::$INSTALLER_ADMIN_TEST_LASTNAME, 'address' => null, 'city' => null, 'state' => null, diff --git a/tests/bootstrap.php b/tests/bootstrap.php index e1cb98da8c..52737d48fd 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -97,7 +97,7 @@ Artisan::call('db:seed', ['--class' => 'AnonymousUserSeeder']); // Seed the super administrator user data - Artisan::call('db:seed', ['--class' => 'AdminUserSeeder']); + Artisan::call('db:seed', ['--class' => 'AdminTestUserSeeder']); \Illuminate\Foundation\Testing\RefreshDatabaseState::$migrated = true; From da74dfe2d656f6d3ba467153c52639ec307b83ac Mon Sep 17 00:00:00 2001 From: Sanja Date: Thu, 15 Feb 2024 08:30:10 -0800 Subject: [PATCH 6/6] Remove creation and deletion of admin user in test --- tests/Feature/ImportExport/Exporters/ScriptExporterTest.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php b/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php index d692a300fd..b2665f3fcd 100644 --- a/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php +++ b/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php @@ -114,9 +114,9 @@ public function testHiddenUsesParentMode() public function testNoMatchingRunAsUser() { - $admin_user = User::factory()->create(['is_administrator' => true]); DB::beginTransaction(); $user = User::factory()->create(['username' => 'test']); + $admin_user = User::where('is_administrator', true)->first(); $script = Script::factory()->create(['title' => 'test', 'run_as_user_id' => $user->id]); $payload = $this->export($script, ScriptExporter::class, null, false); @@ -126,7 +126,6 @@ public function testNoMatchingRunAsUser() $script = Script::where('title', 'test')->firstOrFail(); $this->assertEquals($script->run_as_user_id, $admin_user->id); - $admin_user->delete(); } public function testRunAsUserIdNull()