Рейтинг:0

Экспорт данных просмотра с пользовательской таблицей не работает, если пользователь не является администратором

флаг vn

Я работаю над веб-сайтом Drupal 9, отображающим данные пользовательских таблиц, и мне нужно предоставить для него ссылки на экспорт CSV/XLS.
На данный момент я определил представление, использующее данные пользовательской таблицы, благодаря VПользовательская таблица просмотров модуль и работает нормально. я установил Экспорт данных представлений модуль и настроил дисплей для экспорта данных в формате CSV. Этот дисплей прикреплен к базовому дисплею.
Кнопка CSV отображается в представлении, и когда я вхожу в систему как администратор, все работает нормально. Когда я просто аутентифицированный пользователь и нажимаю кнопку, отображение, прикрепленное к экспорту CSV, отображается и экспортируется в CSV (поэтому в файле есть весь HTML).

Я думаю, что это проблема с разрешениями: экспорт использует основной модуль REST, а этот выполняет проверку разрешений для объекта (например, пользователь может получить доступ к объекту). На мой взгляд, сущности нет, потому что данные поступают из Просмотр пользовательской таблицы модуль (через крюк_данные()).

Я не уверен, есть ли простое решение или мне нужно определить свою собственную конечную точку (и найти решение для сохранения открытых фильтров). Более того, Экспорт данных представлений PHPExcel модуль недоступен для Drupal 8 и Drupal 9.

Рейтинг:1
флаг cn

Если то, что вы сделали, работает, когда вы вошли в систему как пользователь 1 (администратор), то это звучит так, как будто вам нужно настроить определенные разрешения и очистить кеш, чтобы они вступили в силу для других «пользователей» или «ролей».

Чтобы проверить это, я бы создал тестового пользователя и роль под названием «тестовая роль». Затем убедитесь, что вы назначаете тестовому пользователю тестовую роль. Затем убедитесь, что вы даете «тестовую роль» тому, что требуется модулю.... я вижу ниже в документах просмотреть таблицу экспорта

Вы также можете проверить, проверено ли для аутентифицированного пользователя/роли следующее, если вы не хотите создавать тестового пользователя/роль (/admin/people/permissions).

Приведенные ниже разрешения поставляются с модулем, я полагаю, и вы увидите, будут ли после установки модуля и очистки кеша и т. д.

  • Настройте права пользователей в Администрирование » Люди » Разрешения:

    • Добавить пользовательскую таблицу в представлениях

      Предоставьте пользователю доступ для добавления своей пользовательской таблицы в систему.

    • Администрирование всех пользовательских таблиц в представлениях

      Дайте пользователю доступ для администрирования всех пользовательских таблиц, добавленных всеми пользователи

    • Администрирование собственной пользовательской таблицы в представлениях

      Предоставьте пользователю доступ для администрирования собственных настраиваемых таблиц

  • Управляйте пользовательскими таблицами в разделе «Администрирование» «Структура» «Представления» «Пользовательский вид». Настольные мужчины

Кроме того, дважды проверьте, есть ли у вас эта конфигурация для модуль экспорта данных (особенно №8)

Наконец, войдите в систему как «тестовый пользователь» и проверьте.

Проверьте журналы, если определенные шаги не работают (admin/reports/dblog)

флаг vn
Спасибо за помощь @salah-1! Разрешения Views Custom Table относятся только к определению пользовательских таблиц в бэк-офисе, а не к экспорту. Но чтобы быть уверенным, я сделал то, что вы сказали, и проверил все разрешения для аутентифицированного пользователя. Но проблема осталась (после очистки кэша) :/ Когда я проверяю журналы, я вижу уведомление: `Примечание: Неопределенный индекс: #content_type в Drupal\views_data_export\Plugin\views\display\DataExport::buildStandard() (/home/a-adamezyk/dev/orange-cmu/web/modules/contrib/views_data_export/src/Plugin /views/display/DataExport.php строка 190)`
salah-1 avatar
флаг cn
У вас есть какой-то массив? ошибка указывает на неопределенный индекс массива. Вы написали этот код? /home/a-adamezyk/dev/orange-cmu/web/modules/contrib/views_data_export/src/Plugin/views/display/DataExport.php? если да, посмотрите на строку 190.Если вы не писали этот код, внимательно посмотрите на тип контента или поля, которые вы определили.
флаг vn
У меня есть массив. Для администратора он содержит данные content_type + csv. Для аутентифицированного пользователя нет content_type и данных csv. Я не писал этот код, он из модуля экспорта данных представлений. В этом модуле я вижу, что строка возвращает правильные данные для администратора, но не для других ролей: `$output = (string) $renderer->renderRoot($build);` Но я не могу понять Почему...

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.