Vlad
вот правильный ответ
Diana Dvoryak
переписываю с этого видео https://www.youtube.com/watch?v=Sp9voB4eSAg&list=PLd-N2eP0f6v4S12e1W52lcWcBObMpZeAs&index=15 , там нет logincontroller
Diana Dvoryak
это я уже исправляла с доки, так как версии symfony разные
Павел
Влад прав верно навел, что перепутаны файрволы и не там прописаны настройки бандла. Хотя ошибка все равно странная, что контроллер не найден
Павел
Потому что ошибка к секьюрити не относится
Павел
Может кэш что барахлит, и надо дропнуть
Dmitry
Всем привет, немного застрял на системе авторизации/аутентификации, необходимо сделать не просто разделение по ролям, но возможность работы в нескольких типах кабинетов Будут 3 основные "роли" (типов кабинета) - Агент исполнителя, Агент заказчика и пользователь Когда человек заходит в свой кабинет под пользователем, то он может зайти именно под агентом (исполнителя или заказчика) под которым работает - агент это нечто наподобие фирмы у которой может быть множество сотрудников - т.е Агент это фирма представляющяя интересы заказчика/исполнителя Таким образом просто введение 3 ролей описанных выше - мало и приведет к не правильным разделениям ответсвенности по проекту Скорее всего, как я вижу, правильно будет разделить именно на сущности Фирмы - у нее будут также свои роли/пермишены Сотрудник в этой фирмы - также будет иметь свои роли в рамках этой фирмы есть ли примеры реализаций таких систем ? или статья? (гугл подвел) не могу немного подступиться к этой задаче, по нескольким причинам: 1) вместо получения дефолтного getRoles мы в табличке users добавляем новую колонку agent_id - который обозначает того под чьей фирмой он зашел на данный момент (или это где хранить вообще)? я понимаю что много таблиц связующих должно быть Фирмы Сотрудники Связывающая таблица Фирм и их сотрудников Фирмы_Роли Сотрудники_Роли Связующие таблицы Роль_Сотрудник_Фирма Но как реализовать это разделение во время работы контроллеров, т.е чтобы реализовать например ручку с доступом только для бухгалтеров в фирмах только агента исполнителей мне нужно будет в аттрибутах писать что-то вроде isGranted(AGENT_EXECUTOR) and is_granted(БУХГАЛТЕР_AGENT_EXECUTOR) ?
ANDREW
Всем привет, немного застрял на системе авторизации/аутентификации, необходимо сделать не просто разделение по ролям, но возможность работы в нескольких типах кабинетов Будут 3 основные "роли" (типов кабинета) - Агент исполнителя, Агент заказчика и пользователь Когда человек заходит в свой кабинет под пользователем, то он может зайти именно под агентом (исполнителя или заказчика) под которым работает - агент это нечто наподобие фирмы у которой может быть множество сотрудников - т.е Агент это фирма представляющяя интересы заказчика/исполнителя Таким образом просто введение 3 ролей описанных выше - мало и приведет к не правильным разделениям ответсвенности по проекту Скорее всего, как я вижу, правильно будет разделить именно на сущности Фирмы - у нее будут также свои роли/пермишены Сотрудник в этой фирмы - также будет иметь свои роли в рамках этой фирмы есть ли примеры реализаций таких систем ? или статья? (гугл подвел) не могу немного подступиться к этой задаче, по нескольким причинам: 1) вместо получения дефолтного getRoles мы в табличке users добавляем новую колонку agent_id - который обозначает того под чьей фирмой он зашел на данный момент (или это где хранить вообще)? я понимаю что много таблиц связующих должно быть Фирмы Сотрудники Связывающая таблица Фирм и их сотрудников Фирмы_Роли Сотрудники_Роли Связующие таблицы Роль_Сотрудник_Фирма Но как реализовать это разделение во время работы контроллеров, т.е чтобы реализовать например ручку с доступом только для бухгалтеров в фирмах только агента исполнителей мне нужно будет в аттрибутах писать что-то вроде isGranted(AGENT_EXECUTOR) and is_granted(БУХГАЛТЕР_AGENT_EXECUTOR) ?
Копните в сторону кейклока, там это все под капотом
Dmitry
Копните в сторону кейклока, там это все под капотом
опа thx! а там можно извратиться и начать задавать доступы к каждой колонке в таблице, на edit/view ?
ANDREW
Кейклоак это по сути очень гибкий клиент OAuth
Евгений
Всем мир! Подскажите пожалуйста, какого типа свойство нужно создать у entity, чтобы записать туда из поля с типом Collection - массив связанных обьектов, содержимое в таком виде "название и значение" (типа ассоц. Массива)? Спасибо
Kirill
Котаны, что-то туплю, подскажите плиз как из конфигов в бандле прокинуть сервисы в контейнер билдер? Ну носом в доку можно тыкнуть, например. Есть конфиг с сервисами внутри: example_bundle: middleware: - '@ExampleMiddleware' Сконфиженный через TreeBuilder, примерно как: ->arrayNode('middleware') ->defaultValue([]) ->variablePrototype() ->cannotBeEmpty() ->isRequired() ->end() ->end() А теперь хочется как-то прокинуть их как аргумент внутрь сервиса: $containerBuilder->register(Pipeline::class) ->addArgument(new Reference( ... )); // <<<< И вот тут я вообще хз как сказать, чтобы эти сервисы брались из конфига `example_bundle.middleware`
Kirill
О, кажись нашёл https://symfony.com/doc/current/bundles/extension.html#loading-services-directly-in-your-bundle-class через параметры онли
Kirill
Пока так заюзаю, но если у кого будут рекомендации как сделать лучше — был бы благодарен
Vlad
Так ты же можешь достать конфиг из compiler pass
Kirill
Да, я ступил, что-то не подумал что конфиги иначе, нежели сервисы регаются
Kirill
и там нет этих всяких собачек
Kirill
так что решение: $middleware = []; foreach ($config['middleware'] ?? [] as $value) { $middleware[] = new TypedReference($value, MiddlewareInterface::class); } // .... $builder->register(Pipeline::class) ->addArgument(new IteratorArgument($middleware)) ;
Евгений
Всем мир! У меня в конфигурации nginx разрешены заголовки. Но приотправке запроса, в консоле браузера возникают ошибки: Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на «http://localhost:8081/api/v1/auth/signup». (Причина: Учётные данные не поддерживаются, если заголовок CORS «Access-Control-Allow-Origin» установлен в «*»). и Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на http://localhost:8081/api/v1/auth/signup. (Причина: не удалось выполнить запрос CORS). Код состояния: (null) Не подскажете в чем может быть дело? Спасибо.
Иван
нужно глазами посмотреть, какой заголовок приходит
Евгений
Спасибо
The Ant
NelmioCorsBundle? Чем плохи бандлы?
коряво работает, чел кладет на просьбы трудящихся. А также запускается пхп на пустой ответ сервера (удваиваешь кол-во запросов к пыхе на ровном месте)
Vlad
NelmioCorsBundle? Чем плохи бандлы?
Место того чтобы разрулить это на уровне nginx приходится поднимать все приложение. В идеале располагать все на одном домене, чтобы не терять в скорости. Ибо это доп запрос, как написали выше.
Vlad
Х2 нагрузка на сервак считай на ровном месте
Иван
откуда Х2 то?
Иван
сделайте фетч из консоли с любого сайта на любой и посмотрите количество запросов на вкладке сети
Vlad
откуда Х2 то?
ну это образно)
The Ant
откуда Х2 то?
Сначала options, потом второй основной
Иван
Сначала options, потом второй основной
сделай фетч из консоли с любого сайта на любой и посмотри количество запросов на вкладке сети
The Ant
А то я не знаю ну
Иван
The Ant
Зочем? Я и так знаю чё будет )
Юра
Кто-то использовал drupal? Оно вообще норм?
The Ant
Кто-то использовал drupal? Оно вообще норм?
мельком смотрел, дерьмовая цмс! лучше вп еще ниче не придумали
The Ant
а так - типичная симфа, со всем своим дерьмом
Юра
Я как-то посмотрел и уже по доке по-моему видно что какая-то мутная хрень
Юра
Вода какая-то вместо доки
Юра
Наверное нужно покупать их платные курсы
The Ant
а она тебе прям сильно нужна, друпалина эта?
Юра
Вакансии есть по ней неплохие
Юра
Ну и иногда что-то такое сделать самому, нужна цмс какая-то
The Ant
вротпресс наше всё
The Ant
если для себя
Spider
Spider
Кто-то использовал drupal? Оно вообще норм?
если снимешь бан в личке - рааскажу и направлю
Юра
Мнения разошлись )
Spider
Мнения разошлись )
система как система. Да сложновата. В отличие от вордпресса многое можно делать без кода. Курсы книжки - не помогут ни грамма до первыз шишек набитых самим. Много всего готового
Aleksandr
Мнения разошлись )
а где ты видел, чтоб хвалили цмс?)
Maks
Я несколько лет работал в студии где Друпал был основной цмс, на мой вкус очень удобная система хуков, легко пилить свои модули, много что получалось автоматизировать через drush, последнюю версию юзал 7, с 8 версии началась история с симфони
Maks
Про старый Друпал ничего плохого сказать не могу)
Maks
а потом сняться массивы
Да, скил работы с многомерными массивами очень прокачивается)
Юра
Я пытался найти как там отрисовать график в админке, что-то ничего не нашел нормально с первого захода
Алексей
Я пытался найти как там отрисовать график в админке, что-то ничего не нашел нормально с первого захода
Hook_node_view смотри Или Смотри view() для этой сираницу. В админке это смотри
Юра
Hook_node_view смотри Или Смотри view() для этой сираницу. В админке это смотри
Почему дока по этой фции показывает в Гугле страницу 2010 год на оф сайте )
Юра
Я не понимаю такое ощущение по доке что оно еле живое
Spider
Я не понимаю такое ощущение по доке что оно еле живое
щас найду аналог хука для сведей версии
Spider
вот тебе свежий аналог https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Entity!entity.api.php/function/hook_ENTITY_TYPE_view/8.2.x
Spider
тот до 8.х актуален
Алексей
Почему дока по этой фции показывает в Гугле страницу 2010 год на оф сайте )
Друпал был тогда актуален, и в нем мало что изменилось. Глядя на ссылку ниже
Алексей
Чятик нужна помощь! Doctrine ORM. Есть сущность privelege связанный с studentDetails через manyToMany. Мне надо получить такие данные Студент 1 | привелегия 1 Студент 1 | привелегия 2 Студент 1 | привелегия 3 Студент 2 | привелегия 1 Студент 2 | привелегия 2 Студент 2 | привелегия 3 и другие возможные записи вариации. Если я напишу запрос в PrivilegeRepository через DQL? то получаю на выходе только privelege у которых подгруженны studentDetails. Я понимаю что это можно сделать через dbal, но это выглядит странно. Я думаю что это можно как-то сделать и через dql. подскажите как сделать?
Алексей
Через left join?
неа, не работает. уже по всякому пробую
RD
Наверно что то такое должно быть $this->em ->createQueryBuilder() ->select(['privelege', 'student_details']) ->from(PrivelegeModel::class, 'privelege') ->leftJoin('privelege.student_details','student_details');
RD
Вопрос на засыпку: как использовать callable в аттрибутах ? Нужно для 'normalizer' что то типа: use Symfony\Component\Validator\Constraints as Assert; #[Assert\Unique( normalizer: fn($value) => $value )]
Kirill
#[Assert\Unique(normalizer: [ClassName::class, 'methodName'])]
RD
О да
RD
Благодарю
Nikolay
Подскажите по конфигурированию, на 4.4 работало так return static function (ContainerConfigurator $containerConfigurator, ContainerInterface $container): void { $host = $container->getParameter('mailer.host'); }; Каким образом в 5.4 можно получить параметры? Сейчас контейнер нельзя прокидывать