--- versionedFile/extVersionedFile.py 2008/10/29 12:12:25 1.30 +++ versionedFile/extVersionedFile.py 2009/06/21 11:28:55 1.32 @@ -3,6 +3,7 @@ using the ExtFile Product, this version DW 11.10.2006 """ +import email from OFS.Folder import Folder from OFS.Image import File from OFS.Image import cookId @@ -142,6 +143,19 @@ class extVersionedFileFolder(Folder,ECHO ) + def redirect(self,RESPONSE,url): + """mache ein redirect mit einem angehaengten time stamp um ein reload zu erzwingen""" + + timeStamp=time.time() + + if url.find("?")>-1: #giebt es schon parameter + addStr="&time=%s" + else: + addStr="?time=%s" + + RESPONSE.setHeader('Last-Modified',email.Utils.formatdate().split("-")[0]+'GMT') + logging.error(email.Utils.formatdate()+' GMT') + RESPONSE.redirect(url+addStr%timeStamp) def changeHistoryFileNamesForm(self): """change position of version num""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeHistoryFileNamesForm.zpt')).__of__(self) @@ -632,8 +646,10 @@ class extVersionedFileObject(ExtFile): filename = self.get_filename() #return ExtFile.index_html(self) try: + logging.info("readfile:"+filename) return file(filename).read() except: + logging.info("cannot readfile:"+filename) return ExtFile.index_html(self) @@ -1076,14 +1092,23 @@ class extVersionedFile(CatalogAware,Fold return vl security.declareProtected('AUTHENTICATED_USER','forceunlock') - def forceunlock(self,RESPONSE=None): + def forceunlock(self,RESPONSE=None,user=None): """unlock""" #safe who had the lock + logging.debug("extVersionFile: (forceunlock)"+str(user)) if self.lockedBy: - self.brokenLock=str(self.lockedBy) + if user is not None: + if str(self.lockedBy)==user: + self.brokenLock=str(self.lockedBy) + self.lockedBy='' + else: + self.brokenLock="" + else: + self.brokenLock=str(self.lockedBy) + self.lockedBy='' else: self.brokenLock="" - self.lockedBy='' + return self.brokenLock security.declareProtected('AUTHENTICATED_USER','unlock') @@ -1091,7 +1116,7 @@ class extVersionedFile(CatalogAware,Fold """unlock""" if str(self.lockedBy) in [str(self.REQUEST['AUTHENTICATED_USER'])]: self.lockedBy='' - RESPONSE.redirect(self.REQUEST['HTTP_REFERER']) + self.redirect(RESPONSE,self.REQUEST['HTTP_REFERER'],) else: return "Sorry, not locked by you! (%s,%s)"%(self.lockedBy,self.REQUEST['AUTHENTICATED_USER'])