如何在drupal 6.X中控制节点/内容访问?

时间:2011-09-16 05:49:16

标签: drupal drupal-6 drupal-modules

我在drupal 6中创建了一个站点。它的所有内容都作为页面节点放置。我创建了一个具有编辑角色的用户并获得了以下权限

访问内容 管理内容类型 adminsiter节点 编辑任何页面内容 编辑自己的页面内容

我希望此用户仅编辑内容页面已经由其他用户创建 不想删除/删除内容/节点

我该怎么做?我试过了

nodeaccess-6.x-1.3.zip node_privacy_byrole-6.x-1.6.zip

还尝试了content_access-6.x-1.2.zip(但找不到该模块的任何设置?)。请帮我解决这个问题。

提前感谢。

步骤1。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

好吧我不知道是否有支持在节点删除时添加权限的模块,但请尝试以下内容.....

  • 首先我们需要创建一个模块(不用担心,很容易)生成一个新的权限,你可以给任何用户角色让我们调用这个权限“node delete permission”

    1-转到/ sites / all / modules

    2-创建一个名为“node_delete_permission”的新文件夹,并在此文件夹中创建文件 使用以下名称“node_delete_permission.info”&& “node_delete_permission.module”

    3- open node_delete_permission.info并在其中添加以下内容:

    name = node delete permission
    description = node delete permission
    core = 6.x
    

    4-现在打开node_delete_permission.module并在其中添加以下代码

    <?php
    
    /**
    * Implementation of hook_perm()
    */
    function node_delete_permission_perm() {
      return array("node delete permission") ; 
    } 
    /**
    * Implementation of hook_form_alter
    */
    function node_delete_permission_form_alter($form, $form_state, $form_id) {
         if($form_id == 'node_admin_content') {
           if (!user_access('node delete permission')) {            
              unset($form['admin']['options']['operation']['#options']['delete']); 
           }
         }      
    }
    

    5-现在从(admin / build / modules)启用你的新模块并转到(/ admin / user / permissions)..确保你有一个新的权限生成称为“节点删除权限”

    如果可以......让我们进入下一步

    6-转到主题“page.tpl.php”并在此文件的顶部添加以下代码

    <?php
    $arg1 = arg(1) ; 
    $node_path = url( 'node/'.$arg1 , array('absolute' => TRUE)) ;
    if(arg(0) == 'node' && arg(2) == 'delete' && !user_access('node delete permission')){
    drupal_set_message('<div class="message error" > You don\'t have the permission 
       to delete node </div>') ;  
    header("Location: {$node_path}") ; 
    }
    ?>
    

现在您可以将此权限授予您想要的任何用户角色(/ admin / user / permissions)

注意:

1-它不是100%的drupal方式,但我认为它在你的情况下有用

2-我没有测试这段代码,所以你可能会发现语法错误或某些东西......如果你发现这个,你可以回复我

3-我知道一个糟糕的英语,我很抱歉这个

答案 1 :(得分:0)

启用CCK附带的内容权限模块,可以让您控制可以查看,创建,编辑或删除页面内容类型中的哪个字段