Commit 5826fe16 authored by Jim Fulton's avatar Jim Fulton

Added PUT.

parent 8295a577
"""Document object""" """Document object"""
__version__='$Revision: 1.25 $'[11:-2] __version__='$Revision: 1.26 $'[11:-2]
from Globals import HTML, HTMLFile from Globals import HTML, HTMLFile
from string import join,split,strip,rfind,atoi from string import join,split,strip,rfind,atoi
...@@ -80,6 +80,13 @@ class Document(HTML, RoleManager, SimpleItem.Item_w__name__, ...@@ -80,6 +80,13 @@ class Document(HTML, RoleManager, SimpleItem.Item_w__name__,
def validRoles(self): def validRoles(self):
return self.aq_parent.validRoles() return self.aq_parent.validRoles()
PUT__roles__='manage',
def PUT(self, BODY, REQUEST):
'handle PUT requests'
self.munge(BODY)
return 'OK'
default_html="""<!--#var standard_html_header--> default_html="""<!--#var standard_html_header-->
<H2><!--#var title_or_id--> <!--#var document_title--></H2> <H2><!--#var title_or_id--> <!--#var document_title--></H2>
<P>This is the <!--#var document_id--> Document in <P>This is the <!--#var document_id--> Document in
......
"""Folder object """Folder object
$Id: Folder.py,v 1.15 1997/11/07 16:12:29 jim Exp $""" $Id: Folder.py,v 1.16 1997/11/10 14:53:13 jim Exp $"""
__version__='$Revision: 1.15 $'[11:-2] __version__='$Revision: 1.16 $'[11:-2]
from Globals import HTMLFile from Globals import HTMLFile
...@@ -13,6 +13,9 @@ from Document import DocumentHandler ...@@ -13,6 +13,9 @@ from Document import DocumentHandler
from AccessControl.User import UserFolderHandler from AccessControl.User import UserFolderHandler
from AccessControl.Role import RoleManager from AccessControl.Role import RoleManager
import SimpleItem import SimpleItem
from string import rfind, lower
from content_types import content_type, find_binary, text_type
import Image
class FolderHandler: class FolderHandler:
"""Folder object handler""" """Folder object handler"""
...@@ -105,6 +108,50 @@ class Folder(ObjectManager,RoleManager,DocumentHandler, ...@@ -105,6 +108,50 @@ class Folder(ObjectManager,RoleManager,DocumentHandler,
return r return r
def __getitem__(self, key):
# Hm, getattr didn't work, maybe this is a put:
r=PUTer(self,key)
return r
class PUTer:
'Temporary objects to handle PUT to non-existent images or documents'
def __init__(self, parent, key):
self._parent=parent
self._key=key
def __str__(self): return self._key
PUT__roles__='manage',
def PUT(self, REQUEST, BODY):
' '
name=self._key
try: type=REQUEST['CONTENT_TYPE']
except KeyError: type=''
if not type:
dot=rfind(name, '.')
suf=dot > 0 and lower(name[dot+1:]) or ''
if suf:
try: type=content_type[suf]
except KeyError:
if find_binary(BODY) >= 0: type='application/x-%s' % suf
else: type=text_type(BODY)
else:
if find_binary(BODY) >= 0:
raise 'Bad Request', 'Could not determine file type'
else: type=text_type(BODY)
__traceback_info__=suf, dot, name, type
if lower(type)=='text/html':
return self._parent.manage_addDocument(name,'',BODY,
REQUEST=REQUEST)
i=Image.Image()
i._init(name, BODY, type)
i.title=''
i._setRoles('A',[])
self._parent._setObject(name,i)
return 'OK'
def subclass(c,super): def subclass(c,super):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment