Size: a a a

2021 June 11

D

Dmitry in symfony
что обрабатывает пришедшее сообщение ?
источник

IK

Igor Kostyakov in symfony
Наверное какой то default bus, тут еще не разобрался
источник

D

Dmitry in symfony
вы сделали транспорт который прочитает сообщение из очереди
передаст его сериалайзеру который упакует его в конверт
потом этот конверт должен уйти хендлеру
источник

D

Dmitry in symfony
если хендлера нет - по дефолту это будет ексепшн
источник

D

Dmitry in symfony
потому что мессенджер не разрешает принимать сообщения в никуда, без соответствующей настройки
источник

IK

Igor Kostyakov in symfony
А разве хендлер не для dispatch метода?
источник

D

Dmitry in symfony
поэтому, скорее всего, у вас мессенджер читает мессагу из очереди, видит что хендлера на нее нет, бросает ексепшн
источник

D

Dmitry in symfony
сам же видит что сообщение упало и ексепшином и пытается вернуть его в очередь вызывая encode
источник

D

Dmitry in symfony
нет, хендлер в принципе для сообщения
кастомный транспорт и сериалайзер просто для того чтобы создавать этим самые сообщения в нужном формате для мессенджера, такая себе прослойка для преобразования
источник

D

Dmitry in symfony
если вам так проще будет, то это контроллер который преобразует входящие данные в дто для домена
источник

IK

Igor Kostyakov in symfony
Спасибо, оказывется проблема именно в этом была, у меня просто сломался вывод -vv и не показывала косяк в хендлере
источник

DP

Dima Putsyk in symfony
Всем привет. Использую данный функционал.

https://symfony.com/doc/5.2/security/login_link.html

Можно ли как-то пользователя залогиненного данным образом отличать от стандартного логина?
Попросили для этого случая урезать ACL к многим роутам и не знаю как это сделать.

Для симфони это воспринимается как стандартный логин
источник

DP

Dima Putsyk in symfony
Там можно дописать кастомный success_handler, но в какую сторону двигаться не знаю
источник

AK

Anton K. in symfony
кастомный success_handler вполне правильное направление
источник

DP

Dima Putsyk in symfony
Ах да

Ещё в добавок попросили отправлять на почту не 1 ссылку для логина, а сразу 5. Бред )
И каждая должна давать доступ на конкретный роут и никуда иначе

Симфони со своей стороны генерирует единственную ссылку с гет-параметрами:
user=test-2@example.com
expires=1623675379
hash=OTM4YzVl...

Я могу 5 раз дополнить эту ссылку своим гет-параметром и записать в базу чуть что

Дальше в success_handler редиректить в зависимости от этого дополнительного гет-параметра.

Но как прикрыть доступ к другим роутам?
источник

DP

Dima Putsyk in symfony
Для логина этим способом есть success_handler — туда попадаем исключительно в случае успешного логина. Этот хандлер на входе возвращает Request и TokenStorage

В этот момент можно записать какую-то сессию с допустимым роутом и после этого сделать редирект на этот роут.

Ещё наверное реализовать onKernelRequest, который будет разрешать входить лишь на тот роут, что записан в сессию
источник

А

Александр in symfony
Всем привет, подскажите пожалуйста как с помощью доктрины выбрать сущности без связи. Имеются две сущности Product  и Type они имеют связь Много прокудутов к одному типу. Что бы выбрать продукты определенного типа я могу просто получить $this->findBy(['type' => $type]) а вот как получить продуты у которых нету типа, в базе это просто null, но $this->findBy(['type' => null])  не работает
источник

YB

Yuri Barsukov in symfony
$qb->createQueryBuilder('p')->select('p')->where('p.type is null')->getQuery()->getResult()
как-то так
источник

КД

Кирилл Дорош... in symfony
Салют и с пятницей. Есть возможность вытянуть объект без QB?
источник

YB

Yuri Barsukov in symfony
rawSQL + ResultSetMapper ??
источник