Skript zum importieren von Benutzern in Plone
Gerade beim anlegen vieler Benutzer, bringt ein Skript zum Benutzerimport eine enorme Zeitersparnis.
- Erstellt eine Textdatei mit den Benutzerinformation im folgenden Format:
Benutzername;Passwort;Nachname;Vorname;E-Mail;Gruppe1,Gruppe2,Gruppe3
- Ruft das ZMI auf und legt eine Datei (File) mit der ID "userlist.csv" und der eben erstellten Textdatei an.
- 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 - Nach dem speichern könnt Ihr dann auf den Test-Tab drücken und die Benutzer aus der Textdatei werden Zeilenweise importiert!