Browse Source

User laravel config for admin emails

pull/50/head
Nafies Luthfi 6 years ago
parent
commit
444a313fe4
  1. 4
      app/Helpers/functions.php
  2. 12
      config/app.php
  3. 19
      tests/Unit/Helpers/IsSystemAdminHelperTest.php
  4. 4
      tests/Unit/Policies/UserPolicyTest.php

4
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);
}
}

12
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
|--------------------------------------------------------------------------
|

19
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));
}
}

4
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]);

Loading…
Cancel
Save