public function indexAction(Request $request, $id) { if ($this->getUser()) { $user = $this->getUser(); } else { $user = new User(); } if ($id) { $lyricQuery = new LyricQuery(); $lyric = $lyricQuery->findOneById($id); } else { $lyric = new Lyric(); } $allowedFields = $user->getAllowedLyricFields($lyric); $data = ['item' => ['fields' => $allowedFields]]; return $this->handleData($request, $data); }
public function deleteAction(Request $request, $id) { $this->getContext()->setGroups(['Details']); $lyricQuery = new LyricQuery(); /* @var $lyric Lyric */ $lyric = $lyricQuery->findOneById($id); try { if ($this->getUser()) { $user = $this->getUser(); } else { $user = new User(); } $allowedFields = $user->getAllowedLyricFields($lyric); if (!in_array('delete', $allowedFields)) { throw new \Exception("Delete not allowed"); } $lyric->delete(); return $this->handleData($request, $lyric); } catch (LyricHumanReadableException $e) { $view = $this->handleData($request, $e->getErrors()); $view->setStatusCode(400); return $view; } }