public function filter($route, $request) { if (!isset($this->user) || !$this->user || $this->user == parent::ANONYMOUS_USER) { return Response::json(['error' => true, 'error_description' => 'Permission denied'], 401); } if (!$this->user->can('bookmark_delete')) { return Response::json(['error' => true, 'error_description' => 'Permission denied'], 401); } $id = Request::segment(3); $bookmark = BookmarkObject::find($id); if (!$bookmark) { return Response::json(['error' => true, 'error_description' => 'Bookmark not found'], 400); } if (!$this->user->hasRole('admin') && $bookmark->user_id != $this->user->id) { return Response::json(['error' => true, 'error_description' => 'Only admin can delete others\' bookmarks'], 401); } }
/** * Delete bookmark * type - company or item * object_id * * @param int $id * @return Response */ public function destroy($id) { $bookmark = BookmarkObject::find($id); if (!$bookmark) { return Response::json(array('error_code' => '500', 'error_message' => 'Bookmark not found.'), 500); } $bookmark->delete(); return Response::json(array('success_code' => 'OK', 'success_message' => 'Bookmark has been successfully deleted'), 200); }