2016-07-24 20 views
0

Wie kann ich eine bestimmte Rolle von Drupal Core (D7) bei der automatischen Registrierung mit Simple FB Connect zuweisen? Ich verwende derzeit die automatische Rollenzuweisung und habe eine benutzerdefinierte Registrierung für 2 Rollen. Eine ist eine Basisrolle mit eingeschränkten Berechtigungen und die andere eine erweiterte Rolle mit mehr Bearbeitungs-/Erstellungsberechtigungen. Mein Problem ist, dass die einfache FB-Verbindung funktioniert, aber Leute für die falschen Rollen registriert. Wie kann ich die Rolle auswählen, die basierend auf der URL zugewiesen wird?wie bestimmte Benutzerrollen bei der automatischen Registrierung zugewiesen werden - einfach FB Connect - Drupal 7

Vielleicht etwas in template.php, dass die folgende URL auf meine Facebook-Buttons platziert werden könnte?

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

Antwort

0

Sie verwenden können hook_user_insert und prüfen, ob die URL verwenden und gewünschte Rolle zuweisen,

 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

dies einen Fehler für mich wirft, wenn ein benutzerdefiniertes Modul und das Hinzufügen dieser, um es zu schaffen. Ich aktualisierte das uri zu (https://example.com) und lösche zu "3" aber es scheint, Fehler auf der kundenspezifischen Registrierungsseite zu werfen, -'Undefinierter Index ' –

+0

Ich bin nicht sicher, warum dieses nicht funktioniert, vielleicht seit dem einfachen fb modul muss auf facebook und dann zurück auf die seite übergehen, dass die anfrage-url facebook.com und nicht mydomain.com sein wird oder vielleicht das nur funktioniert, wenn der benutzer die felder auf der anmelde-seite ausfüllt ... schwer zu sagen. aber ja, es funktioniert nicht. –

+0

Wenn es von Facebook oder einer Drittanbieter-URL umgeleitet wird, wird auch Benutzer in Ihrer Anwendung registriert. Müssen Sie überprüfen, – Deb

0

ich Sie ermutigen, an den Regeln Modul einen Blick zu nehmen: https://www.drupal.org/project/rules/

Dieses Modul ermöglicht es Ihnen, um automatisierte Aufgaben basierend auf Ereignissen zu erstellen. Was Sie tun möchten, ist:

  • herunterladen und aktivieren Regeln Modul: https://www.drupal.org/project/rules/
  • Sie brauchen Regeln UI auch
  • Zum Regeln Konfiguration aktivieren: example.com/admin/config/workflow/Regeln
  • eine neue Regel anlegen
  • Die Regel Ereignis sollte etwas sein wie: „Benutzer ein neues Konto mit Facebook registriert“
  • Die Regelaktion sollte so etwas wie: „Rolle zu Benutzer“

Schnittstelle sollte ziemlich geradlinig sein. Hier einige zusätzliche Informationen:

Regeln Handbuch https://www.drupal.org/documentation/modules/rules

+0

Ja, tatsächlich habe ich das zuerst versucht, aber ich brauche auch eine Bedingung in Regeln übergeben werden, um zu definieren, ob es ein "Basic" oder "Editor" Benutzer anmelden. Die einzige Möglichkeit, wie ich es tun kann, ist zu bestehen eine string in der url und da simple fb connect mir die möglichkeit gibt, benutzerdefinierte landing pages zu erstellen, indem ich sie in die string übergebe, dachte ich, das könnte funktionieren, aber bei dem Versuch, mich mit fb zu registrieren, schickt mich zurück auf diese seite 'user/simple-fb -connect? editor = # _ = _ 'In meinen Regeln setze ich den Pfad-Alias ​​auf 'editor'. didnt work –

+0

Sie sollten nicht zulassen, dass der Benutzer seine/ihre Rolle auswählt, indem er sie aus Sicherheitsgründen in die URL übergibt. Sie möchten nicht, dass Ihr Benutzer die gewünschte Rolle eingibt. – mgadrat

+0

Sie sollten Regel senden eine E-Mail an einen "Moderator" (Admin) auf Ihrer Website jedes Mal, wenn jemand sich registrieren, um ihm/ihr die Rolle des Redakteurs zu geben. – mgadrat