Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

[gelöst]Rolle User zuweisen

Eingetragen von dontgotanick (156)
am 16.04.2010 - 15:42 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hi,

ich will einem USer in einem bestimmten Fall eine Rolle zuweisen wenn er sich registriert, die Rolle hat die ID 3.

Das Problem ist er speichert nicht in die db wenn ich eine eigene Insert query ausführe.

Die Methode sieht aus wie folgt ( die Email werden versandt daher funktioniert der Rest):

<?php

function cwg_registration_user($op, &$edit, &$account, $category = NULL){


switch (
$op) {

    case
'insert':

     
$array = explode("@", $account->mail);
     
$sql = " SELECT Count(*) FROM drupal_access WHERE status = 1 AND mask LIKE '%%%s' ";
     
$t = db_result(db_query($sql, $array[1]));
     
      if(
$t > '0'){
     
     
     
//$test = db_query("INSERT INTO {users_roles} (uid, rid) VALUES ('%d', 3)",$account->uid);
     
     
$account->roles = 3;
     
     
drupal_set_message(t('Saved @uid.', array('@uid' =>  $account->uid)));
     
$trans = array (
       
"%username" => $account->name
     
);
     
     
$body = db_fetch_object(db_query('SELECT confirmation_mail FROM {cwg_registration'));
     
$email = db_fetch_object(db_query('SELECT mail_addresses FROM {cwg_registration}'));
     
     
     
$message = array(
       
'to' => $email->mail_addresses,
       
'subject' => t('Admin approved your registration.'),
       
'body' => strtr($body->confirmation_mail, $trans),
       
'headers' => array('From' => 'webmaster@configuration-workgroup.com'),
      );

     
drupal_mail_send($message);
     
     
      }
       



?>

Das Problem ist ich weis nicht wie ich einem Account die Rolle zuweise.

Weis mir da wer abhilfe?

LG

dave

‹ [gelöst] Anfängerproblem: Link in einem Block erscheinen lassen Irgendeine nützliche Idee für ein Intro-Modul? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie wärs mit Auto Assign

Eingetragen von Sammelzwerg (377)
am 16.04.2010 - 21:06 Uhr

Wie wärs mit Auto Assign Role? Damit kannst Du automatisch Rollen vergeben bei der Registrierung.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oder mit Rules, damit dürfte

Eingetragen von Exterior (2903)
am 18.04.2010 - 02:33 Uhr

Oder mit Rules, damit dürfte das auch funktionieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi,

Eingetragen von dontgotanick (156)
am 18.04.2010 - 08:32 Uhr

naja das problem ist das ich die rolle nur verteilen will wenn di eemail addresse in der Acces list ist.
Daher entfalen die 2 Module da ich da sonst customizen muss, dann kann ich es gleich selbst programmieren.

Aber danke für die tipps

lg

dave

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hö? Einfach in Rules eine

Eingetragen von Exterior (2903)
am 18.04.2010 - 13:45 Uhr

Hö? Einfach in Rules eine kleine PHP-Abfrage machen, dann als Action die Rolle zuweisen, fertig, das macht man in 5 Minuten.

Wenn ich mir deinen geposteten Quelltext ansehe, dann kommst du mit Rules weitaus besser weg, schließlich musst du da nur eine kleine Abfrage machen und überprüfen, das sind 3 oder 4 Zeilen. Da sind zwischen Rules und selbst programmieren schon noch große Unterschiede, zumal das mit deinem Quelltext ja nicht so recht zu klappen scheint. Das hast du mit Rules wesentlich schneller gezaubert, wenn man bedenkt, dass du erst herausfinden musst, wo da der Wurm drin usw.

Also ich würde dir nach wie vor Rules empfehlen, "customizen" musst du vermutlich überall.

Zumal, was genau ist denn diese "Access list"? Liegt die in einer extra Tabelle in der Drupal-DB? Wenn ja, dann musst du ohnehin selbst Hand anlegen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das brauch ich aber nicht

Eingetragen von dontgotanick (156)
am 19.04.2010 - 09:14 Uhr

Das Modul das ich Schreibe soll ja nich nur diese Rolle zuweisen.

Die AccesList ist eine Lsite die jedes Drupal hat, dort kann man festlegen welche domains beim registrieren sofort activiert werden und blockiert.

Das komische ist das der Rest des Codes einwandfrei funktioniert nur das mit den Rollen nicht, warum auch immer.

Ein anderes Modul ist keine Option für mich weil ich will nicht lauter Module haben die ich sogesehen nicht brauche, das ist nur Datenmüll in der DB und unnötiger Administrationsaufwand.

Aber trotzdem danke für die Tipps.

LG

dave

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Problem

Eingetragen von dontgotanick (156)
am 19.04.2010 - 09:55 Uhr

liegt daran, dass er im SQL Befehl die Variable nicht mag.
Wenn ich einen statischen Wert wie 1234 nehme, dann wird die Query ausgeführt mit jeglicher variable nicht.

Jemand ne Idee.

lg

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielleicht soltest Du in der

Eingetragen von wla (9463)
am 19.04.2010 - 12:57 Uhr

Vielleicht soltest Du in der Query statt '%%%s' nur %s schreiben. Die äußeren Quotes sind völlig ausreichend.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi

Eingetragen von dontgotanick (156)
am 19.04.2010 - 13:04 Uhr

ne diese SQL Query tut ja was sie soll, und da es ein Like Befehl ist indem gestattet ist das nur vor dem Text noch was anderes stehen darf stimmt das genau.

Ich meinte den auskommentierten Befehl

Aber ich habe das Problem erkannt, da der User noch nicht gespeichert ist löscht drupal automatisch alle Rolleneinträge in der users_role, damit keine Probleme auftreten können, denn das Statement wurde ohne Fehler ausgeführt.

Naja egal ich mache die Rollenzuweisung beim ersten einloggen des Users da funktioniert es einwandfrei.

Aber trotzdem Danke für eure Ratschläge.

LG

dave

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Лучшие лайфхаки по нахождению выгодных авиарейсов
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
Weiter

Neue Kommentare

  • Git und rsync sind die wichtigsten Werkzeuge
    vor 1 Tag 8 Stunden
  • Arrrrg. Nix Tabelle :-D /*
    vor 4 Wochen 3 Tagen
  • Textboxen mit Tabelle
    vor 4 Wochen 3 Tagen
  • Du sollst ja auch keine
    vor 4 Wochen 3 Tagen
  • Theme
    vor 4 Wochen 3 Tagen
  • Welches Theme benutzt du
    vor 4 Wochen 4 Tagen
  • Mit Responsive Raster hatte
    vor 4 Wochen 4 Tagen
  • Hallo Alex,um das Häkchen
    vor 4 Wochen 4 Tagen
  • Modul view_unpublished
    vor 4 Wochen 6 Tagen
  • Modul "override node options"
    vor 4 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250274
Registrierte User: 20486

Neue User:

  • Robertolix
  • DavidBit
  • JeraldZeF

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 12 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association