You are here: Home / Documentation / How To's / How to list customized skin items and their owners

How to list customized skin items and their owners

by nguyen — published Oct 06, 2010 12:50 PM, last modified Aug 16, 2016 10:50 AM
.listCustomizedSkinItems, a script that iterates over all the Plone sites in your Zope

When someone customizes skin items via ZMI portal_skin/custom, it appears to cause a problem when the customized items' owner no longer has Manager role.

The symptom seems to be that even someone with Manager role can no longer see an item's Edit tab.

This script identifies the customized skin items and shows their owner.  When you click on the link, it takes you to the ZMI Ownership tab for the customized skit item, where you can then take ownership of the item.

# Script to place in Zope root that lists the customized views and their owners
# in all the contained Plone sites.

outln = []

def doIt(site):
   outln.append("Plone site '%s':" %
   customizations = site.portal_skins.custom
   items = customizations.items()
   for i in items:
       s, obj = i
       outln.append("&nbsp;&nbsp;&nbsp;&nbsp; %s &nbsp;&nbsp;&nbsp;&nbsp;<a href='%s'>%s</a>" % (obj.owner_info()['id'], obj.absolute_url()+'/manage_owner', s))

for itemTuple in context.items():
 (item, itemType) = itemTuple
 if str(itemType).startswith('<PloneSite at '):
   site = getattr(context, item)
 elif str(itemType).startswith('<Folder at '):
   folder = getattr(context, item)
   for folderItemTuple in folder.items():
     (folderItem, folderItemType) = folderItemTuple
     if str(folderItemType).startswith('<PloneSite at '):
       site = getattr(folder, folderItem)
return '<br>'.join(outln)