2016-07-24 3 views
0

Comment assigner un rôle spécifique à partir du noyau drupal (D7) lors de l'enregistrement automatique avec Simple FB Connect? J'utilise actuellement l'attribution de rôle automatique et j'ai un enregistrement personnalisé pour 2 rôles, l'un est un rôle de base avec des autorisations limitées et l'autre un rôle avancé avec plus d'autorisations d'édition/création. Mon problème est que le simple lien de connexion FB fonctionne très bien mais enregistre des personnes pour les mauvais rôles. Comment puis-je choisir le rôle attribué en fonction de l'URL?comment attribuer des rôles utilisateur spécifiques lors de l'enregistrement automatique - simple FB Connect - Drupal 7

Peut-être quelque chose dans template.php qui permettrait de placer l'URL suivante sur mes boutons facebook?

/user/simple-fb-connect?registration=1&role=my_custom_role 

Répondre

0

Vous pouvez utiliser l'utilisation hook_user_insert et vérifier l'URL et attribuer le rôle souhaité,

 function module_name_user_insert(&$edit, $account, $category) 
{ 
     if($_SERVER['REQUEST_URI'] =="url") 
     { 
     //add code to assign desired role; 
     //assuming rid of custom role is 1 
     $account->roles[1]='custom_role'; 
     } 
} 
+0

cela jette une erreur pour moi lors de la création d'un module personnalisé et en ajoutant à elle. J'ai mis à jour l'uri à (https://example.com) et débarrasser de «3», mais il semble jeter des erreurs sur la page d'inscription personnalisée, «Index indéfini» –

+0

Je ne sais pas pourquoi cela ne fonctionne pas, peut-être depuis le simple Le module fb doit passer à facebook et ensuite revenir sur le site, que l'URL de demande sera facebook.com et non mydomain.com ou peut-être que cela ne fonctionne que si l'utilisateur remplit les champs sur la page d'inscription ... difficile de dire. mais ouais ça ne marche pas. –

+0

S'il redirige le formulaire facebook ou toute URL tierce, l'utilisateur est également enregistré dans votre application. J'ai besoin de vérifier – Deb

0

Je vous invite à jeter un oeil sur le module de règles: https://www.drupal.org/project/rules/

Ce module vous permet pour créer des tâches automatisées basées sur des événements. Qu'est-ce que vous voulez faire est:

  • Télécharger et activer le module de règles: https://www.drupal.org/project/rules/
  • Vous devez activer les règles interface utilisateur ainsi
  • Aller à la configuration des règles: example.com/admin/config/workflow/règles
  • Créer une nouvelle règle
  • L'événement de règle devrait être quelque chose comme: « L'utilisateur enregistre un nouveau compte connecté à Facebook »
  • L'action de la règle doit être quelque chose comme: « Assign rôle à l'utilisateur »

L'interface devrait être assez simple. Voici quelques ressources supplémentaires:

Règles Manuel https://www.drupal.org/documentation/modules/rules

+0

Oui, en fait, j'ai essayé cela en premier, mais j'ai aussi besoin d'une condition à passer en règles pour définir s'il s'agit d'un utilisateur "basic" ou "editor". La seule façon de le faire est de passer une chaîne dans l'url et puisque simple fb connect me donne la possibilité de customiser des pages d'atterrissage en la passant dans la chaîne, je pensais que ça pourrait marcher mais en essayant de m'enregistrer avec fb ça m'envoie à cette page 'user/simple-fb -connect? editor = # _ = _ 'dans ma condition de règles, j'ai défini l'alias du chemin comme étant 'editor'. didnt work –

+0

Vous ne devriez pas permettre à l'utilisateur de "choisir" son rôle en le passant dans l'URL, pour des raisons de sécurité. Vous ne voulez pas que votre utilisateur entre le rôle qu'il souhaite. – mgadrat

+0

Vous devriez avoir la règle envoyer un email à un "modérateur" (admin) sur votre site chaque fois que quelqu'un s'inscrire pour lui donner le rôle d'éditeur. – mgadrat