Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

88 lines
3.0KB

  1. <?php
  2. namespace Lc\CaracoleBundle\Controller\User;
  3. use EasyCorp\Bundle\EasyAdminBundle\Collection\EntityCollection;
  4. use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
  5. use Lc\CaracoleBundle\Controller\ControllerTrait;
  6. use Lc\SovBundle\Container\User\UserContainer;
  7. use Lc\SovBundle\Controller\User\UserAdminController as SovUserAdminController;
  8. use Lc\SovBundle\Definition\ActionDefinition;
  9. use Lc\SovBundle\Repository\RepositoryQueryInterface;
  10. abstract class UserAdminController extends SovUserAdminController
  11. {
  12. use ControllerTrait;
  13. public function getRepositoryQuery(): RepositoryQueryInterface
  14. {
  15. return $this->getUserContainer()->getRepositoryQuery();
  16. }
  17. public function createEntity(string $entityFqcn)
  18. {
  19. return $this->getUserContainer()->getFactory()->create();
  20. }
  21. public function overrideEntitiesActions(?EntityCollection $entities): void
  22. {
  23. foreach ($entities as $entity) {
  24. foreach ($entity->getActions() as $action){
  25. if($action->getName() == ActionDefinition::SWITCH_USER){
  26. $sectionDefault = $this->getSectionContainer()->getStore()->setMerchant($this->getMerchantCurrent())->getOneDefault();
  27. $url = $this->generateUrl($this->getParameter('lc_sov.homepage_route'), array('_switch_user' => $entity->getInstance()->getEmail(), 'section'=> $sectionDefault));
  28. $action->setLinkUrl($url);
  29. }
  30. }
  31. }
  32. }
  33. public function configureFields(string $pageName): iterable
  34. {
  35. $fields = $this->get(UserContainer::class)
  36. ->getFieldDefinition()
  37. ->setMerchant($this->getMerchantCurrent())
  38. ->getAllFields();
  39. if ($pageName == Crud::PAGE_INDEX) {
  40. return [
  41. $fields['id'],
  42. $fields['gender'],
  43. $fields['lastname'],
  44. $fields['firstname'],
  45. $fields['email'],
  46. $fields['phone'],
  47. $fields['birthdate'],
  48. $fields['groupUsers'],
  49. $fields['isSaleAlwaysOpen'],
  50. $fields['newsletters']
  51. ];
  52. } elseif ($pageName == Crud::PAGE_EDIT || $pageName == Crud::PAGE_NEW) {
  53. $fieldToReturn = [
  54. $fields['id'],
  55. $fields['gender'],
  56. $fields['lastname'],
  57. $fields['firstname'],
  58. $fields['email'],
  59. $fields['phone'],
  60. $fields['birthdate'],
  61. $fields['groupUsers'],
  62. $fields['isSaleAlwaysOpen'],
  63. $fields['newsletters'],
  64. $fields['ticketTypesNotification']
  65. ];
  66. if ($this->isGranted('ROLE_SUPER_ADMIN')) {
  67. $fieldToReturn[] = $fields['roles'];
  68. }
  69. return $fieldToReturn;
  70. } elseif ($pageName == Crud::PAGE_DETAIL) {
  71. return [$fields['id']];
  72. }
  73. }
  74. }