รายละเอียดสิทธิ์ของผู้ใช้ Drupal Filefield

ฉันมีไซต์ Drupal 6 ที่มีประเภทโหนดซึ่งมีการตั้งค่า Imagefield (Filefield/CCK) ที่เป็นทางเลือกและไม่จำกัด การอนุญาตเนื้อหาของประเภทโหนดได้รับการตั้งค่าให้อนุญาตให้ผู้ใช้ที่ผ่านการรับรองความถูกต้องทั้งหมดสามารถแก้ไขโหนดเหล่านั้นได้ ซึ่งถือว่าดีมาก ผู้ใช้สามารถแก้ไขโหนดและแนบรูปภาพไปที่ Imagefield ได้เช่นกัน

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


person tyler.frankenstein    schedule 30.09.2011    source แหล่งที่มา


คำตอบ (1)


ขอบคุณผู้คนบางส่วนในช่องทาง #drupal-support บน IRC ฉันจึงสามารถได้รับคำตอบสำหรับคำถามนี้ นี่คือตัวอย่างโซลูชันที่ใช้โมดูล:

function my_module_form_alter(&$form, &$form_state, $form_id) {
  global $user;
  switch ($form['type']['#value']) {
    case "my_content_type":
      if (user_access("administer nodes")) { break; }
      foreach (array_keys($form['field_my_images']) as $key) {
        if (!is_numeric($key)) { continue; }
        if ($form['field_my_images'][$key]['#default_value']['fid']) {
          if ($form['field_my_images'][$key]['#default_value']['uid'] != $user->uid) {
            $form['field_my_images'][$key]['#access'] = false;
          }
        }
      }
      break;
  }
}

ตอนนี้ฉันรู้สึกงี่เง่าที่รู้ว่าปัญหาทั้งหมดของฉันเป็นเพราะฉันกำลังเข้าถึงเช่น : :

$form['#node']->field_my_images

แทน:

$form['field_my_images']

person tyler.frankenstein    schedule 30.09.2011