ユーザーが特定のIDのノードを編集できるかどうかを確認します


8

ユーザーが特定のノードを編集できるかどうかを調べる機能または方法を知る必要があります。

たとえば、nid 200があり、ユーザーfooがログインしている場合、彼がnode / 200を編集できるかどうかを確認します。

ありがとう

回答:


12

node_accessこれを行うために使用できます:

$node = node_load(123);
$account = user_load(456);

if (node_access("update", $node, $account) === TRUE) {
  do_something_awesome();
}

のソースをnode_access見ると、$node引数がの場合もあることがわかります$nid。これは、編集ページのパスがチェックされる方法です(の「node /%node / edit」エントリを参照してくださいnode_menu)。


あなたの答えをありがとう、しかしそれから私は何か間違ったことをしているようです。pastebin.com/tjcWbZNc-管理者としてのみ、正しい出力が得られます。しかし、特定のユーザーとしてノードを編集できますが、node_accessはtrueを返しません。
lumio

「コンテンツアクセス制御をバイパスする」権限が設定されている場合にのみ機能します。
lumio

まあ...私がインストールしたプラグインのせいだと思います-目標を達成するための別の方法を見つけました...しかし、あなたのやり方は通常の方法だと思います。ありがとう
lumio

$ accountパラメータを使用しない場合、デフォルトで現在のユーザーになります。
batigolix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.