Я использую модуль Представления, чтобы создать представление, к которому могут иметь доступ только определенные пользователи. Я знаю, что Views включает в себя управление доступом по роли или разрешениям, но мне нужно нечто более детальное: в основном, я хочу иметь возможность сказать, что только пользователь "x" и пользователь "y" могут получить доступ к определенному представлению (или кому-то другому с роль администратора сайта). Так что это будет работать очень похоже на то, как действует модуль ACL для отдельных узлов.
Является ли лучший подход для создания плагина доступа пользовательских представлений? У меня нет большого опыта с этим.
Кроме того, мне интересно использовать аргумент с некоторой проверкой для достижения этой цели (чтобы мне не пришлось создавать десятки отдельных представлений). Например, поскольку это представление будет вкладкой для определенного пути к узлу, мне интересно настроить поле ссылки пользователя на этом узле, которое указывает, кто может видеть это представление. Мне просто нужен способ проверки представления, только если текущий пользователь равен пользователю, указанному в поле ссылки пользователя.
Любые идеи? Или я делаю это сложнее, чем нужно?
Спасибо Бен
Ответы:
Вместо ограничения разрешений в представлении вы можете ограничить разрешения для элемента меню, который ведет к этому представлению (будь то вкладка на узле или обратный вызов меню). Вы можете создать свой вид только с отображением «По умолчанию» и без отображения страницы (поэтому пользователи не могут просто определить путь к нему). Затем в вашем
page callback
пункте меню просто позвоните,views_embed_view
чтобы отобразить вид. Кажется, что обработка разрешений для пункта меню может быть проще, чем написание нового плагина для Views (хотя плагин может быть полезен для других).источник
Попробуйте модуль обратного вызова Views Access .
источник
Должно быть, я что-то упустил, но похоже, что вы создадите новую роль и добавите этих пользователей. Затем воспользуйтесь функцией View: Access: Role.
Если вам действительно нужно привязать права доступа к чему-либо в контенте, я бы использовал пользовательский доступ к представлениям, который, как мне показалось, настраивал в первый раз, но я ценю гибкость, когда работал. Если представление генерирует элемент меню, оно не появится, если представление не проходит функцию доступа.
Если вы только скрываете пункт меню, мне кажется, что представление все еще будет работать, и пользователь может настроить URI для просмотра данных.
Джерри
источник
Как насчет использования модуля « Пользовательские разрешения » для создания некоторых новых разрешений специально для ваших целей, а затем с помощью модуля « Пользовательские разрешения » для назначения этих новых разрешений отдельным пользователям?
Модуль пользовательских разрешений очень легкий. Я не очень уверен насчет модуля Полномочий пользователя, поскольку он по сути создает новую роль для каждого пользователя за кулисами (эти роли не видны на главной странице разрешений). Если у вас много пользователей, это может немного увеличить размер ваших ролей и таблиц user_roles.
источник
Да, это имеет больше смысла. Я думаю, что вы могли бы (возможно, не на 100% уверен) использовать View и аргумент. Установите в качестве аргумента идентификатор пользователя, полученный от текущего пользователя, вошедшего в систему, и в качестве аргумента по умолчанию ничего не отображается. Это должно быть в состоянии сделать это, хотя я не знаю, насколько безопасным было бы быть справедливым. Если вы попробуете, отправьте сообщение и дайте мне знать о ваших успехах.
источник
Если вы хотите объединить различные плагины доступа в Views, вы можете взглянуть на модуль Views access many .
источник