public function editAction(Application $app, Request $request) { $adsModel = new AdsModel($app); $id = (int) $request->get('id', 0); $ad = $adsModel->getAd($id); $categoriesModel = new CategoriesModel($app); $ad['categories'] = $categoriesModel->getAll(); if (count($ad)) { $form = $app['form.factory']->createBuilder(new AdForm(), $ad)->getForm(); $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $data['category_id'] = $data['category']; unset($data['categories'], $data['category']); $adsModel = new AdsModel($app); $adsModel->saveAd($data); $app['session']->getFlashBag()->add('message', array('type' => 'success', 'content' => $app['translator']->trans('Ad edited.'))); return $app->redirect($app['url_generator']->generate('ads_index'), 301); } $this->view['id'] = $id; $this->view['form'] = $form->createView(); } else { return $app->redirect($app['url_generator']->generate('ads_add'), 301); } return $app['twig']->render('ads/edit.twig', $this->view); }
public function editAction(Application $app, Request $request) { $adsModel = new AdsModel($app); $id = (int) $request->get('id', 0); $ad = $adsModel->getAd($id); $ad_owner = $ad['user_id']; $userModel = new UsersModel($app); $current_user_id = $userModel->getCurrentUserId($app); $current_user_role = $userModel->getUserRoles($current_user_id); if ($current_user_role == 'ROLE_ADMIN' || $current_user_role == 'ROLE_MOD' || $ad_owner == $current_user_id) { $categoriesModel = new CategoriesModel($app); $ad['categories'] = $categoriesModel->getAll(); if (count($ad)) { $form = $app['form.factory']->createBuilder(new AdForm(), $ad)->getForm(); $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $data['category_id'] = $data['category']; unset($data['categories'], $data['category']); $adsModel = new AdsModel($app); $adsModel->saveAd($data); $app['session']->getFlashBag()->add('message', array('type' => 'success', 'content' => $app['translator']->trans('Ad updated'))); return $app->redirect($app['url_generator']->generate('ads_index'), 301); } $this->view['id'] = $id; $this->view['form'] = $form->createView(); } else { return $app->redirect($app['url_generator']->generate('ads_add'), 301); } } else { throw new ForbiddenException("You lack authority", 403); } return $app['twig']->render('ads/edit.twig', $this->view); }