Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

64 Zeilen
2.4KB

  1. <?php
  2. namespace Lc\ShopBundle\Controller\Admin;
  3. use Lc\ShopBundle\Context\MerchantInterface;
  4. use Symfony\Component\HttpFoundation\RedirectResponse;
  5. use Symfony\Component\HttpFoundation\Request;
  6. class MerchantController extends AdminController
  7. {
  8. public function editAction()
  9. {
  10. // paramètres (admin)
  11. $isSettings = $this->request->query->get('is_settings') ;
  12. if($isSettings) {
  13. $idMerchant = $this->security->getUser()->getMerchant()->getId() ;
  14. $this->request->query->set('id', $idMerchant) ;
  15. $easyadmin = $this->request->attributes->get('easyadmin');
  16. $merchant = $this->getDoctrine()
  17. ->getRepository(MerchantInterface::class)
  18. ->find($idMerchant);
  19. $easyadmin['item'] = $merchant;
  20. $this->request->attributes->set('easyadmin', $easyadmin) ;
  21. $response = parent::editAction() ;
  22. if ($response instanceof RedirectResponse) {
  23. $referer = $this->request->headers->get('referer');
  24. return new RedirectResponse($referer);
  25. }
  26. else {
  27. return $response ;
  28. }
  29. }
  30. // édition des Merchant (super admin)
  31. else {
  32. return parent::editAction() ;
  33. }
  34. }
  35. public function switchMerchantAction(Request $request): RedirectResponse
  36. {
  37. $em = $this->getDoctrine()->getManager();
  38. $user = $this->security->getUser() ;
  39. if($user->hasRole('ROLE_SUPER_ADMIN')) {
  40. $idMerchant = $request->request->get('id_merchant');
  41. $merchant = $this->getDoctrine()
  42. ->getRepository(MerchantInterface::class)
  43. ->find($idMerchant);
  44. if ($merchant) {
  45. $user->setMerchant($merchant);
  46. $em->persist($user);
  47. $em->flush();
  48. }
  49. }
  50. return $this->redirect('admin/dashboard') ;
  51. }
  52. }