2010-07-31 6 views
1

J'essaye de modifier le module devel generate pour l'empêcher de générer du contenu par les utilisateurs qui n'ont pas l'autorisation de générer ce type de contenu.Modifier le module devel

Problème est que je suis assez nouveau à drupal donc je ne suis pas familier avec ses crochets. Quelqu'un peut-il me donner quelques conseils sur la façon d'aborder cela.

http://ftp.drupal.org/files/projects/devel-6.x-1.20.tar.gz

Répondre

1

Je pense qu'il ya un certain décalage entre ce que vous essayez de faire et comment Devel générer des œuvres. L'utilisation de Devel génère nécessite l'autorisation administer nodes: cela signifie que toute personne pouvant utiliser Devel generate peut déjà administrer tous les types de contenu.

Si vous essayez de faire fonctionner Devel sans l'autorisation administer nodes, ne le faites pas. C'est un module de développement pour créer des données fictives: il ne doit jamais être exécuté en tant qu'utilisateur non privilégié.

Qu'est-ce que vous essayez d'accomplir?

+1

Devel génère du contenu et attache un auteur à cela. Au hasard. Souvent, il va attacher des auteurs qui, selon les autorisations, ne créent pas du tout un tel contenu. Devel devrait reconnaître les permissions et attacher seulement les auteurs au contenu généré qui peut réellement créer un tel contenu. – berkes

+0

le commentaire de @berkes a bien compris. C'était mon point. – cyclo

+0

C'est un module de développement: il n'est pas destiné à être utilisé sur des sites où les autorisations sont importantes, comme un site de production. –

2

Voir

function devel_generate_content_add_node(&$results) { 

Il y a un $users = $results['users']; qui contient les "mauvais utilisateurs". Vous pouvez pirater les utilisateurs là-bas, ou assurez-vous qu'ils ne sont pas ajoutés en premier lieu.

qui se passe dans

function devel_get_users() { 
    $users = array(); 
    $result = db_query_range("SELECT uid FROM {users}", 0, 50); 
    while($user = db_fetch_object($result)){ 
    $users[] = $user->uid; 
    } 
    return $users; 
} 

Vous devez modifier cette méthode pour faire revenir les utilisateurs seulement cinque certaines autorisations. Vous pouvez omettre les utilisateurs incorrects dans la boucle while; en utilisant node access.

Cependant, cette routine devel_get_users est également appelée pour d'autres choses, donc vous voudrez probablement réaliser tout ceci dans une nouvelle méthode devel_get_permissioned_users($perm) ou en introduisant un argument optionnel.

Questions connexes