Changeset View
Changeset View
Standalone View
Standalone View
src/app/Observers/GroupSettingObserver.php
<?php | <?php | ||||
namespace App\Observers; | namespace App\Observers; | ||||
use App\Backends\LDAP; | |||||
use App\GroupSetting; | use App\GroupSetting; | ||||
class GroupSettingObserver | class GroupSettingObserver | ||||
{ | { | ||||
/** | /** | ||||
* Handle the group setting "created" event. | * Handle the group setting "created" event. | ||||
* | * | ||||
* @param \App\GroupSetting $groupSetting Settings object | * @param \App\GroupSetting $groupSetting Settings object | ||||
* | * | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
public function created(GroupSetting $groupSetting) | public function created(GroupSetting $groupSetting) | ||||
{ | { | ||||
if (in_array($groupSetting->key, LDAP::GROUP_SETTINGS)) { | $this->dispatchUpdateJob($groupSetting); | ||||
\App\Jobs\Group\UpdateJob::dispatch($groupSetting->group_id); | |||||
} | |||||
} | } | ||||
/** | /** | ||||
* Handle the group setting "updated" event. | * Handle the group setting "updated" event. | ||||
* | * | ||||
* @param \App\GroupSetting $groupSetting Settings object | * @param \App\GroupSetting $groupSetting Settings object | ||||
* | * | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
public function updated(GroupSetting $groupSetting) | public function updated(GroupSetting $groupSetting) | ||||
{ | { | ||||
if (in_array($groupSetting->key, LDAP::GROUP_SETTINGS)) { | $this->dispatchUpdateJob($groupSetting); | ||||
\App\Jobs\Group\UpdateJob::dispatch($groupSetting->group_id); | |||||
} | |||||
} | } | ||||
/** | /** | ||||
* Handle the group setting "deleted" event. | * Handle the group setting "deleted" event. | ||||
* | * | ||||
* @param \App\GroupSetting $groupSetting Settings object | * @param \App\GroupSetting $groupSetting Settings object | ||||
* | * | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
public function deleted(GroupSetting $groupSetting) | public function deleted(GroupSetting $groupSetting) | ||||
{ | { | ||||
if (in_array($groupSetting->key, LDAP::GROUP_SETTINGS)) { | $this->dispatchUpdateJob($groupSetting); | ||||
} | |||||
/** | |||||
* Dispatch group update job (if needed). | |||||
* | |||||
* @param \App\GroupSetting $groupSetting Settings object | |||||
*/ | |||||
private function dispatchUpdateJob(GroupSetting $groupSetting): void | |||||
{ | |||||
if ((\config('app.with_ldap') && in_array($groupSetting->key, \App\Backends\LDAP::GROUP_SETTINGS)) | |||||
|| in_array($groupSetting->key, \App\Backends\IMAP::GROUP_SETTINGS) | |||||
) { | |||||
\App\Jobs\Group\UpdateJob::dispatch($groupSetting->group_id); | \App\Jobs\Group\UpdateJob::dispatch($groupSetting->group_id); | ||||
} | } | ||||
} | } | ||||
} | } |