Skip to content

Commit

Permalink
User laravel config for admin emails
Browse files Browse the repository at this point in the history
  • Loading branch information
nafiesl committed Apr 11, 2020
1 parent 4b05c2f commit 444a313
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 5 deletions.
4 changes: 2 additions & 2 deletions app/Helpers/functions.php
Expand Up @@ -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);
}
}
Expand Down
12 changes: 12 additions & 0 deletions config/app.php
Expand Up @@ -27,6 +27,18 @@

'env' => env('APP_ENV', 'production'),

/*
|--------------------------------------------------------------------------
| 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
Expand Down
19 changes: 18 additions & 1 deletion tests/Unit/Helpers/IsSystemAdminHelperTest.php
Expand Up @@ -12,7 +12,7 @@ public function user_is_an_admin()
{
$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]);
Expand All @@ -24,4 +24,21 @@ public function user_is_an_admin()
$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 changes: 2 additions & 2 deletions tests/Unit/Policies/UserPolicyTest.php
Expand Up @@ -28,7 +28,7 @@ public function admins_can_edit_any_user_profile()
{
$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]);
Expand Down Expand Up @@ -67,7 +67,7 @@ public function admins_can_delete_any_user()
{
$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]);
Expand Down

0 comments on commit 444a313

Please sign in to comment.