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