Як обмежити прямий доступ до URL-адрес вузлів, які відображаються у відеогалереї, створеній за допомогою Views?


10

Я створив відеогалерею за допомогою Views . Але я хочу лише, щоб сторінка була доступною для публіки і не дозволяла отримати доступ до кожного з відео окремо.

Відео повинні бути створені як тип контенту, тому всі вони мають доступні ULR-файли на зразок /content/video-1тощо.

Відповіді:


5

Спробуйте модуль доступу до videoвмісту та запобігайте індивідуальному доступу до вмісту (або також ви можете встановити доступ до нього за своїм бажанням roles)

Цей модуль дозволяє керувати дозволами для типів вмісту за роллю та автором. Це дозволяє вказати власні перегляд, редагувати та видаляти дозволи для кожного типу вмісту. За бажанням можна включити налаштування доступу до вмісту, щоб ви могли налаштувати доступ для кожного контентного вузла.

Також ви можете використовувати модуль дозволів перегляду вузла , але я пропоную використовувати Content access module.

(якщо ви хочете працювати з drupal на майбутнє, краще залучайте до цього корисні модулі)


Майже те, що мені було потрібно. Нарешті я контролював доступ через низький рівень, тому що хотів переспрямувати на домашню сторінку в деяких випадках, 404 в інших тощо, тому я мав кращий контроль, але я думаю, що цей модуль може працювати в більшості випадків. Можливо, з кращим налаштуванням у моєму випадку, але не було часу на розслідування.
Сезар

3

Встановіть модуль дозволів для перегляду вузла .

Модуль дозволів перегляду вузлів дозволяє дозволу "Переглянути власний вміст" та "Переглянути будь-який вміст" для кожного типу вмісту на сторінці дозволів, як це було на Drupal 6.

Тепер перейдіть на сторінку дозволів та видаліть Перегляд будь-якого дозволу на вміст із типу відеоконтенту для користувача Anonymous .

Якщо ви хочете, щоб лише анонімні користувачі були доступні лише до кількох відео з Галереї відео, встановіть модуль заборонити доступ .


1

Просто оновіть тип вмісту.

  1. Додайте числове поле на зразок display_order тощо.

  2. Встановіть значення цього поля лише для тих відео, які ви хочете показати.

  3. Перейдіть до налаштувань перегляду та встановіть;

    Використовувати пейджер: Відображення заданої кількості елементів | x предметів

    де x - це відео, яке ви хочете показати

  4. Потім застосувати сортування за порядком відображення

Сподіваюся, це спрацює.


1

Я думаю, що модуль « Кроляча діра» робить саме те, що ви шукаєте. Ось уривок зі сторінки опису модуля, що відповідає вашим потребам. Удачі.

Кроляча діра - це модуль, який додає можливість контролювати те, що повинно статися, коли суб'єкт господарювання переглядається на власній сторінці.

Можливо, у вас є тип вмісту, який ніколи не повинен відображатися на його власній сторінці, як тип вмісту зображення, який відображається у каруселі. Кроляча дірка може запобігти доступ цього вузла на власній сторінці через вузол / ххх.


1

Перейдіть на модуль для кролячої нори , він робить точно так само. Увесь вміст доступний через представлення / код, але при спробі отримати доступ до сторінки деталей "content / ***" йому заборонено доступ або доступ до перенаправлення.


Я покатаюсь, дякую. На даний момент я вирішив це на низькому рівні, але найкраще знати вже зроблені спеціальні модулі.
Сезар

0

1) Створіть булеве поле значення у своєму вмісті.

2) Якщо значення вибрано як істинне, до цього відеополя слід додати унікальний клас, якщо значення вибрано як помилкове, клас не повинен додаватися до цього відеополя.

3) Напишіть декілька CSS, щоб приховати відео, де класу немає.


0

За допомогою модуля Правила ви можете реалізувати правило, схоже на це:

{ "rules_disallow_accesss_to_selected_urls" : {
    "LABEL" : "Disallow access to selected URLs",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "text_matches" : {
          "text" : [ "site:current-page:url" ],
          "match" : "content\/video-1",
          "operation" : "regex"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : {
          "message" : "Sorry, access to URLs like [site:current-page:url] is not allowed ...",
          "type" : "error"
        }
      },
      { "redirect" : { "url" : "no_access" } }
    ]
  }
}

Кожен, хто намагається отримати доступ до відносного шляху, content/video-1буде перенаправлений на сторінку з контуром no_access, і буде показано відповідне повідомлення про помилку (адаптуйте цей шлях відповідно до ваших власних умов і перегляньте повідомлення, яке відображається).

Наведене вище правило обмежує доступ лише до відносного шляху content/video-1(як у вашому запитанні). Якщо ви хочете розширити правило на подібні URL-адреси, змініть content\/video-1щось на зразок content\/video-\\d+$або будь-який варіант, який відповідає умові іменування ваших шляхів.

Наведене вище правило (поки що) не враховує застосування Правил дій лише для користувачів, які мають лише вибрані ролі. Але для тих, хто трохи знайомий з модулем Правил, це прямий "Умова", який слід додати ... Наприклад: пропустити дії правил для користувачів з такою роллю, як редактор, адміністратор тощо. Що можна зробити, додавши правила Умова типу "користувач НЕ має адміністратора ролей (та / або редактора)". Таким чином, ці спеціальні користувачі все одно можуть переглядати такі вузли (без таких додаткових умов вони також більше не можуть переглядати такі вузли ...).

Щоб поекспериментувати з цим правилом на своєму власному сайті, просто скопіюйте весь Кодекс правил вище та вставте його у нове правило на своєму власному сайті, створене за допомогою функції «Імпорт» (доступно, якщо ввімкнено інтерфейс правил). Потім додатково відредагуйте / вдосконаліть, щоб він змістився у вашому власному середовищі (наприклад, повідомлення "Вибачте, ...", яке буде показано)

Додаткове вдосконалення

В одній з інших відповідей ви додали коментар, який включає такий:

... Я хотів переспрямувати на домашню сторінку в деяких випадках, 404 в інших тощо, тому я мав кращий контроль ...

Якщо ви також хочете це зробити, то ви можете додатково уточнити вищезазначені дії Правил, додавши також модуль Умовні правила . З огляду на це, для кожного вашого "деяких випадків" ви можете вказати відповідну URL-адресу, на яку слід перенаправлятись. Зверніться до моєї відповіді на тему " Як встановити значення деяких полів залежно від значення поля списку? " Для ілюстрації того, як використовувати цей модуль в межах Дії правил.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.