Changeset View
Changeset View
Standalone View
Standalone View
src/app/Observers/ResourceObserver.php
Show First 20 Lines • Show All 60 Lines • ▼ Show 20 Lines | public function created(Resource $resource) | ||||
$chain = [ | $chain = [ | ||||
new \App\Jobs\Resource\VerifyJob($resource->id), | new \App\Jobs\Resource\VerifyJob($resource->id), | ||||
]; | ]; | ||||
\App\Jobs\Resource\CreateJob::withChain($chain)->dispatch($resource->id); | \App\Jobs\Resource\CreateJob::withChain($chain)->dispatch($resource->id); | ||||
} | } | ||||
/** | /** | ||||
* Handle the resource "deleting" event. | |||||
* | |||||
* @param \App\Resource $resource The resource | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function deleting(Resource $resource) | |||||
{ | |||||
// 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', $resource->id) | |||||
->where('entitleable_type', Resource::class) | |||||
->delete(); | |||||
} | |||||
/** | |||||
* Handle the resource "deleted" event. | * Handle the resource "deleted" event. | ||||
* | * | ||||
* @param \App\Resource $resource The resource | * @param \App\Resource $resource The resource | ||||
* | * | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
public function deleted(Resource $resource) | public function deleted(Resource $resource) | ||||
{ | { | ||||
Show All 19 Lines | public function updated(Resource $resource) | ||||
if ($resource->name != $resource->getOriginal('name')) { | if ($resource->name != $resource->getOriginal('name')) { | ||||
$domainName = explode('@', $resource->email, 2)[1]; | $domainName = explode('@', $resource->email, 2)[1]; | ||||
$folder = "shared/Resources/{$resource->name}@{$domainName}"; | $folder = "shared/Resources/{$resource->name}@{$domainName}"; | ||||
// Note: This does not invoke ResourceSetting observer events, good. | // Note: This does not invoke ResourceSetting observer events, good. | ||||
$resource->settings()->where('key', 'folder')->update(['value' => $folder]); | $resource->settings()->where('key', 'folder')->update(['value' => $folder]); | ||||
} | } | ||||
} | } | ||||
/** | |||||
* Handle the resource "force deleted" event. | |||||
* | |||||
* @param \App\Resource $resource The resource | |||||
* | |||||
* @return void | |||||
*/ | |||||
public function forceDeleted(Resource $resource) | |||||
{ | |||||
// A group can be force-deleted separately from the owner | |||||
// we have to force-delete entitlements | |||||
\App\Entitlement::where('entitleable_id', $resource->id) | |||||
->where('entitleable_type', Resource::class) | |||||
->forceDelete(); | |||||
} | |||||
} | } |