web-dev-qa-db-ja.com

アクセスレコード「content_access:all」とは何ですか?これは私の分類法アクセスモジュールを上書きしています

最後に権限を再構築して以来、権限に問題がありました。 (これは、ユーザー参照のアクセス許可で作業した後に行いました。このフィールドにはユーザー参照がありません)

分類法のアクセス許可の優先度は0です。実際、すべてのアクセスモジュールの優先度は0です。表示されるべきではないのに表示されているページに移動すると、ページを表示するためのアクセス権が付与されていると次のように表示されます。

enter image description here

デフォルトでページを表示するためのアクセスをユーザーに許可し、分類法が割り当てられている場合はページを削除する必要があると思います。私は以前にこれを機能させていましたが、なぜ機能しなくなったのかわかりません。

これを理解するために私は何ができますか?私はこの問題に数時間かかり、少し困惑しています。

権限に関して次のモジュールをインストールしています。

  • コンテンツアクセス
  • ノードアクセスユーザーリファレンス
  • タクソノミーアクセス制御

関連性があるかどうかはわかりませんが、削除にカーソルを合わせると、次のようなメッセージが表示されます。

DNAとコアはこの項目について意見が一致していないようです。これはどちらか一方のバグであり、修正する必要があります。このノードをこのユーザーとして見て、まだ不一致があるかどうかを確認してください。

1
Scott

表示されているアクセスレコードは、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は、アクセスコンテンツ権限のないユーザーを意味します。

1
kiamlaluno