Changeset View
Changeset View
Standalone View
Standalone View
src/app/Observers/UserObserver.php
Show All 14 Lines | class UserObserver | ||||
* @param \App\User $user The user being created. | * @param \App\User $user The user being created. | ||||
* | * | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
public function creating(User $user) | public function creating(User $user) | ||||
{ | { | ||||
$user->email = \strtolower($user->email); | $user->email = \strtolower($user->email); | ||||
// only users that are not imported get the benefit of the doubt. | $user->status |= User::STATUS_NEW; | ||||
$user->status |= User::STATUS_NEW | User::STATUS_ACTIVE; | |||||
} | } | ||||
/** | /** | ||||
* Handle the "created" event. | * Handle the "created" event. | ||||
* | * | ||||
* Ensures the user has at least one wallet. | * Ensures the user has at least one wallet. | ||||
* | * | ||||
* Should ensure some basic settings are available as well. | * Should ensure some basic settings are available as well. | ||||
Show All 26 Lines | public function created(User $user) | ||||
} | } | ||||
// Note: Don't use setSettings() here to bypass UserSetting observers | // Note: Don't use setSettings() here to bypass UserSetting observers | ||||
// Note: This is a single multi-insert query | // Note: This is a single multi-insert query | ||||
$user->settings()->insert(array_values($settings)); | $user->settings()->insert(array_values($settings)); | ||||
$user->wallets()->create(); | $user->wallets()->create(); | ||||
// Create user record in LDAP, then check if the account is created in IMAP | // Create user record in the backend (LDAP and IMAP) | ||||
$chain = [ | \App\Jobs\User\CreateJob::dispatch($user->id); | ||||
new \App\Jobs\User\VerifyJob($user->id), | |||||
]; | |||||
\App\Jobs\User\CreateJob::withChain($chain)->dispatch($user->id); | |||||
if (\App\Tenant::getConfig($user->tenant_id, 'pgp.enable')) { | if (\App\Tenant::getConfig($user->tenant_id, 'pgp.enable')) { | ||||
\App\Jobs\PGP\KeyCreateJob::dispatch($user->id, $user->email); | \App\Jobs\PGP\KeyCreateJob::dispatch($user->id, $user->email); | ||||
} | } | ||||
} | } | ||||
/** | /** | ||||
* Handle the "deleted" event. | * Handle the "deleted" event. | ||||
▲ Show 20 Lines • Show All 97 Lines • ▼ Show 20 Lines | public function restored(User $user) | ||||
$domain = $user->domain(); | $domain = $user->domain(); | ||||
if ($domain->trashed() && !$domain->isPublic()) { | if ($domain->trashed() && !$domain->isPublic()) { | ||||
// Note: Domain entitlements will be restored by the DomainObserver | // Note: Domain entitlements will be restored by the DomainObserver | ||||
$domain->restore(); | $domain->restore(); | ||||
} | } | ||||
// FIXME: Should we reset user aliases? or re-validate them in any way? | // FIXME: Should we reset user aliases? or re-validate them in any way? | ||||
// Create user record in LDAP, then run the verification process | // Create user record in the backend (LDAP and IMAP) | ||||
$chain = [ | \App\Jobs\User\CreateJob::dispatch($user->id); | ||||
new \App\Jobs\User\VerifyJob($user->id), | |||||
]; | |||||
\App\Jobs\User\CreateJob::withChain($chain)->dispatch($user->id); | |||||
} | } | ||||
/** | /** | ||||
* Handle the "updated" event. | * Handle the "updated" event. | ||||
* | * | ||||
* @param \App\User $user The user that is being updated. | * @param \App\User $user The user that is being updated. | ||||
* | * | ||||
* @return void | * @return void | ||||
▲ Show 20 Lines • Show All 140 Lines • Show Last 20 Lines |