Benutzerspezifische Werkzeuge
Sie sind hier: Startseite / Zope / Plone / Programmierung / Python Code / Benutzer, Gruppen, Rollen und Berechtigungen / Skript zum importieren von Benutzern in Plone

Skript zum importieren von Benutzern in Plone

abgelegt unter: , ,
Gerade beim anlegen vieler Benutzer, bringt ein Skript zum Benutzerimport eine enorme Zeitersparnis.
  1. Erstellt eine Textdatei mit den Benutzerinformation im folgenden Format:
    Benutzername;Passwort;Nachname;Vorname;E-Mail;Gruppe1,Gruppe2,Gruppe3
  2. Ruft das ZMI auf und legt eine Datei (File) mit der ID "userlist.csv" und der eben erstellten Textdatei an.
  3. Als nächstes wird ein "Script (Python)" mit der ID "import_users.py" und folgendem Inhalt angelegt:
    from Products.CMFCore.utils import getToolByName
    regtool = getToolByName(context, 'portal_registration')
    grptool = getToolByName(context, 'portal_groups')

    users = context['userlist.csv'].data.split('\n')

    line_count = 0
    import_count = 0

    for user in users:
    line_count += 1
    user_data = user.split(';')
    if len(user_data) == 5:
    id, passwd, fullname, email, groups = user_data
    groups = groups.split(',')[:-1]
    properties = dict(username = id,
    email = email,
    fullname = fullname
    )
    try:
    regtool.addMember(id, passwd, properties=properties)
    for group_id in groups:
    group_id = group_id.strip()
    if not grptool.getGroupById(group_id):
    grptool.addGroup(group_id)
    group_obj = grptool.getGroupById(group_id)
    group_obj.addMember(id)

    print "Benutzer %s wurde erfolgreich hinzugefügt" % id
    import_count += 1
    except ValueError, e:
    print "Fehler beim hinzufügen von: %s: %s" % (id, e)
    else:
    print "Zeile %d entspricht nicht dem geforderten Format. Zeile hat folgenden Inhalt: %s" % (line_count, user)

    print "Es wurden %d von %d Benutzern importiert!" % (import_count, line_count)

    return printed
  4. Nach dem speichern könnt Ihr dann auf den Test-Tab drücken und die Benutzer aus der Textdatei werden Zeilenweise importiert!