Changeset View
Changeset View
Standalone View
Standalone View
src/app/Observers/SharedFolderObserver.php
Show All 13 Lines | class SharedFolderObserver | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
public function creating(SharedFolder $folder): void | public function creating(SharedFolder $folder): void | ||||
{ | { | ||||
if (empty($folder->type)) { | if (empty($folder->type)) { | ||||
$folder->type = 'mail'; | $folder->type = 'mail'; | ||||
} | } | ||||
$folder->status |= SharedFolder::STATUS_NEW | SharedFolder::STATUS_ACTIVE; | $folder->status |= SharedFolder::STATUS_NEW; | ||||
} | } | ||||
/** | /** | ||||
* Handle the shared folder "created" event. | * Handle the shared folder "created" event. | ||||
* | * | ||||
* @param \App\SharedFolder $folder The folder | * @param \App\SharedFolder $folder The folder | ||||
* | * | ||||
* @return void | * @return void | ||||
Show All 13 Lines | public function created(SharedFolder $folder) | ||||
'shared_folder_id' => $folder->id, | 'shared_folder_id' => $folder->id, | ||||
]; | ]; | ||||
} | } | ||||
// Note: Don't use setSettings() here to bypass SharedFolderSetting observers | // Note: Don't use setSettings() here to bypass SharedFolderSetting observers | ||||
// Note: This is a single multi-insert query | // Note: This is a single multi-insert query | ||||
$folder->settings()->insert(array_values($settings)); | $folder->settings()->insert(array_values($settings)); | ||||
// Create folder record in LDAP, then check if it is created in IMAP | // Create the shared folder in the backend (LDAP and IMAP) | ||||
$chain = [ | \App\Jobs\SharedFolder\CreateJob::dispatch($folder->id); | ||||
new \App\Jobs\SharedFolder\VerifyJob($folder->id), | |||||
]; | |||||
\App\Jobs\SharedFolder\CreateJob::withChain($chain)->dispatch($folder->id); | |||||
} | } | ||||
/** | /** | ||||
* Handle the shared folder "deleted" event. | * Handle the shared folder "deleted" event. | ||||
* | * | ||||
* @param \App\SharedFolder $folder The folder | * @param \App\SharedFolder $folder The folder | ||||
* | * | ||||
* @return void | * @return void | ||||
Show All 31 Lines |