Рейтинг:0

Как ограничить доступ к страницам Views учетной записи пользователя?

флаг cn

Я создал страницу просмотра с вкладками в учетной записи пользователя.

Проблема: если я пользователь 3 и я захожу на страницу пользователя 56, у меня есть доступ к странице.

Я выполнил поиск в контекстных фильтрах на странице «Виды», и нет никаких настроек, ограничивающих это.

Как ограничить доступ к страницам просмотра учетной записи пользователя? Текущий пользователь должен иметь доступ ко всем страницам своей учетной записи, но не к страницам других пользователей.

РЕДАКТИРОВАТЬ

Вот очень простая страница Views для учетной записи пользователя. Как отобразить страницу 403, если я перейду на страницу другого пользователя?

ПРИМЕР :

Я пользователь ID:88 У меня есть доступ к странице /user/88/demo

У меня не должно быть доступа к /user/69/demo

UUID: faef0cd7-9481-4a11-920e-77b683989956
код языка: fr
статус: правда
зависимости:
  конфигурация:
    - core.entity_view_mode.node.teaser
  модуль:
    - узел
    - пользователь
идентификатор: демо
лейбл: Демо
модуль: просмотры
описание: ''
тег: ''
base_table: node_field_data
base_field: нид
отображать:
  По умолчанию:
    идентификатор: по умолчанию
    display_title: по умолчанию
    display_plugin: по умолчанию
    позиция: 0
    Показать варианты:
      Название: Демо
      поля:
        заглавие:
          идентификатор: название
          таблица: node_field_data
          поле: заголовок
          отношения: нет
          тип_группы: группа
          admin_label: ''
          entity_type: узел
          поле_объекта: заголовок
          plugin_id: поле
          этикетка: ''
          исключить: ложь
          изменить:
            изменить_текст: ложь
            make_link: ложь
            абсолютное: ложное
            граница_слова: ложь
            многоточие: ложь
            strip_tags: ложь
            отделка: ложная
            HTML: ложь
          тип_элемента: ''
          элемент_класс: ''
          element_label_type: ''
          element_label_class: ''
          element_label_colon: правда
          element_wrapper_type: ''
          element_wrapper_class: ''
          element_default_classes: правда
          пустой: ''
          скрыть_пусто: ложь
          пустой_ноль: ложь
          hide_alter_empty: правда
          click_sort_column: значение
          тип: строка
          настройки:
            link_to_entity: правда
          столбец_группы: значение
          группа_столбцов: {}
          группа_рядов: правда
          дельта_лимит: 0
          delta_offset: 0
          delta_reversed: ложь
          delta_first_last: ложь
          multi_type: разделитель
          разделитель: ', '
          field_api_classes: ложь
      пейджер:
        тип: мини
        параметры:
          смещение: 0
          items_per_page: 10
          всего_страниц: ноль
          идентификатор: 0
          теги:
            далее: º
            предыдущий: â¹â¹
          разоблачать:
            items_per_page: ложь
            items_per_page_label: 'Элементов на странице'
            items_per_page_options: '5, 10, 25, 50'
            items_per_page_options_all: ложь
            items_per_page_options_all_label: '- Все -'
            смещение: ложь
            offset_label: Смещение
      экспонированная_форма:
        тип: базовый
        параметры:
          submit_button: Применить
          reset_button: ложь
          reset_button_label: Сбросить
          posed_sorts_label: 'Сортировать по'
          expose_sort_order: правда
          sort_asc_label: по возрастанию
          sort_desc_label: Описание
      доступ:
        тип: Пермь
        параметры:
          perm: 'доступ к содержимому'
      кеш:
        тип: тег
        параметры: {  }
      пустой: {  }
      сорта:
        созданный:
          идентификатор: создан
          таблица: node_field_data
          поле: создано
          отношения: нет
          тип_группы: группа
          admin_label: ''
          entity_type: узел
          поле_объекта: создано
          plugin_id: дата
          заказ: DESC
          разоблачать:
            этикетка: ''
            поле_идентификатор: ''
          выставлено: ложь
          гранулярность: второй
      аргументы:
        ИД:
          идентификатор: идентификатор пользователя
          таблица: node_field_data
          поле: идентификатор пользователя
          отношения: нет
          тип_группы: группа
          admin_label: ''
          entity_type: узел
          поле_объекта: идентификатор пользователя
          plugin_id: числовой
          default_action: по умолчанию
          исключение:
            значение: все
            title_enable: ложь
            Название: Все
          title_enable: ложь
          заглавие: ''
          default_argument_type: пользователь
          default_argument_options:
            пользователь: ложь
          default_argument_skip_url: ложь
          сводка_опций:
            базовый_путь: ''
            количество: правда
            переопределить: ложь
            items_per_page: 25
          резюме:
            порядок_сортировки: по возрастанию
            количество_записей: 0
            формат: default_summary
          спецификация_валидация: ложь
          подтвердить:
            тип: нет
            сбой: «не найдено»
          validate_options: {}
          break_phrase: ложь
          нет: ложь
        uid_1:
          идентификатор: uid_1
          таблица: node_field_data
          поле: идентификатор пользователя
          отношения: нет
          тип_группы: группа
          admin_label: ''
          entity_type: узел
          поле_объекта: идентификатор пользователя
          plugin_id: числовой
          default_action: игнорировать
          исключение:
            значение: все
            title_enable: ложь
            Название: Все
          title_enable: ложь
          заглавие: ''
          default_argument_type: фиксированный
          default_argument_options:
            аргумент: ''
          default_argument_skip_url: ложь
          сводка_опций:
            базовый_путь: ''
            количество: правда
            переопределить: ложь
            items_per_page: 25
          резюме:
            порядок_сортировки: по возрастанию
            количество_записей: 0
            формат: default_summary
          спецификация_валидация: правда
          подтвердить:
            тип: 'сущность: пользователь'
            сбой: «доступ запрещен»
          проверить_опции:
            доступ: правда
            операция: обновление
            несколько: 0
            ограничения_ролей: ложь
            роли: { }
          break_phrase: ложь
          нет: ложь
      фильтры:
        положение дел:
          идентификатор: статус
          таблица: node_field_data
          поле: статус
          entity_type: узел
          поле_объекта: статус
          plugin_id: логический
          значение: «1»
          группа 1
          разоблачать:
            оператор: ''
            operator_limit_selection: ложь
            список_операторов: { }
      стиль:
        тип: по умолчанию
      строка:
        тип: 'сущность: узел'
        параметры:
          view_mode: тизер
      запрос:
        тип: views_query
        параметры:
          запрос_комментарий: ''
          disable_sql_rewrite: ложь
          отличный: ложный
          реплика: ложь
          теги запроса: {}
      отношения: { }
      заголовок: { }
      нижний колонтитул: { }
      display_extenders: {}
    cache_metadata:
      максимальный возраст: -1
      контексты:
        - 'языки:language_content'
        - 'языки:language_interface'
        - URL
        - url.query_args
        - 'user.node_grants: просмотр'
        - права пользователя
      теги: { }
  Страница 1:
    идентификатор: page_1
    display_title: Страница
    display_plugin: страница
    позиция: 1
    Показать варианты:
      display_extenders:
        simple_sitemap_display_extender: {}
        метатег_display_extender: {}
      путь: пользователь/%пользователь/демо
      меню:
        тип: вкладка
        Название: Демо
        описание: ''
        вес: 0
        развернуто: ложь
        имя_меню: основное
        родитель: ''
        контекст: '0'
    cache_metadata:
      максимальный возраст: -1
      контексты:
        - 'языки:language_content'
        - 'языки:language_interface'
        - URL
        - url.query_args
        - 'user.node_grants: просмотр'
        - права пользователя
      теги: { }
