2011-09-16 4 views
1

J'ai créé un site dans drupal 6. Tout son contenu est placé comme page Nodes. J'ai créé un utilisateur avec le rôle de rédacteur en chef et compte tenu des autorisations suivantesComment contrôler l'accès au nœud/contenu dans drupal 6.X?

contenu d'accès types de contenu Administrez noeud de adminsiter de modifier tout contenu de la page modifier propre contenu de la page

Je veux que cet utilisateur ne modifier les pages de contenu déjà créé par un autre utilisateurne pas supprimer/supprimer le contenu/noeud du site.

Comment puis-je faire cela. J'ai essayé

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

aussi essayé content_access-6.x-1.2.zip (mais pas de trouver des paramètres de ce module?). S'il vous plaît aidez-moi à résoudre ce problème.

merci d'avance.

Étape 1.

enter image description here

enter image description here

Répondre

2

ok Je ne sais pas s'il y a un module qui supporte l'ajout d'autorisations sur le noeud supprimer ou non, mais essayez ce qui suit .....

  • d'abord nous avons besoin de créer un module (ne vous inquiétez pas ist facile) qui génèrent une nouvelle permission que vous pouvez donner à n'importe quel utilisateur rôle permet d'appeler cette autorisation "node delete permission"

    1- allez à/sites/tous les modules/

    2- créer un nouveau dossier avec le nom "node_delete_permission" et créer des fichiers dans ce dossier avec les noms suivants "node_delete_permission.info" & & "node_delete_permission.module"

    3- node_delete_permission ouvert. info et ajoutez ce qui suit à l'intérieur:

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

    4- node_delete_permission.module maintenant ouvert et ajoutez le code suivant à l'intérieur

    <?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- permettent maintenant votre nouveau module de (admin/build/modules) et aller à (/ admin/utilisateur/autorisations) .. assurez-vous que vous avez une nouvelle autorisation appelé généré « nœud supprimer l'autorisation »

    si son ok ... laisse aller à l'étape suivante

    6 aller vous thème « page.tpl .php » et ajoutez le code suivant en haut du fichier

    <?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}") ; 
    } 
    ?> 
    

vous pouvez maintenant donner cette autorisation à un rôle d'utilisateur que vous voulez de (/ admin/user/autorisations)

NOTE :

1- ce ne est pas 100% de la manière, mais je pense que Drupal utile dans son cas ur

2- Je n'ai pas testé ce code afin que vous pouvez trouver une erreur de syntaxe ou quelque chose ... vous pouvez obtenir retour à moi si vous avez trouvé ce

3- J'ai un mauvais anglais je sais et je suis désolé pour cela

+0

Merci pour le module personnalisé, mais il ne fonctionne toujours pas comme le chemin! tout utilisateur sans ** administrer les nœuds ** ne peut pas afficher ou modifier les pages de contenu (nœuds). Si nous activons cette autorisation, l'utilisateur peut simplement supprimer tous les nœuds. Est-il possible de surcharger cela avec le code ci-dessus? c'est si je veux créer un utilisateur en tant qu'éditeur, je suis obligé de donner la permission susmentionnée pour voir le contenu. Je veux que cet utilisateur édite seulement pour ne supprimer aucun noeud! pls hlp. – Gopipuli

+0

oui, j'ai essayé mais ça ne donnait pas la sortie ... je suis passé pas à pas et j'ai eu une erreur de syntaxe dans la ligne n ° 4. le paranthésis droit manquait ce qui est corrigé (page.tpl.php). à partir de ../admin/content/node lorsque je vérifie la page, sélectionnez supprimer et appuyez sur mettre à jour il demande une confirmation et whooopsss son supprimer la page. pas de changement .. – Gopipuli

+0

désolé je ne vous comprends pas bien ... mais si vous voulez un groupe d'utilisateurs (rôle) pour modifier seulement les noeuds et pas en mesure de supprimer cela, vous pouvez le faire par drupal intégré dans la permission ... . juste aller à admin/utilisateur/autorisations 1- désactiver "supprimer tout contenu story" "supprimer tout contenu de la page" ... etc 2 permettent "modifier tout contenu de la page" "modifier le contenu du magasin" ... etc –

0

Activation des autorisations de contenu module livré avec CCK, devraient vous permettre de contrôler quel champ dans le type de contenu de la page peut être vue, créé, modifié ou supprimé

+0

Je veux que l'utilisateur ne supprime pas le nœud spécifique. même si j'ai activé ** node_privacy_byrole ** et marqué le rôle uniquement pour éditer! encore l'utilisateur peut simplement sélectionner supprimer dans la liste déroulante et une fois cliqué sur mettre à jour le nœud/contenu est parti? S'il vous plaît aider .... – Gopipuli