src/Controller/User/UserController.php line 42
<?phpnamespace App\Controller\User;use App\Controller\AppController;use App\Entity\User;use App\Enum\RoleEnum;use App\Form\User\UserForm;use App\Service\User\UserService;use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpFoundation\RedirectResponse;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;/*** Class UserController* @package App\Controller\User* @IsGranted("ROLE_USER")*/class UserController extends AppController{/*** @Route("/izbornik/vidljivost", name="operateri-izbornik-vidljiv", options={"expose" = true}, methods={"PATCH"})* @param UserService $service* @return JsonResponse*/public function menuVisibility(UserService $service){$visibility = $this->getRequest()->get('data');$service->setVisibility($this->getUser(), json_decode($visibility));return new JsonResponse($this->getUser()->isMenuVisibility(), Response::HTTP_OK);}/*** @Route("/{id}", name="operateri-profil")* @param UserService $service* @return RedirectResponse|Response*/public function profile(UserService $service){$form = $this->createForm(UserForm::class, $this->getUser(), ['validation_groups' => ['update'],'create' => false]);$form->handleRequest($this->getRequest());if ($form->isSubmitted() && $form->isValid()) {$service->updateMainProfile($form->getData());$this->sendSavedMessage();return $this->redirectToRoute('home');}return $this->render('dashboard/programs/operateri/profile.html.twig', ['form' => $form->createView()]);}/*** @return Response* @Route("/operateri/index", name="operateri-index")* @IsGranted("ROLE_ADMIN")*/public function list(){$users = $this->getManager()->getRepository(User::class)->getAllActive();if ($this->searchFormValid()) {$data = $this->getSearchDataInput();$users = $this->getManager()->getRepository(User::class)->search($data);}return $this->render('dashboard/programs/operateri/index.html.twig', ['users' => $this->paginate($users, $this->getRequest()),'searchForm' => $this->createSearchView()]);}/*** @Route("/operateri/novi", name="operateri-novi")* @param UserService $service* @param RoleEnum $enum* @return Response* @IsGranted("ROLE_ADMIN")*/public function create(UserService $service, RoleEnum $enum){$user = new User();$user->setCity($this->getCity());$form = $this->createForm(UserForm::class, $user, ['validation_groups' => ['registration'],'create' => true]);$form->handleRequest($this->getRequest());if ($form->isSubmitted() && $form->isValid()) {$role = $this->getRequest()->get('action-user-role');$user = $service->create($form->getData(), $role);$this->sendSavedMessage();if ($this->getStaySubmitButton()) {return $this->redirectToRoute('operateri-promjena', ['id' => $user->getId()]);}return $this->redirectToRoute('operateri-index');}return $this->render('dashboard/programs/operateri/detalji.html.twig', ['form' => $form->createView(),'user' => null,'update' => false,'roles' => $enum->getRoles()]);}/*** @Route("/operateri/promjena/{id}", name="operateri-promjena")* @param User $user* @param UserService $service* @param RoleEnum $enum* @return Response* @IsGranted("ROLE_ADMIN")*/public function update(User $user, UserService $service, RoleEnum $enum){$form = $this->createForm(UserForm::class, $user, ['create' => false,'validation_groups' => ['update']]);$form->handleRequest($this->getRequest());if ($form->isSubmitted() && $form->isValid()) {$role = $this->getRequest()->get('action-user-role');$user = $service->update($form->getData(), $role);$this->sendSavedMessage();if ($this->getStaySubmitButton()) {return $this->redirectToRoute('operateri-promjena', ['id' => $user->getId()]);}return $this->redirectToRoute('operateri-index');}return $this->render('dashboard/programs/operateri/detalji.html.twig', ['form' => $form->createView(),'user' => $user,'update' => true,'roles' => $enum->getRoles()]);}/*** @return Response* @Route("/autocomplete/pretrazi", name="pretrazivanje_korisnika", defaults={"_format"="json"}, methods={"GET"})*/public function autocomplete(): Response{$qs = $this->getRequest()->query->get('q', $this->getRequest()->query->get('term', ''));$results = $this->getManager()->getRepository(User::class)->autoComplete($qs);return $this->render('dashboard/programs/natjecaji/provoditelj/autocomplete/clanovi_povjerenstva_autocomplete.html.twig', ['users' => $results]);}/*** @param null $id* @return Response* @Route("/pretrazivanje-korisnika/{id}", name="pretrazivanje_korisnika_get")*/public function find($id = null): Response{$user = $this->getManager()->getRepository(User::class)->find($id);return new Response($user->getFullName());}/*** @return Response* @Route("/autocomplete/pretrazi-prijavitelje", name="pretrazivanje_korisnika_prijavitelja", defaults={"_format"="json"}, methods={"GET"})*/public function autocompleteApplicant(): Response{$qs = $this->getRequest()->query->get('q', $this->getRequest()->query->get('term', ''));$results = $this->getManager()->getRepository(User::class)->autocompleteApplicant($qs);return $this->render('dashboard/programs/ugovori/provoditelj/autocomplete_user.html.twig', ['users' => $results]);}/*** @param null $id* @return Response* @Route("/pretrazivanje-prijavitelja/{id}", name="pretrazivanje_prijavitelja_get")*/public function findApplicant($id = null): Response{$user = $this->getManager()->getRepository(User::class)->find($id);return new Response($user->getFullName());}/*** @Route("/operateri/brisanje/{id}", name="operateri-brisanje")* @param User $user* @param UserService $service* @IsGranted("ROLE_ADMIN")* @return RedirectResponse*/public function deactivate(User $user, UserService $service){$service->deactivate($user);$this->sendDeletedMessage();return $this->redirectToRoute('operateri-index');}}