【问题标题】:Drupal Filefield User Permissions GranularityDrupal Filefield 用户权限粒度
【发布时间】:2011-09-30 19:41:15
【问题描述】:

我有一个 Drupal 6 站点,其节点类型具有可选的、无限值的 Imagefield (Filefield/CCK) 设置。节点类型的内容权限设置为允许所有经过身份验证的用户能够编辑这些节点,这很棒。用户可以编辑节点并将图像附加到 Imagefield,也很棒。

但是,当用户编辑这些节点之一时,他们还可以编辑/删除其他用户上传的 Imagefield 图像。如何防止用户编辑和/或删除不是自己上传的 Imagefield 图片?

【问题讨论】:

    标签: drupal drupal-6


    【解决方案1】:

    感谢 IRC 上#drupal-support 频道中的一些人,我能够得到这个问题的答案。这是一个基于模块的示例解决方案:

    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']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2014-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多