ผู้ดูแลไซต์ในการติดตั้งเครือข่ายไม่สามารถแก้ไขผู้ใช้ได้ใช่ไหม


15

สำหรับบล็อกชุมชนแลกเปลี่ยน Exchange เรามีการติดตั้งเครือข่ายที่เราได้ตั้งค่าไว้ ฉันถูกบอกว่าบทบาทผู้ดูแลไซต์ไม่อนุญาตให้มีตัวเลือกสำหรับการแก้ไขผู้ใช้ ในหน้าผู้ใช้เว็บไซต์เมื่อโฉบเหนือผู้ใช้มีเพียงตัวเลือกสำหรับไม่หนึ่งสำหรับdeleteedit

ตัวเลือกเดียวที่เกี่ยวข้องกับการอนุญาตของผู้ใช้มีดังต่อไปนี้ แต่ไม่ใช่สิ่งที่ฉันกำลังทำอยู่ที่นี่ ...

เพิ่มผู้ใช้ใหม่

ฉันจะทำให้ผู้ดูแลไซต์สามารถควบคุมผู้ใช้ในไซต์นั้นได้อย่างสมบูรณ์ได้อย่างไร

คำตอบ:


8

ตามที่อธิบายไว้ในคำอธิบายของหน้าจอผู้ดูแลระบบเครือข่ายผู้ใช้ในการติดตั้งเครือข่าย (โหมดหลายไซต์) คือผู้ใช้

เพิ่มในระดับโลกให้กับเครือข่ายทั้งหมดจากนั้นกำหนดให้กับบางเว็บไซต์

ผู้ดูแลระบบปกติไม่ได้รับอนุญาตให้แก้ไขโปรไฟล์ส่วนกลางเหล่านี้เนื่องจากสิทธิ์ของพวกเขาจะขยายไปยังไซต์ที่กำหนดเท่านั้น งานนี้สงวนไว้สำหรับผู้ดูแลระบบขั้นสูงที่มีการควบคุมเต็มรูปแบบทั่วทั้งเครือข่าย

ในรุ่นก่อนหน้าของ WordPress เมื่อการติดตั้งแบบหลายไซต์อาศัยการสนับสนุนWordPress MUแยกต่างหากคุณสามารถกำหนดEDIT_ANY_USERให้เป็นจริงในไฟล์ wp-config.php ของคุณ อย่างไรก็ตามเนื่องจากการสนับสนุนหลายไซต์ถูกรวมเข้าด้วยกันฉันเชื่อว่าสิ่งนี้ถูกลบออก

ในการจัดการผู้ใช้เครือข่ายจากหน้าจอผู้ดูแลระบบเครือข่ายผู้ใช้จะต้องอยู่ในบทบาทที่มีmanage_network_usersและedit_usersสิทธิ์อย่างน้อยที่สุด คุณสามารถลองสร้างบทบาทที่กำหนดเองซึ่งรวมสิทธิ์เหล่านี้และสิทธิ์ผู้ดูแลระบบมาตรฐานไว้ แต่ฉันไม่มั่นใจว่าจะมีประสิทธิภาพเพียงใด โดยส่วนตัวแล้วฉันแค่พยายามหลีกเลี่ยงการหลีกเลี่ยงข้อ จำกัด เหล่านี้




0

บางทีปลั๊กอินนี้สามารถช่วยได้: http://wordpress.org/extend/plugins/extended-super-admins/ร่วมกับการเข้ารหัสตัวแปรทั่วโลกอย่างหนัก $ super_admins เฉพาะสำหรับแต่ละไซต์

มันควรจะสามารถตั้งค่าในเบ็ดเป็นเมนูผู้ดูแลระบบเว็บไซต์โหลด - ยังไม่แน่ใจว่าวิธีการบังคับใช้ที่ยัง ดูเหมือนว่าจะเป็นทางออกที่ดีสำหรับปัญหาที่ฉันจะต้องจัดการกับตัวเองในไม่ช้า

ดู: http://svn.automattic.com/wordpress/trunk/wp-admin/includes/ms.phpและจดบันทึกการส่งคืนหากโกลบอล, $ super_admins ถูกตั้งค่าไว้แล้ว

/ **
 * ให้สิทธิ์ผู้ดูแลระบบขั้นสูง
 * * * *
 * @since 3.0.0
 * @param int $ user_id
 * /
ฟังก์ชั่น grant_super_admin ($ user_id) {
    $ super_admins ทั่วโลก;

    // ถ้ามีการนิยามการแทนที่ทั่วโลก super_admins ไม่มีอะไรให้ทำที่นี่
    ถ้า (isset ($ super_admins))
        กลับเท็จ

    do_action ('grant_super_admin', $ user_id);

    // ดึงข้อมูล site_admins โดยตรงแทนที่จะใช้ get_super_admins ()
    $ super_admins = get_site_option ('site_admins', อาร์เรย์ ('admin'));

    $ user = ใหม่ WP_User ($ user_id);
    if (! in_array ($ user-> user_login, $ super_admins)) {
        $ super_admins [] = $ user-> user_login;
        update_site_option ('site_admins', $ super_admins);
        do_action ('grant_super_admin', $ user_id);
        กลับจริง
    }
    กลับเท็จ
}

/ **
 * ยกเลิกสิทธิ์ผู้ดูแลระบบขั้นสูง
 * * * *
 * @since 3.0.0
 * @param int $ user_id
 * /
ฟังก์ชัน revoke_super_admin ($ user_id) {
    $ super_admins ทั่วโลก;

    // ถ้ามีการนิยามการแทนที่ทั่วโลก super_admins ไม่มีอะไรให้ทำที่นี่
    ถ้า (isset ($ super_admins))
        กลับเท็จ

    do_action ('revoke_super_admin', $ user_id);

    // ดึงข้อมูล site_admins โดยตรงแทนที่จะใช้ get_super_admins ()
    $ super_admins = get_site_option ('site_admins', อาร์เรย์ ('admin'));

    $ user = ใหม่ WP_User ($ user_id);
    if ($ user-> user_email! = get_site_option ('admin_email')) {
        if (false! == ($ key = array_search ($ user-> user_login, $ super_admins))) {
            unset ($ super_admins [$ key]);
            update_site_option ('site_admins', $ super_admins);
            do_action ('revoked_super_admin', $ user_id);
            กลับจริง
        }
    }
    กลับเท็จ
}


0

หากคุณไปที่ "การตั้งค่าเครือข่าย" ในฐานะผู้ดูแลระบบขั้นสูงคุณจะเห็นตัวเลือก

เพิ่มผู้ใช้ใหม่: อนุญาตให้ผู้ดูแลไซต์เพื่อเพิ่มผู้ใช้ใหม่ไปยังเว็บไซต์ของพวกเขาผ่านหน้า "ผู้ใช้→เพิ่มใหม่"

เพียงตรวจสอบตัวเลือกนี้

ซึ่งจะช่วยให้ผู้ดูแลระบบย่อยที่ไม่ใช่ไซต์ย่อยปกติสามารถเพิ่มผู้ใช้ใหม่ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.