Рейтинг:0
флаг de

Вы можете сделать следующее:

  1. В контекстных фильтрах представления
  2. Проверять указать критерии проверки
  3. Проверять Подтвердите, что пользователь имеет доступ к пользователю
  4. Под Доступ к операции для проверки выберите редактировать.

Это ограничит доступ к самому пользователю и модераторам/админам, которые могут редактировать свою учетную запись.

Другие соображения

Вы можете ослабить эти разрешения, выбрав Посмотреть для операции доступа, однако, если аутентифицированные или анонимные пользователи имеют разрешение на просмотр профилей других пользователей на сайте, они также будут иметь доступ к этому представлению/странице. Казалось бы, это ситуация в исходном вопросе, поэтому Посмотреть не будет работать для ОП. Но для других сайтов, где пользователи не могут получить доступ к профилям других пользователей, это может быть вариантом.

Дополнительные разрешения можно настроить, создав новое пользовательское разрешение (в модуле), например просмотреть мою пользовательскую страницуи добавьте это как разрешение в настройках доступа к представлению. Это добавит дополнительный уровень конфигурации доступа.

флаг cn
Спасибо, я обновил свой вопрос примером. Если я добавлю второй всплывающий фильтр с вашим решением, это не сработает.
Jaypan avatar
флаг de
Я не понимаю, что это значит. Что такое второй всплывающий фильтр?
Jaypan avatar
флаг de
Похоже, вы не выполнили шаги из моего примера: `specify_validation: false`
флаг cn
Я сделал неправильный экспорт, я обновил
флаг cn
В примере. Мне нужна страница с контентом, созданным пользователем, и я хочу, чтобы, если пользователь перейдет на ту же страницу в другой учетной записи, на странице будет отображаться страница 403.
Jaypan avatar
флаг de
Хорошо. Следуйте инструкциям в моем примере выше.
флаг cn
да спасибо ;-)

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

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