CSV, md5 und FEUser-Import

Gesperrt
MakD42
Beiträge: 103
Registriert: Sa 8. Nov 2003, 19:01
Wohnort: Marburg
Kontaktdaten:

CSV, md5 und FEUser-Import

Beitrag von MakD42 » Mo 14. Apr 2008, 11:49

Hallo nochmal,

ich hänge immer noch an dem UserImport (~870) für das Frontend. Ich habe mich für die Version mit Standard-Passwort entschieden und das Modul zum Passwort ändern im geschützten Bereich eingebaut. Dazu auch noch das Modul, mit welchem die User Ihre Daten (Anschrift, PLZ, Wohnort usw.) ändern bzw. aktualisieren können.

Habe eine XLS-Liste mit Usernamen und dem md5 Hex für das Passwort. Diese habe ich in eine CSV Datei umgewandelt:
Name: liste.csv

username;passwort;active (ist „active“ überhaupt notwendig)
Benutzer0001;ae2b1fca515949e5d54fb22b8ed95575;(1)

Gibt es vielleicht doch ein Modul, mit welchem ich diese CSV Datei importieren kann?
Vielleicht aber auch ein mysql Befehl, mit welchem ich die Liste in die con_frontenduser importieren kann? (ist das ausreichend oder müssen die Daten in eine weiter Tabelle importiert werden? z.B. con_properties? )

Habe dieses „Modul“ mit folgender Anweisung gefunden:

Speichere die Liste als CSV und mach dir ein Modul, das in etwa so aussieht:

Code: Alles auswählen

<?php 
$oFrontendUserCollection = new FrontendUserCollection(); 
$handle = fopen ("somewhere/liste.csv","r"); 
while ( ($data = fgetcsv ($handle, 1000, ";")) !== false ) { 
   if (!$oFrontendUserCollection->userExists($data[0])) { // $data[0] ist der username 
       $oFrontendUser = $oFrontendUserCollection->create($data[0]); 
       $oFrontendUser->set('password', $data[1]); // $data[1] ist das passwort 
       $oFrontendUser->set('active', 1); 
       $bReturn = $oFrontendUser->store(); 
   } 
} 
fclose ($handle); 
?> 
Wenn das Modul klappen soll - muß ich noch:
  • 1.Pfadangaben zur CSV Datei angeben (inkl. Namen)
    2.in der CSV Datei oder im Modul die Bezeichnung anpassen (data[0]/data[1])
    3.die „active“ in der CSV löschen
Wohin kommt das Modul? Ich nehme an „Ausgabe“ und dann einfach die Seite öffnen und – wenn erfolgreich – CSV und Modul/Seite wieder löschen.

Habe im Forum alle Beiträge gelesen (glaube ich). Einige enden mit dem Satz... „das probier ich mal aus“ ! .... oder “hoffentlich wird das nicht zu wild“.

Ich schreibe auch sofort nach dem erfolgreichen Import eine detaillierte Anleitung für alle zukünftigen FEUser-Importeure.

Freue mich auf die Analyse meiner Annahen! :shock:
MakD 42
______________________
Contenido 4.6.8 & 4.8.15
MySQL 5.1.54
Linux/Apache
Meine Contenidoprojekte: art & weise | StadtMedia | aidea

MakD42
Beiträge: 103
Registriert: Sa 8. Nov 2003, 19:01
Wohnort: Marburg
Kontaktdaten:

Hier die versprochene Anleitung!

Beitrag von MakD42 » Mo 14. Apr 2008, 19:44

Import von vielen Frontendusern (bis 1000)
  • 1.CSV Datei erstellen und hochladen
    2.Modul erstellen
    3.Template mit Modul erstellen
    4.Seite erstellen und Template einbauen
    5.Seite aufrufen ...und etwas warten
    6.Template und CSV Datei löschen
FERTIG

zu 1. CSV Datei erstellen und hochladen
Die CSV Datei muss „ username “ + „ ; “ + „ password “ enthalten.
Bitte keine Bezeichnungen voranstellen, sonst gibt es ein Login mit UN: „username“ und PW: „password“ (das wäre zu einfach) Datei an einen Platz im WCMS-System hoch laden.

Zu 2. Modul „Import“ erstellen
Folgendes Skript in der Ausgabe eines neuen Moduls platzieren:

Code: Alles auswählen

<?php 
$oFrontendUserCollection = new FrontendUserCollection(); 
$handle = fopen ("somewhere/liste.csv","r"); // bitte eigene Pfadangaben/Dateinamen verwenden
while ( ($data = fgetcsv ($handle, 1000, ";")) !== false ) { 
   if (!$oFrontendUserCollection->userExists($data[0])) { // $data[0] ist der username 
       $oFrontendUser = $oFrontendUserCollection->create($data[0]); 
       $oFrontendUser->set('password', $data[1]); // $data[1] ist das passwort 
       $oFrontendUser->set('active', 1); 
       $bReturn = $oFrontendUser->store(); 
   } 
} 
fclose ($handle); 
?> 
(Das Modul kommt von „rbi“ - danke an dieser Stelle dafür)

zu 3. Template mit Modul erstelle
n
Erstellt ein Template mit dem Modul „Import“ und speichern nicht vergessen.

Zu 4. Seite erstellen und Template einbauen
Erstellt eine neue Seite auf der Basis des erzeugten Templates mit dem Import-Modul.
(BITTE sofort nach gebrauch wieder entfernen – habe die Seite 2x aufgerufen und konnte noch einmal von vorne anfangen)

zu 5. Seite aufrufen ...und etwas warten
Dann die Seite mit dem Modul aufrufenund - je nach Anzahl der zu importierenden User – etwas warten. Bei dem Import wird der „Klartext“ des Passwortes als md5 HEX abgespeichert.
Wenn Ihr vorher schon eine Standartgruppe für die Frontenduser angelegt habt, sind nun alle User in dieser Gruppe mit allen festgelegten Rechten enthalten.

Zu 6. Template und CSV Datei löschen
Jetzt nur noch das Template löschen und die CSV Datei vernichten – und die User sind fettich!

Habe noch das Erweiterungsmodul für weitere Daten (Anschrift, PLZ, Wohnort usw.) eingebaut und das Modul zum ändern des Passwortes.

Läuft alles gut und keine Fehlermeldungen!

Noch einmal Danke an alle die vielen Forumsbeiträge mit Hinweisen, Tipps und Code-Schnippsel dies möglich gemacht haben (und an Contenido)

Jetzt ergebe ich mich meiner Grippe :oops: und nehme einen Grog :wink: und dann ab ins Bett.
MakD 42
______________________
Contenido 4.6.8 & 4.8.15
MySQL 5.1.54
Linux/Apache
Meine Contenidoprojekte: art & weise | StadtMedia | aidea

matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

Re: CSV-Import auch für Backend-User?

Beitrag von matt.loker » Fr 26. Mär 2010, 16:27

Hallo und Entschuldigung, dass ich diesen Beitrag aus der Versenkung hole aber ich würden gern wissen ob man diesen CSV-Import auch für Backen-User sprich für Redaktuere einsetzen kann. Wenn man viele Redaktuere hat und diese schnelle über einen Import anlegen könnte und dann nur noch die Rechte verteilen oder Gruppenzuteilung dann könnte man sich viel Arbeit sparen als Admin.

Vielen Dank für mögliche Antworten!

Grüße
matt

Gesperrt