Changeset View
Changeset View
Standalone View
Standalone View
src/app/Observers/SharedFolderObserver.php
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | public function created(SharedFolder $folder) | ||||
$chain = [ | $chain = [ | ||||
new \App\Jobs\SharedFolder\VerifyJob($folder->id), | new \App\Jobs\SharedFolder\VerifyJob($folder->id), | ||||
]; | ]; | ||||
\App\Jobs\SharedFolder\CreateJob::withChain($chain)->dispatch($folder->id); | \App\Jobs\SharedFolder\CreateJob::withChain($chain)->dispatch($folder->id); | ||||
} | } | ||||
/** | /** | ||||
* Handle the shared folder "deleting" event. | |||||
* | |||||
* @param \App\SharedFolder $folder The folder | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function deleting(SharedFolder $folder) | |||||
{ | |||||
// Entitlements do not have referential integrity on the entitled object, so this is our | |||||
// way of doing an onDelete('cascade') without the foreign key. | |||||
\App\Entitlement::where('entitleable_id', $folder->id) | |||||
->where('entitleable_type', SharedFolder::class) | |||||
->delete(); | |||||
} | |||||
/** | |||||
* 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 | ||||
*/ | */ | ||||
public function deleted(SharedFolder $folder) | public function deleted(SharedFolder $folder) | ||||
{ | { | ||||
Show All 19 Lines | public function updated(SharedFolder $folder) | ||||
if ($folder->name != $folder->getOriginal('name')) { | if ($folder->name != $folder->getOriginal('name')) { | ||||
$domainName = explode('@', $folder->email, 2)[1]; | $domainName = explode('@', $folder->email, 2)[1]; | ||||
$folderName = "shared/{$folder->name}@{$domainName}"; | $folderName = "shared/{$folder->name}@{$domainName}"; | ||||
// Note: This does not invoke SharedFolderSetting observer events, good. | // Note: This does not invoke SharedFolderSetting observer events, good. | ||||
$folder->settings()->where('key', 'folder')->update(['value' => $folderName]); | $folder->settings()->where('key', 'folder')->update(['value' => $folderName]); | ||||
} | } | ||||
} | } | ||||
/** | |||||
* Handle the shared folder "force deleted" event. | |||||
* | |||||
* @param \App\SharedFolder $folder The folder | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function forceDeleted(SharedFolder $folder) | |||||
{ | |||||
// A folder can be force-deleted separately from the owner | |||||
// we have to force-delete entitlements | |||||
\App\Entitlement::where('entitleable_id', $folder->id) | |||||
->where('entitleable_type', SharedFolder::class) | |||||
->forceDelete(); | |||||
} | |||||
} | } |