Size: a a a

2020 February 19

БА

Боев Александр Александрович in Drupal RU
Asusu 4 SSD по 500 гигов в рейде
источник
2020 February 20

ЮГ

Юрий Гущин in Drupal RU
На деве для доступа к хосту включена Basic authentication, для rest api включен HTTP Basic Authentication, но только для одного роута, и получается если заходишь на хост под апачевской аутентификацией, друпал мне говорит access denied на всех страницах, отключение модуля HTTP Basic Authentication исправляет ситуацию
источник

ЮГ

Юрий Гущин in Drupal RU
сейчас создал юзера с такими же логином/паролем как для авторизации апачевской, и после логина появился тулбар, но на всех страницах доступ запрещен, к /user тоже
источник

ЮГ

Юрий Гущин in Drupal RU
куда копнуть чтоб друпал врубал HTTP Basic Authentication только для нужных роутов а не для всего сайта?
источник

SS

Salavat Sitdikov in Drupal RU
В nginx?
источник

ЮГ

Юрий Гущин in Drupal RU
да
источник

NM

Nikita Malyshev in Drupal RU
Юрий Гущин
куда копнуть чтоб друпал врубал HTTP Basic Authentication только для нужных роутов а не для всего сайта?
1. Написать свой Authentication Provider отнаследовавшись от оригинально и заменив applies() на свою логику.
2. Как-то корректировать роуты. Тут точно не подскажу, но вроде они хранят там список доступных провайдеров для каждого роута. Можно порыться в REST модуле ядра, который такие требования умеет задавать и отследить откуда ноги растут.
источник

NM

Nikita Malyshev in Drupal RU
Лол. В статье же и написано. В роуте доступные способы задаются через options._auth. Так что роут альтер и в путь. Вырезать везде basic_auth кроме нужных.
источник

ЮГ

Юрий Гущин in Drupal RU
Nikita Malyshev
Лол. В статье же и написано. В роуте доступные способы задаются через options._auth. Так что роут альтер и в путь. Вырезать везде basic_auth кроме нужных.
пасиб, пойду изучать
источник

NM

Nikita Malyshev in Drupal RU
Думаю проще и быстрее стартануть со второго варианта. А потом уже смотреть и если что скорректировать и написать свой провайдер.
источник

NM

Nikita Malyshev in Drupal RU
С первым надо поболее тестить будет. Ибо если наследоваться от оригинального, значит модуль basic_auth должен быть включен. А если он включен, то и оригинал работать будет 🤔 В итоге отнаследоваться по хорошему не выйдет или всё уйдет в ещё большие костыли - переопределение сервиса оригинального провайдера.
источник

NM

Nikita Malyshev in Drupal RU
Хотя, возможно перекрытие сервиса пошустрее будет чем каждому роуту подрезать) Но роуты кэшатся, так что тоже не страшно
источник

ЮГ

Юрий Гущин in Drupal RU
сейчас чем проще/дешевле тем лучше, тип авторизации не важен вообще, просто хотелось тащить мегьше контриба а он в ядре как раз получился
источник

NM

Nikita Malyshev in Drupal RU
Юрий Гущин
сейчас чем проще/дешевле тем лучше, тип авторизации не важен вообще, просто хотелось тащить мегьше контриба а он в ядре как раз получился
Роут альтер сделать, и вырезать у всех и options._auth значение basic_auth кроме тех что нужны
источник

NM

Nikita Malyshev in Drupal RU
Быстро внедрить - быстро вырезать при необходимости
источник

ЮГ

Юрий Гущин in Drupal RU
благодарю
источник

ЮГ

Юрий Гущин in Drupal RU
@Niklan options._auth c basic_auth есть только у рест роута, альтер не вариант получается или я делаю что-то не так
источник

NM

Nikita Malyshev in Drupal RU
Юрий Гущин
@Niklan options._auth c basic_auth есть только у рест роута, альтер не вариант получается или я делаю что-то не так
Ваш альтер должен иметь наименьший вес, чтобы он срабатывал после всех, когда уже все остальные добавили туда свои данные. Скорее всего ваш код отрабатывает раньше чем он там появляется.

А может что-то иное там срабатывает. Сложно сказать.
источник

AK

Alexey Korepov in Drupal RU
Подскажите плз как оптимальнее удалять несколько значений посередине из поля с многими значениями?

Например, есть multivalue поле с несколькими значениями, мне нужно удалить значения с delta между 1 и 3 а остальные оставить. Делаю вот так:

foreach($node->field_multivalue as $key => $item) {
 if($key >= 1 && $key <=3) {
   unset($node->field_multivalue[$key]);
 }
}

Вроде с виду всё красиво, но если значений ровно 3 - получаю ошибку InvalidArgumentException: Unable to remove item at non-existing index. т.к. unset переопределяется друпалом и после удаления элемента с $key=1 - элемент с $key=2 переезжает на его место, ну а если занчений более 3 - то удаляется не то что нужно.

Можно, конечно, вместо unset($node->field_multivalue[$key]); - заполнять значение null - тогда всё работает норм, но правильно ли это и не будут ли потом косяки с расчётом количества оставшихся значений поля при сохранении?

Ещё вариант - идти в обратную сторону от последнего значения к первому, но чёт костылём пахнет ;)
источник

DK

Dmitry Kiselev in Drupal RU
D8?
метод ->filter от поля и анонимка с необходимой тебе логикой
источник