Quản trị viên trang web trong cài đặt mạng không thể chỉnh sửa người dùng?


15

Đối với Blog cộng đồng trao đổi Stack, chúng tôi có cài đặt mạng mà chúng tôi đã thiết lập. Tôi được cho biết rằng vai trò quản trị viên trang web không cho phép tùy chọn chỉnh sửa người dùng. Trên trang người dùng của trang web khi di chuột qua người dùng, chỉ có một tùy chọn cho delete, không phải là một tùy chọn cho edit.

Tùy chọn duy nhất liên quan đến quyền của người dùng là như sau, nhưng không thực sự là những gì tôi sẽ làm ở đây ...

thêm người dùng mới

Làm cách nào tôi có thể cho phép quản trị viên trang web có toàn quyền kiểm soát người dùng trên trang web cụ thể đó?

Câu trả lời:


8

Như được giải thích trong phần mô tả của màn hình Người dùng Quản trị Mạng , trong cài đặt mạng (chế độ nhiều trang) người dùng là

được thêm trên cơ sở toàn cầu cho toàn bộ mạng, sau đó được gán cho các trang web cụ thể

Quản trị viên bình thường không được phép sửa đổi các hồ sơ toàn cầu này, vì các đặc quyền của họ chỉ mở rộng đến trang web cụ thể của họ. Nhiệm vụ này được dành riêng cho các quản trị viên siêu hạng, những người có toàn quyền kiểm soát trên toàn bộ mạng.

Trong các phiên bản trước của WordPress, khi cài đặt nhiều trang phụ thuộc vào hỗ trợ MU MU riêng biệt , bạn có thể xác định EDIT_ANY_USERlà đúng trong tệp wp-config.php của mình. Tuy nhiên, vì hỗ trợ nhiều trang đã được tích hợp, tôi tin rằng điều này đã bị xóa.

Để quản lý người dùng mạng từ màn hình Người dùng Quản trị Mạng, người dùng phải thuộc một vai trò có ít nhất manage_network_usersedit_usersquyền. Bạn có thể thử tạo một vai trò tùy chỉnh bao gồm các quyền này và quyền của quản trị viên tiêu chuẩn, nhưng tôi không tin nó có hiệu quả như thế nào. Cá nhân, tôi chỉ cố gắng tránh những hạn chế này.




0

Có lẽ plugin này có thể giúp: http://wordpress.org/extend/plugins/extends-super-admins/ kết hợp với mã hóa cứng biến toàn cầu, $ super_admins, cụ thể cho từng trang web.

Nó sẽ có thể được đặt trong một hook khi menu quản trị trang được tải - không hoàn toàn chắc chắn làm thế nào để thực thi điều đó. Có vẻ như một giải pháp đầy hứa hẹn cho một vấn đề tôi sẽ phải tự mình giải quyết.

Xem: http://svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.php và lưu ý trả lại nếu toàn cầu, $ super_admins đã được đặt.

/ **
 * Cấp đặc quyền siêu quản trị viên.
 *
 * @since 3.0.0
 * @param int $ user_id
 * /
hàm Grant_super_admin ($ user_id) {
    $ super_admin toàn cầu;

    // Nếu ghi đè super_admins toàn cầu được xác định, không có gì để làm ở đây.
    if (isset ($ super_admins))
        trả lại sai;

    do_action ('Grant_super_admin', $ user_id);

    // Lấy trực tiếp trang web_admins thay vì sử dụng get_super_admins ()
    $ super_admins = get_site_option ('site_admins', mảng ('admin'));

    $ user = WP_User mới ($ user_id);
    if (! in_array ($ user-> user_login, $ super_admins)) {
        $ super_admins [] = $ user-> user_login;
        update_site_option ('site_admins', $ super_admins);
        do_action ('cấp_super_admin', $ user_id);
        trả lại đúng sự thật;
    }
    trả lại sai;
}

/ **
 * Thu hồi đặc quyền siêu quản trị viên.
 *
 * @since 3.0.0
 * @param int $ user_id
 * /
hàm revoke_super_admin ($ user_id) {
    $ super_admin toàn cầu;

    // Nếu ghi đè super_admins toàn cầu được xác định, không có gì để làm ở đây.
    if (isset ($ super_admins))
        trả lại sai;

    do_action ('revoke_super_admin', $ user_id);

    // Lấy trực tiếp trang web_admins thay vì sử dụng get_super_admins ()
    $ super_admins = get_site_option ('site_admins', mảng ('admin'));

    $ user = WP_User mới ($ user_id);
    if ($ user-> user_email! = get_site_option ('admin_email')) {
        if (false! == ($ key = mảng_search ($ user-> user_login, $ super_admins))) {
            bỏ đặt ($ super_admins [$ key]);
            update_site_option ('site_admins', $ super_admins);
            do_action ('revoking_super_admin', $ user_id);
            trả lại đúng sự thật;
        }
    }
    trả lại sai;
}


0

Nếu bạn đi đến "Cài đặt mạng" với tư cách là quản trị viên siêu hạng, bạn sẽ thấy một tùy chọn

Thêm người dùng mới: Cho phép quản trị viên trang web thêm người dùng mới vào trang web của họ thông qua trang "Người dùng → Thêm mới"

Đơn giản chỉ cần kiểm tra tùy chọn này.

Điều đó sẽ cho phép các quản trị viên phi siêu trang web bình thường thêm người dùng mới.

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.