Example #1
0
 /**
  * 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();
 }
Example #2
0
 /**
  * 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;
 }