จำกัด ผู้ใช้จากบทบาทบางอย่างเพื่อเปลี่ยนอีเมลของพวกเขา


10

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

ฉันใช้ Drupal 7. ขอบคุณขั้นสูง :)

คำตอบ:


8

อีกวิธีหนึ่งคือโปรแกรมในโมดูลที่กำหนดเองของคุณ

function mymodule_form_alter(&$form,$form_state,$form_id) {
   global $user;
    if ($form_id == "user_profile_form") {
       if(in_array('your role',$user->roles) && isset($form['account'])) {
           $form['account']['mail']['#disabled']=TRUE;
          }
      }
 }

5

ใช้โมดูลการปกป้องผู้ใช้ :

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


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

3

zhilevan - ขอบคุณสำหรับรหัสที่ดีเพื่อให้ฉันเริ่มต้นในการแก้ปัญหานี้ได้อย่างรวดเร็ว ฉันมีเว็บไซต์ที่มีการลงชื่อเข้าใช้ "ลูกค้า" ทั่วไปของผู้ใช้เพื่อให้ลูกค้าสามารถอัปโหลดและดาวน์โหลดไฟล์ได้ บัญชีผู้ใช้จะถูกแชร์ระหว่างลูกค้าจำนวนมากสำหรับการอัปโหลดหรือดาวน์โหลด "one off" และเราไม่ต้องการให้พวกเขาเปลี่ยนชื่อผู้ใช้รหัสผ่านหรือสิ่งอื่นใดสำหรับบัญชีทั่วไปนี้ ฉันแน่ใจว่ามีวิธีที่หรูหรากว่าในการทำเช่นนี้ แต่นี่คือรหัสของฉันสำหรับ "การปิดตัวเลือกการแก้ไข" ตามบทบาทของผู้ใช้ (ฉันลองโมดูลป้องกันผู้ใช้ แต่ไม่สามารถใช้งานได้) นี่คือรหัสของฉันในกรณีที่คนอื่นเห็นว่ามีประโยชน์

function mymodule_form_alter(&$form,$form_state,$form_id) {
   global $user;
    if ($form_id == "user_profile_form") {
       if(in_array('Client',$user->roles) && isset($form['account'])) {

           $form['account']['name']['#disabled']=TRUE;
           $form['account']['current_pass']['#disabled']=TRUE;
           $form['account']['current_pass']['#description']='';
           $form['account']['mail']['#disabled']=TRUE;

           unset($form['picture']);
           unset($form['overlay_control']);
          }
      }
 }

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