Kiểm tra xem người dùng có thể chỉnh sửa nút với ID nhất định không


8

Tôi cần biết một chức năng hoặc một cách để tìm hiểu xem người dùng có thể chỉnh sửa một nút nào đó không.

Ví dụ: tôi có nid 200 và người dùng foo đã đăng nhập, tôi muốn kiểm tra xem anh ta có thể chỉnh sửa nút / 200 không.

Cảm ơn

Câu trả lời:


12

Bạn có thể sử dụng node_accessđể làm điều này:

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

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

Nếu bạn nhìn vào nguồn cho node_access, bạn sẽ thấy rằng $nodeđối số cũng có thể là a $nid. Đây là cách đường dẫn cho các trang chỉnh sửa được kiểm tra (xem mục 'nút /% nút / chỉnh sửa' trong node_menu).


Cảm ơn câu trả lời của bạn, nhưng sau đó có vẻ như tôi đang làm gì đó sai. pastebin.com/tjcWbZNc - chỉ khi quản trị viên tôi mới nhận được đầu ra đúng. Nhưng với tư cách là một người dùng nhất định, tôi có thể chỉnh sửa nút, nhưng node_access sẽ không trở lại đúng.
lumio

Được rồi, nó chỉ hoạt động nếu quyền "Bỏ qua kiểm soát truy cập nội dung" được đặt.
lumio

tốt ... Tôi nghĩ đó là do một plugin tôi đã cài đặt - Tôi đã tìm thấy một cách khác để đạt được mục tiêu của mình ... nhưng tôi nghĩ rằng cách của bạn là cách thông thường. Cảm ơn
lumio

Nếu bạn không sử dụng $ tham số tài khoản, nó sẽ mặc định cho người dùng hiện tại.
batigolix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.