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

Added PUT.

parent 8295a577
"""Document object"""
__version__='$Revision: 1.25 $'[11:-2]
__version__='$Revision: 1.26 $'[11:-2]
from Globals import HTML, HTMLFile
from string import join,split,strip,rfind,atoi
......@@ -80,6 +80,13 @@ class Document(HTML, RoleManager, SimpleItem.Item_w__name__,
def validRoles(self):
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-->
<H2><!--#var title_or_id--> <!--#var document_title--></H2>
<P>This is the <!--#var document_id--> Document in
......
"""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
......@@ -13,6 +13,9 @@ from Document import DocumentHandler
from AccessControl.User import UserFolderHandler
from AccessControl.Role import RoleManager
import SimpleItem
from string import rfind, lower
from content_types import content_type, find_binary, text_type
import Image
class FolderHandler:
"""Folder object handler"""
......@@ -105,6 +108,50 @@ class Folder(ObjectManager,RoleManager,DocumentHandler,
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):
......
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