Re: Benutzer IDs ersetzen
Veit Schiele <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Organization | Veit Schiele Kommunikationsdesign |
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Am 01.04.2010 16:20, schrieb Ingo Schnieders:
> Hallo zusammen,
>
> gibt es im Plone/ZOPE eine Möglichkeit alle Inhalte zu einer Benutzer-ID auf
> einen anderen Benutzer umzuschreiben ?
>
> Anwendungsfall: Ein Mitarbeiter verlässt das Unternehmen (also auch das Plone),
> im LDAP wird der Account irgendwann gelöscht und der Nachfolger soll sämtliche
> Inhalte übernehmen/erben.
Folgende externe Methode sollte funktionieren:
from Products.CMFCore.utils import getToolByName
old_owner = "old"
new_owner = "new"
recursive = 0
def changeOwner(self):
acl_users = getattr(self.aq_parent, 'acl_users')
user = acl_users.getUserById(new_owner)
catalog = getToolByName(self, 'portal_catalog')
brains = catalog(Creator=old_owner)
for brain in brains:
obj = brain.getObject()
obj.changeOwnership(user, recursive)
obj.indexObject()
Diese sollte im Extension-Verzeichnis der Instanz zur Verfügung stehen.
Wie dies mit Buildout zusammen gewährleistet werden kann, ist im
Plone-Entwicklerhandbuch unter Shell-Befehle beschrieben:
http://www.plone-entwicklerhandbuch.de/plone-entwicklerhandbuch/entwicklungsumgebung/buildout-erweiterungen#shell-befehle
Anschließend sollte im ZMI eine External Method hinzugefügt werden mit
changeOwner als function name.
Beim Klicken auf den Test-Reiter wird das Skript dann ausgeführt.
HTH veit
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAku2GIIACgkQiRID92Ub+Ub0SwCfbp2uGhBuArCZRIZc3coYqldR
XLAAnjLbFDS41OrTfyF3j8dpPVDqdOaV
=rkFJ
-----END PGP SIGNATURE-----
_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope