From 444a313fe4e385eb440363fba139dd29d2a5416c Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 11 Apr 2020 17:29:12 +0800 Subject: [PATCH] User laravel config for admin emails --- app/Helpers/functions.php | 4 ++-- config/app.php | 12 ++++++++++++ tests/Unit/Helpers/IsSystemAdminHelperTest.php | 19 ++++++++++++++++++- tests/Unit/Policies/UserPolicyTest.php | 4 ++-- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/app/Helpers/functions.php b/app/Helpers/functions.php index ea13fae..0d49361 100644 --- a/app/Helpers/functions.php +++ b/app/Helpers/functions.php @@ -62,8 +62,8 @@ function userPhotoPath($photoPath, $genderId) function is_system_admin(User $user) { if ($user->email) { - if (env('SYSTEM_ADMIN_EMAILS')) { - $adminEmails = explode(';', env('SYSTEM_ADMIN_EMAILS')); + if (config('app.system_admin_emails')) { + $adminEmails = explode(';', config('app.system_admin_emails')); return in_array($user->email, $adminEmails); } } diff --git a/config/app.php b/config/app.php index 0541103..c0b9eb0 100644 --- a/config/app.php +++ b/config/app.php @@ -29,6 +29,18 @@ return [ /* |-------------------------------------------------------------------------- + | System Administrator Emails + |-------------------------------------------------------------------------- + | + | This is config stores emails of users who have role of administrators. + | The user can edit and delete any users and marriages int he system. + | + */ + + 'system_admin_emails' => env('SYSTEM_ADMIN_EMAILS'), + + /* + |-------------------------------------------------------------------------- | Application Debug Mode |-------------------------------------------------------------------------- | diff --git a/tests/Unit/Helpers/IsSystemAdminHelperTest.php b/tests/Unit/Helpers/IsSystemAdminHelperTest.php index a2ce3e9..b3af215 100644 --- a/tests/Unit/Helpers/IsSystemAdminHelperTest.php +++ b/tests/Unit/Helpers/IsSystemAdminHelperTest.php @@ -12,7 +12,7 @@ class IsSystemAdminHelperTest extends TestCase { $adminEmail1 = 'admin1@example.net'; $adminEmail2 = 'admin2@example.net'; - putenv('SYSTEM_ADMIN_EMAILS='.$adminEmail1.';'.$adminEmail2); + config(['app.system_admin_emails' => $adminEmail1.';'.$adminEmail2]); $admin1 = factory(User::class)->make(['email' => $adminEmail1]); $admin2 = factory(User::class)->make(['email' => $adminEmail2]); @@ -24,4 +24,21 @@ class IsSystemAdminHelperTest extends TestCase $this->assertFalse(is_system_admin($userWithEmail)); $this->assertFalse(is_system_admin($userWithNoEmail)); } + + /** @test */ + public function if_config_is_null() + { + $adminEmail1 = 'admin1@example.net'; + $adminEmail2 = 'admin2@example.net'; + + $admin1 = factory(User::class)->make(['email' => $adminEmail1]); + $admin2 = factory(User::class)->make(['email' => $adminEmail2]); + $userWithEmail = factory(User::class)->make(['email' => 'user@example.net']); + $userWithNoEmail = factory(User::class)->make(['email' => null]); + + $this->assertFalse(is_system_admin($admin1)); + $this->assertFalse(is_system_admin($admin2)); + $this->assertFalse(is_system_admin($userWithEmail)); + $this->assertFalse(is_system_admin($userWithNoEmail)); + } } diff --git a/tests/Unit/Policies/UserPolicyTest.php b/tests/Unit/Policies/UserPolicyTest.php index d41dcf5..be79a75 100644 --- a/tests/Unit/Policies/UserPolicyTest.php +++ b/tests/Unit/Policies/UserPolicyTest.php @@ -28,7 +28,7 @@ class UserPolicyTest extends TestCase { $adminEmail = 'admin@example.net'; $otherUserManagerId = Str::random(); - putenv('SYSTEM_ADMIN_EMAILS='.$adminEmail); + config(['app.system_admin_emails' => $adminEmail]); $manager = factory(User::class)->create(); $admin = factory(User::class)->create(['email' => $adminEmail]); @@ -67,7 +67,7 @@ class UserPolicyTest extends TestCase { $adminEmail = 'admin@example.net'; $otherUserManagerId = Str::random(); - putenv('SYSTEM_ADMIN_EMAILS='.$adminEmail); + config(['app.system_admin_emails' => $adminEmail]); $manager = factory(User::class)->create(); $admin = factory(User::class)->create(['email' => $adminEmail]);