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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.