Benutzer-Tabelle per Programm pflegen

  • Hallo zusammen,

    ich möchte die Benutzer-Tabelle für ein Projekt lokal per Programm pflegen.

    Es müssen ca 200 Benutzer angelegt und auch gepflegt werden.

    Basis ist eine Excel-Tabelle, die alle Daten enthält.


    Die MySQL-Tabelle 'sb40h_users' zu lesen und zu schreiben ist kein Problem.

    Das Password ist allerdings verschlüsselt in der Tabelle.


    Wie/womit kann ich die Passwörter verschlüsseln?


    Würde mich freuen, wenn mir jemand helfen kann


    Danke

    Harro

  • Das Password ist allerdings verschlüsselt in der Tabelle.

    Versteh nicht ganz. Was ist denn der Ursprung der Passwörter? Wer hat die "verschlüsselt"?


    Wenn du dich mit Joomla-API auskennst, schreib dir ein Skript, dass die Daten per CSV einliest und dann per $user->save; OHNE Passwort speichert, aber mit Passwortrücksetzung. Der User bekommt eine Email mit automatischem vorläufigem Passwort, muss aber bei Erstanmeldung ein neues vergeben.


    Muss ich mal schauen, ob ich da mein Skript noch finde.


    200 User seh ich nicht als so dramatisch, als dass man das nicht auch händisch machen könnte. Also als Super-User via Backend die User anlegen, ohne ein Passwort eingeben, aber Option Passwortrücksetzung. Der User bekommt eine Email mit automatischem...

  • Versteh nicht ganz. Was ist denn der Ursprung der Passwörter? Wer hat die "verschlüsselt"?

    Vor allem, wenn sie verschlüsselt sind kannst du sie überhaupt entschlüsseln? Ich denke mal du hast nämlich keine verschlüsselten Passwörter sondern eher Hashs und aus denen kannst du ganz gezielt nix raus ziehen (das ist ja der Sinn) und ohne original Klartextpasswort kannst du dann auch nicht in einen Joomla Hash bringen.

  • Das Skript.

    Basis ist eine TAB-getrennte csv-Datei (user.csv) OHNE Überschriften mit Name, Username, Email.

    Code
    Peter Muster    MusteRP    musterP@example.de
    Rita Mann    MannRita    mann@example.de

    Das Skript muss im Backend von einem dort angemeldeten Super User ausgeführt werden. Bei Seiten im Aufbau, könnte man also z.B. in die index.php des ISIS-Templates. Und die csv-Datei liegt im /isis/-Ordner


    Globale Email funktionalität muss aktiv sein und auch senden. Wenn du erst testen willst, natürlich derweil deaktivieren, damit nicht Emails versendet werden.



    Ich bleib allerdings bei, falls du keinen Plan hast, "wovon ich rede"

    200 User seh ich nicht als so dramatisch, als dass man das nicht auch händisch machen könnte.

  • Hi,

    danke für die Info, Erklärung und den wirklich guten Vorschlag.


    200 und mehr User von Hand anlegen und pflegen kommt für mich nicht in Frage.


    Die PW sind natürlich nicht verschlüsselt, ich dachte das aufgrund meines mangelnden Wissens.


    Die User ohne Password anlegen, mit Password-Rücksetzung und der Mail, scheint mir ein guter ( der richtige ) Ansatz.


    Würde dennoch gerne noch mal auf meinen Lösungsansatz zurück kommen. ( aus Neugierde )

    Ich bekomme von meinem Kunden eine Excel-Liste mit den Usern und vorgegebenem Passwort im Klartext.

    Ich wollte nun über ein Script die Excel-Liste lesen und die Benutzer pflegen

    - anlegen neue User

    - User-Daten ändern (auch das PW ändern)

    - löschen ausgeschiedener User


    Hierzu möchte ich für die vorgegebenen Klartext-Passwords den HASH-Wert erzeugen.


    Hab jetzt auch den HASH erzeugt.

    Allerdings ist der Wert bei gleichem Klartext-PW bei jedem erzeugen anders, durch das "random salt".


    Unbeeindruckt davon hab ich folgendes gemacht:

    Ich habe jetzt mal einen User mit einem separaten Programm eingefügt und auch die "xxx_user_usergroup_map".

    Kann mich jetzt problemlos mit dem User einloggen.


    Was ich nun nicht verstehe, wie es sich mit dem "salt" verhält.

    Warum funktioniert das Anmelden, wenn bei jedem erzeugen des Hash ein anderer Wert in der User-Tabelle steht?


    Vielen Dank

    Gruß Harro

  • Hab noch eine Frage.

    Kann man den Namen/Überschrift von einem Thread ändern?


    Hier: "Benutzer-Tabelle per Programm pflegen (Passwort verschlüsseln)"

    In diesem Fall ist "Passwort verschlüsseln" verkehrt.


    Danke

    Harro

  • Danke Indigo66

    wenn ich mit dieser Option arbeite, kann ich dann die Komplexität des PW einstellen?

    Der End-Benutzer sollte nicht "1234" eingeben können.


    Gruß Harro


    In dem unter #2 genannten Link steht wo man es in Joomla machen kann, wie man es durch weitere Plugins unterstützen kann und der wichtige Einwand, dass die Komplexität nicht das einzige entscheidene ist sondern auch die Einzigartigkeit. Der Thread ist echt gut (auch wenn der Titel erstmal sehr kritisch ist) sind die detailreichen Ausführungen darin sehr gut!


    EDIT:

    Post #17 ist es übrigens im anderen Thread.

  • In dem unter #2 genannten Link steht wo man es in Joomla machen kann, wie man es durch weitere Plugins unterstützen kann und der wichtige Einwand, dass die Komplexität nicht das einzige entscheidene ist sondern auch die Einzigartigkeit. Der Thread ist echt gut (auch wenn der Titel erstmal sehr kritisch ist) sind die detailreichen Ausführungen darin sehr gut!


    EDIT:

    Post #17 ist es übrigens im anderen Thread.

    Hallo Johannes,

    danke hab's gefunden.

    Damit ist man gut bedient.


    Das passiert, wenn man zu flüchtig und schnell liest .... search

  • Hab jetzt nicht alles gelesen.


    Passwortrücksetzung fordert vom User ein Passwort wie du es unter Passwortoptionen in den Benutzer-Optionen einstellst.


    Wenn du Passwörter im Klartext hast, kannst du mein Skript ändern und natürlich verschlüsselt Joomla die Passwörter dann auch gleich ohne weiteres Zutun von dir:


    Also CSV-Datei:

    Code
    Peter Muster    MusteRP    pw8956    musterP@xyz.de
    Rita Mann    MannRita    89756pw    mann@xyz.de

    Änderungen am obigen Skript:

    Zeile 13 bis 18

    Code
            list(
                    $data['name'],
                    $data['username'],
                    $data['password'],
                    $data['email']
            ) = explode("\t", $line);

    Zeilen 20 bis 22

    Code
            $data['password2'] = $data['password'];
            
            // $data['password2'] = $data['password'] = '';

    Und "requireReset" halt dann wie von dir gewünscht.


    In der Zeit, die hier im Thread schon aufgewendet wurde, wären die User schon längst händisch angelegt ;) Gibt ja schließlich den "Speichern und Neu"-Button beim Anlegen von Usern und der Rest ist Copy/Paste. STRG+C, STRG+V.

  • In der Zeit, die hier im Thread schon aufgewendet wurde, wären die User schon längst händisch angelegt ;) Gibt ja schließlich den "Speichern und Neu"-Button beim Anlegen von Usern und der Rest ist Copy/Paste. STRG+C, STRG+V.

    Hi,

    hab um schnell fertig zu werden, die ersten 36 Benutzer von Hand angelegt.

    Ich finde für solche Arbeiten Copy&Paste schon ätzend. Da bastel ich mir lieber ein Programm.


    Es geht hier nicht nur um das Anlegen von Usern, sondern um permanente Benutzer-Pflege.

    Und die will ich wirklich nicht von Hand machen.


    Ich bekomme eine normierte Excel-Liste von den Kunden meines Kunden mit AktionsCode für:

    - neue Benutzer

    - Änderungen Benutzer (zB EMail-Adresse)

    - Löschen ausgeschiedener Benutzer


    Ich prüfe per Programm:

    - Ist die Excel-Liste formal korrekt (Spaltenüberschriften)

    - Benutzer noch nicht vorhanden, bei Neuanlage

    - Benutzer vorhanden, bei Änderungen und Löschen

    - Email-Adresse formal korrekt

    - die Feldinhalte werden 1:1 geladen ( die Verantwortung für die Inhalte trägt der Kunde )


    Die geprüfte Liste wird durch mein Programm abgearbeitet.

    Auslösen tut das ein Mitarbeiter bei meinem Kunden.


    Klar war das erst Mal aufwendig.

    Aber ich muß ja auch erst mal kennen lernen, was geht und was nicht.

    Gestern wußte ich noch nicht wie man HASH-Werte in diesem Zusammenhang erzeugt und nun geht schon alles.

    Finde ich nicht so schlecht.


    Ob ich nun das PW anlege oder nicht kann mein Kunde entscheiden. ( Ich kann jetzt ja beides :) )


    Gruß Harro

  • Muß noch mal nachkarten ... zum Thema Anlegen von Datensätzen mit Copy&Paste.


    Beim manuellen Anlegen der Benutzer mit Copy&Paste habe ich mich 4 Mal ver"pastet".

    Man sieht ja nicht was man in ein Password hineinkopiert, es muß ja nur 2 Mal das Gleiche sein.

    Hab ich gemerkt, weil ich alle Benutzer-Logins getestet habe.

    Wäre ja ärgerlich und schafft kein Vertrauen, wenn ein neuer Benutzer sich nicht anmelden kann.


    Das ist auch ein Grund warum ich Copy&Paste in den meisten Fällen nicht mache.

    Wenn ich die Arbeit mit einem Script oder Programm erledige, ist das Ergebnis vorhersehbar, korrigierbar und vor allem wiederholbar.

    Außerdem trainiert das die Techniken solcher Tätigkeiten und mir macht es auch noch Spaß.


    Gerade erfahre ich, daß ich knapp 1.000 Benutzer anlegen und pflegen muß.

    Spätestens jetzt ist ein Programm für mich unverzichtbar.


    Aber natürlich jeder wie er mag.


    Gruß Harro

  • Mir gings ja nur ums Abwägen. Man weiß ja nicht, wer fragt. So Schnipsel von Anderen setzt man ja nicht einfach ein, sondern muss sie testen und ggf. individuell umschnitzen, gerade wenn Excel im Spiel ist. Ich habe damals x00 neuen Joomla-Usern Anmelde-Emails aus einem gesperrten Test-Joomla zugeschickt und die Konfusion, Ärger und Paranoia erst mal groß. Auch das Testen will getestet sein ;)


    Und exakt! Nur weil Passwortrücksetzung aktiviert war und das alte CMS sowieso von mir bereits verschrottet war, war der Ärger darüber, dass so ein Entwicklerdepp die alten/neuen Kennwörter kannte, schnell verflogen.