/** * Destroy Roles for Resource. * * @param object $resource * * @return bool */ public function destroyResource($resource) { if (!is_object($resource)) { return false; } $resource_type = get_class($resource); $resource_id = $resource->getKey(); return Role::where('resource_type', $resource_type)->where('resource_id', $resource_id)->delete(); }
/** * Initialize Model relations. * * @return \Illuminate\Support\Collection */ private function initRelations() { // If the model has relations, also fetch the related Roles if (!method_exists($this->model, 'fortress_relations')) { return collect(); } $fortress_relations = $this->model->fortress_relations(); if (!$fortress_relations->count()) { return collect(); } $relations = Role::where(function ($query) use($fortress_relations) { foreach ($fortress_relations as $relation) { $query->orWhere(function ($query_model) use($relation) { $model_type = get_class($relation); $model_id = $relation->getKey(); $query_model->where('model_type', $model_type)->where('model_id', $model_id); }); } })->get(); // Fallback: Initialize Model relations with empty Collection if (!$relations) { return collect(); } return $relations; }