Ergebnis 1 bis 4 von 4

Thema: FrontendUser::save()

  1. #1
    Contao-Nutzer Avatar von Tastaturberuf
    Registriert seit
    14.03.2011.
    Ort
    Berlin
    Beiträge
    197
    User beschenken
    Wunschliste

    Standard FrontendUser::save()

    Hallo Leute,

    kann mir jemand erklären wieso in der FrontendUser.php in der save-Methode die Gruppen zurückgesetzt werden?

    Ich authentifiziere meine Nutzer nutzer per Hook importUser und checkCredentials über einen MSSQL-Server (Userdatenbank unseres Hauptprogramms befindet sich dort). Klappt auch alles super. Leider werden die Gruppen immer restet wenn ich sie mit dem folgenden Code hinzufüge.

    PHP-Code:
    $objMemberGroup MemberGroupModel::findOneBy('asegoGroupUid'$objAsegoUser->BenutzerGruppenUid);

    if ( 
    $objMemberGroup !== null )
    {
        
    $arrUserGroups deserialize($objUser->groupstrue);
        
    $arrUserGroups[] = $objMemberGroup->id;
        
    // Doppelte Einträge entfernen
        
    $arrUserGroups array_unique($arrUserGroups);

        
    $objUser->groups serialize($arrUserGroups);
        
    $objUser->save();

    Wenn ich die FrondendUser.php wie folgt änder klappt alles:

    PHP-Code:
    public function save()
    {
        
    #$groups = $this->groups;
        #$this->arrData['groups'] = $this->arrGroups;
        
    parent::save();
        
    #$this->groups = $groups;

    Aber wieso werden die Gruppen überhaupt resetet und wie kann ich das Problem Updatesicher lösen?

  2. #2
    Contao-Nutzer Avatar von Tastaturberuf
    Registriert seit
    14.03.2011.
    Ort
    Berlin
    Beiträge
    197
    User beschenken
    Wunschliste

    Standard

    Ich habe es jetzt erstmal im postLogin-Hook so gelöst:

    PHP-Code:
    $objUser->Database
                            
    ->prepare("UPDATE tl_member SET groups=? WHERE id=?")
                            ->
    execute(serialize($arrUserGroups), $objUser->id); 
    Trotzdem erklärt es nicht wieso man im FrondendUser mit save() keine Gruppen überschreiben kann.

  3. #3
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Weil du auf dem MemberModel (= Datenbank) arbeitest. Der FrontendUser ist aber bereits geladen und bleibt wie er ist. Den müsstest du refreshen.
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  4. #4
    Contao-Nutzer Avatar von Tastaturberuf
    Registriert seit
    14.03.2011.
    Ort
    Berlin
    Beiträge
    197
    User beschenken
    Wunschliste

    Standard

    Ich hab es ja über den anderen Hook gelöst, die Frage bleibt wieso in diesem Model die save-Methode überschrieben wurde, damit Gruppen nicht geändert werden können wenn dieser User geladen ist. Die Gruppen können niemals mit der save-Methode geändert werden. Man kann allerdings detachen, query drüber bügeln und erneut laden.

    Gesendet von einer ollen Touchscreen-Tastatur. Fehler sind bedingt durch meine dicken Finger.
    Tastaturberuf | Code with ♥ and Contao.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •