Что такое запись доступа "доступ к контенту: все"? Это переопределяет мой модуль доступа к таксономии
У меня были проблемы с моими разрешениями с тех пор, как я в последний раз перестраивал свои разрешения. (Я сделал это после работы над разрешениями для ссылок на пользователей. В этом поле нет ссылки на пользователя)
Разрешения на таксономию имеют одинаковый приоритет 0. На самом деле все модули доступа имеют нулевой приоритет. Когда я перехожу на страницу, которую можно увидеть, даже если ее не следует видеть, она показывает следующее как предоставление доступа для просмотра страницы:
Я подумайте, что я должен предоставить людям доступ к просмотру страниц по умолчанию, а затем удалить его, если назначена таксономия. У меня это работало раньше, и я не понимаю, почему оно перестало работать.
Что я могу сделать, чтобы разобраться в этом? Я уже несколько часов занимаюсь этим вопросом и немного озадачен.
У меня установлены следующие модули, касающиеся разрешений:
- Доступ к контенту
- Ссылка пользователя для доступа к узлу
- Управление доступом к таксономии
Я не конечно, актуально это или нет, но я также получаю сообщение при наведении курсора мыши на "Удалить", в котором говорится:
ДНК и Ядро, похоже, расходятся во мнениях по этому вопросу. Это ошибка в любом из них, и ее следует исправить! Попробуйте взглянуть на этот узел как на этого пользователя и проверить , есть ли еще разногласия.
1 answers
Запись доступа, которую вы видите, может быть доступом по умолчанию, который использует Drupal, и который, насколько я могу судить, глядя на код, используется только тогда, когда ни один модуль не реализует права доступа к узлу.
node_access_rebuild() и node_access_acquire_grants() оба добавляют эту запись доступа, если ни один модуль не реализует какой-либо крючок доступа к узлу или ни один модуль не возвращает никакой записи доступа.
function node_access_rebuild($batch_mode = FALSE) {
db_query("DELETE FROM {node_access}");
// Only recalculate if the site is using a node_access module.
if (count(module_implements('node_grants'))) {
// …
else {
// Not using any node_access modules. Add the default grant.
db_query("INSERT INTO {node_access} VALUES (0, 0, 'all', 1, 0, 0)");
}
if (!isset($batch)) {
drupal_set_message(t('Content permissions have been rebuilt.'));
node_access_needs_rebuild(FALSE);
cache_clear_all();
}
}
Я бы не советовал удалять эту запись доступа из таблицы доступа к узлу, в противном случае пользователи без определенных разрешений не смогут просматривать ни один узел, для которого модуль не имеет записи доступа к узлу. В Drupal по умолчанию запрещен доступ к узлу; фактически модуль узла записывает в таблицу доступа к узлу только записи, которые разрешают доступ к узлу.
Обновление: Поскольку вы сообщили, что используете также Доступ к контенту, вас может заинтересовать этот отчет о проблеме: Не захватывайте область "все".
Запись доступа к вам замечаете, вероятно, запись, добавленная Доступом к контенту; краткое имя модуля - content_access, и, вероятно, модуль использует его в качестве области предоставления.
Я думаю, что я должен предоставить людям доступ к просмотру страниц по умолчанию, а затем удалить его, если назначена таксономия.
Поскольку доступ к узлу Drupal работает, доступ по умолчанию запрещен, и он предоставляется для узлов, для которых его предоставляет модуль; это прямо противоположно тому, что вы есть делать.
Доступ по-прежнему разрешен пользователям с определенными разрешениями, что в Drupal 6 означает пользователей с разрешением администрировать узлы, и не разрешается пользователям без определенного разрешения, что в Drupal 6 означает пользователей без разрешения доступ к контенту.