History for CMF_Creator
??changed:
-
**CMF Creator Issues**
Problem that this page attempts to solve: *when a manager joins other people into a CMF, the new folder and index_html become owned by the manager which makes searches showing owners of such document appear to be authored by manager*
- Creator is a method that returns the **owner** of an object in CMF
- Several people have posted ways to change the ownership of an object in zope (and thus in CMF) by using an external method. I called mine **chown**::
def set_owner(self,user='bruno'):
""" change Creator """
try:
try:
acl_users=getattr(self,'acl_users')
user = acl_users.getUser(user).__of__(acl_users)
except:
return "%s not in acl_user folder"%user
try:
self.changeOwnership(user=user,recursive=1)
return "done by "%self.Creator()
except: return "perhaps it did or did not change %s (check)"%user
except: return "something not right %s"%user
- usage: *URL/CMF_Document_name/chown?user=whoever* or as part of a python script that systematically changes ownership of Members folders to be the same as the id of the corresponding folder::
print "<html>"
for I in context.Members.objectIds():
print "<li>"
try:
print context.Members[I].chown(context.rec.REC.Members[I],user=I)
except StandardError,msg: print "<u>%s</u> %s"%(I,msg)
try: print "%s <i>%s</i> "%(I,context.Members[I].index_html.Creator())
except: print "no index for %s"%I
return printed
- The above could be shortened to 3 lines. The problem I have is that some users are in the **acl_user** folder in the CMF and others in acquired earlier **acl_user folders** . I am not totally pleased with this program since it returns false negative results even though it does the job correctly but only for those who have an entry in the immediate **acl_user** folder.
- Another issue is that **CMF Documents** seem to **cook in** the **Creator** so that unless one re-edits and saves a CMF Document, it appears to still have the old owner.