public function createAction($groupId = 0) { $entity = new User(); $route = $this->router->getCurrentRoute(); $formProvider = new FormProvider(); $this->response->prepareForJson(); $em = $this->dataProvider->getEntityManager(); if ($route == 'admin_user_create') { $url = $this->router->getUrlByRoute('admin_user_create', array(), false); $returnedValue = $this->createReturnedArray('create'); } if ($route == 'admin_user_create_in_group') { $url = $this->router->getUrlByRoute('admin_user_create_in_group', array('groupId' => $groupId), false); $returnedValue = $this->createReturnedArray('create_in_group'); } $form = $formProvider->getUserEditForm($url, $em->getRepository(get_class($entity))); $form->writeFromRequest($this->request); if ($form->isValid()) { $form->writeToEntity($entity); $entity->setWasChecked(true); $em->persist($entity); $em->flush(); if ($route == 'admin_user_create_in_group') { $manager = new Manager($em, $this->router); $branch = $manager->buildGroupTree($groupId); $users = $branch->getUsers(); $users->add($entity->getId()); $manager->addUsersToGroup($groupId, $users->toArray()); $returnedValue['view'] = json_encode($manager->prepareGroupTreeForJson($branch)[0]); } else { $returnedValue['view'] = $this->viewer->render('user_manager::user::newRow.html.twig', array('entity' => $entity)); } } else { $returnedValue['status'] = 'failed'; $returnedValue['view'] = $this->viewer->render('user_manager::user::edit.html.twig', array('entity' => $entity, 'edit_form' => $form)); } return $this->acceptSolutionFlushToResponse(json_encode($returnedValue)); }
public function updateUsersListAction($id) { $em = $this->dataProvider->getEntityManager(); $entity = $em->getRepository('LW\\Model\\Entity\\Group')->find($id); if (!$entity) { throw new \Exception('Unable to find Group entity.'); } $formProvider = new FormProvider(); $url = $this->router->getUrlByRoute('admin_group_update_users_list', array('id' => $id), false); $form = $formProvider->getGroupUsersListForm($url); $form->writeFromRequest($this->request); $this->response->prepareForJson(); $returnedValue = $this->createReturnedArray('update_users_list'); $manager = new Manager($em, $this->router); if ($form->isValid()) { $users = json_decode($form->getField('users')->getValue()); $manager->addUsersToGroup($id, $users); $branch = $manager->buildGroupTree($id); $returnedValue['view'] = json_encode($manager->prepareGroupTreeForJson($branch)[0]); } else { $entityMoved = $manager->getGroup($form->get('movedId')->getData()); $returnedValue['status'] = 'failed'; $returnedValue['view'] = sprintf('Редактирование списка подльзователей для группы <b>%s</b> не было сохранено', $entityMoved->getName()); } return $this->acceptSolutionFlushToResponse(json_encode($returnedValue)); }