Ergebnis 1 bis 16 von 16

Thema: Projektplanung: Mitglieder dynamisch

  1. #1
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard Projektplanung: Mitglieder dynamisch

    Hi,

    ich plan grad ein Modul indem Mitglieder dynamisch über eine CSV-Datein eingepflegt werden sollen.

    Das mach ich über das Member-Model, meine Frage ist jetzt, ob ich dem Mitglied beim Erstellen über die
    API auch gleich ein Contao-gültiges Kennwort erstellen kann. Das muss ja irgendwie verschlüssel sein...

    PHP-Code:
    $tmpPass="12345KekseFuerAlle";
    $myModel->password= ??
    $myModel->password_config= ?? 
    Gibt´s da auch was in der API?

    Danke und VG
    Michel

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.947

    Standard

    In ModulePassword.php wird das in der Methode setNewPassword() so gemacht:

    PHP-Code:
    $objMember->password $objWidget->value
    In Deinem Fall also

    PHP-Code:
    $objMember->password $tmpPass
    Das sieht für mich so aus, als ob das Verschlüsseln dann transparent gemacht würde -- wo und von wem kann ich Dir im Moment nicht sagen.

    Probiere es doch einfach mal aus und schau dann nach, was in der Datenbank steht.

  3. #3
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    Ah ok, dann probier ich das mal aus und dann seh ich weiter.

    VG und Danke.

  4. #4
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    $strVerschluesseltesPasswort =  \Encryption::hash('Passwort_was_verschlüsselt_werden_soll'); 
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  5. #5
    Gesperrt
    Registriert seit
    19.10.2011.
    Ort
    Stuttgart
    Beiträge
    90

    Standard

    Zitat Zitat von the_scrat Beitrag anzeigen
    PHP-Code:
    $strVerschluesseltesPasswort =  \Encryption::hash('Passwort_was_verschlüsselt_werden_soll'); 
    Macht er das Verschlüsseln nicht automatisch über die Funktion wie von fiedsch beschrieben?

  6. #6
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Probiers halt aus ;-)

    Ich meine nein, weil ja nirgends mitgeteilt wird, dass es sich um ein Passwort handelt. $objWidget->value kann ja auch nur ein Text sein etc.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  7. #7
    Gesperrt
    Registriert seit
    19.10.2011.
    Ort
    Stuttgart
    Beiträge
    90

    Standard

    Zitat Zitat von the_scrat Beitrag anzeigen
    Probiers halt aus ;-)

    Ich meine nein, weil ja nirgends mitgeteilt wird, dass es sich um ein Passwort handelt. $objWidget->value kann ja auch nur ein Text sein etc.
    wird nichts anderes übrig bleiben, wenn fast gar nichts dokumentiert ist ...

  8. #8
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Der Quellcode ist die beste Dokumentation ;-) Und so schwer ist es jetzt nicht mal das Modul Registrierung zu finden und nachzuvollziehen was da passiert. Ich hab einfach nur nach "$this->password" gesucht, notfalls würde sogar " 'password' " reichen, denn irgendwo muss das Feld ja auch verarbeitet werden.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  9. #9
    Gesperrt
    Registriert seit
    19.10.2011.
    Ort
    Stuttgart
    Beiträge
    90

    Standard

    stimmt.
    aber bei jedem anderen CMS gibts schöne Dokumentationen, wie was funktioniert (/funktionieren sollte), außer bei Contao.
    ... heißt es halt Quelltext lesen und selbst aufschreiben.

  10. #10
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Das ist richtig.

    Daher gibt es nur 3 Möglichkeiten:

    1. Geh zu dem CMS mit der tollen Dokumentation
    2. Hilf mit die Contao Dokumentation zu verbessern
    3. Scheiss auf die Dokumentation und find dich im Quelltext zurecht.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  11. #11
    Gesperrt
    Registriert seit
    19.10.2011.
    Ort
    Stuttgart
    Beiträge
    90

    Standard

    Zitat Zitat von the_scrat Beitrag anzeigen
    Das ist richtig.

    Daher gibt es nur 3 Möglichkeiten:

    1. Geh zu dem CMS mit der tollen Dokumentation
    nein, weil Wordpress doof ist
    Zitat Zitat von the_scrat Beitrag anzeigen
    2. Hilf mit die Contao Dokumentation zu verbessern
    Ja, wie und wo darf ich mich hier melden? Beim letzten Versuch hier diesbezüglich mit Leo in Verbindung zu treten wurde ich etwas barsch darüber informiert, dass es dies bereits gibt. (damals noch zu Version 2.11.x)
    Zitat Zitat von the_scrat Beitrag anzeigen
    3. Scheiss auf die Dokumentation und find dich im Quelltext zurecht.
    läuft wohl oder übel hierauf raus.

  12. #12
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    https://docs.contao.org

    Hier kann jeder mitarbeiten.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  13. #13
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.947

    Standard

    Zitat Zitat von MarcusC Beitrag anzeigen
    ... heißt es halt Quelltext lesen und selbst aufschreiben.
    nicht ganz!

    Selbst aufschreiben und bei der Contao Doku mitarbeiten ;-)

    https://docs.contao.org/en/ -> Developer Documentation
    oder https://github.com/contao/docs

  14. #14
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.947

    Standard

    Zitat Zitat von the_scrat Beitrag anzeigen
    Ich meine nein, weil ja nirgends mitgeteilt wird, dass es sich um ein Passwort handelt. $objWidget->value kann ja auch nur ein Text sein etc.
    Edit: folgendes ist FALSCH (s.u. in #16)

    Für mich sieht es so aus, also ob in diesem Moment auch plain Text in die DB geschrieben wird und später beim ersten Login das gehashte Password abgelegt wird.

    core/library/Contao/User.php:

    PHP-Code:
                    if (\Encryption::test($this->password))
            {
                
    $blnAuthenticated = (crypt(\Input::postUnsafeRaw('password'), $this->password) === $this->password);
            }
            else
            {
                list(
    $strPassword$strSalt) = explode(':'$this->password);
                
    $blnAuthenticated = ($strSalt == '') ? ($strPassword === sha1(\Input::postUnsafeRaw('password'))) : ($strPassword === sha1($strSalt . \Input::postUnsafeRaw('password')));

                
    // Store a SHA-512 encrpyted version of the password
                
    if ($blnAuthenticated)
                {
                    
    $this->password = \Encryption::hash(\Input::postUnsafeRaw('password'));
                }
            } 
    Zitat Zitat von the_scrat Beitrag anzeigen
    Probiers halt aus ;-)
    genau. Habe hier aber noch nicht gemacht.
    Geändert von fiedsch (20.08.2015 um 17:44 Uhr)

  15. #15
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Öhm, der Codeblock hat aber nichts mit deinem $objWidget zu tun. Außerdem wäre es von Contao äußerst dumm das Passwort erst im Plaintext abzulegen um es später zu verschlüsseln.
    Zudem wird auch nirgends das Passwort ausgelesen, sondern nur per POST abgefangen.

    Wie gesagt, ich glaube nicht, dass das $objWidget reicht um damit das Passwort zu verschlüsseln, das müsste man probieren. Was ich aber mit sicherheit weiß, dass es mit \Encryption::hash() geht,da ich das selbst schon verwendet habe.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  16. #16
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.947

    Standard

    Mit Deiner Anmerkung hast Du natürlich recht. Meine Annahme war falsch und damit konnte der Schluss nicht richtig sein :-(

    Die Verschlüsselung geschieht im Widget (core/widgets/Password.php) in validate() über den validator() der return \Encryption::hash($varInput); macht

    Und in ModulePassword steht u.A. $objWidget->validate(); und danach $objMember->password = $objWidget->value;

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
  •