Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
Zope
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
Zope
Commits
cbfffc71
Commit
cbfffc71
authored
Sep 27, 2008
by
Tres Seaver
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Back out accidental commit in support of GSoC / Python 2.5.
parent
75f69548
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
40 deletions
+38
-40
lib/python/OFS/CopySupport.py
lib/python/OFS/CopySupport.py
+37
-39
lib/python/OFS/tests/testCopySupport.py
lib/python/OFS/tests/testCopySupport.py
+1
-1
No files found.
lib/python/OFS/CopySupport.py
View file @
cbfffc71
...
...
@@ -48,8 +48,7 @@ from OFS.interfaces import ICopyContainer
from
OFS.interfaces
import
ICopySource
class
CopyError
(
Exception
):
pass
CopyError
=
'Copy Error'
copy_re
=
re
.
compile
(
'^copy([0-9]*)_of_(.*)'
)
...
...
@@ -100,11 +99,10 @@ class CopyContainer(ExtensionClass.Base):
ob
=
self
.
_getOb
(
id
)
if
ob
.
wl_isLocked
():
raise
ResourceLockedError
(
'Object "%s" is locked via WebDAV'
%
ob
.
getId
())
raise
ResourceLockedError
,
'Object "%s" is locked via WebDAV'
%
ob
.
getId
()
if
not
ob
.
cb_isMoveable
():
raise
CopyError
(
eNotSupported
%
escape
(
id
)
)
raise
CopyError
,
eNotSupported
%
escape
(
id
)
m
=
Moniker
.
Moniker
(
ob
)
oblist
.
append
(
m
.
dump
())
cp
=
(
1
,
oblist
)
...
...
@@ -130,7 +128,7 @@ class CopyContainer(ExtensionClass.Base):
for
id
in
ids
:
ob
=
self
.
_getOb
(
id
)
if
not
ob
.
cb_isCopyable
():
raise
CopyError
(
eNotSupported
%
escape
(
id
)
)
raise
CopyError
,
eNotSupported
%
escape
(
id
)
m
=
Moniker
.
Moniker
(
ob
)
oblist
.
append
(
m
.
dump
())
cp
=
(
0
,
oblist
)
...
...
@@ -177,12 +175,12 @@ class CopyContainer(ExtensionClass.Base):
else
:
cp
=
None
if
cp
is
None
:
raise
CopyError
(
eNoData
)
raise
CopyError
,
eNoData
try
:
op
,
mdatas
=
_cb_decode
(
cp
)
except
:
raise
CopyError
(
eInvalid
)
raise
CopyError
,
eInvalid
oblist
=
[]
app
=
self
.
getPhysicalRoot
()
...
...
@@ -193,7 +191,7 @@ class CopyContainer(ExtensionClass.Base):
except
ConflictError
:
raise
except
:
raise
CopyError
(
eNotFound
)
raise
CopyError
,
eNotFound
self
.
_verifyObjectPaste
(
ob
,
validate_src
=
op
+
1
)
oblist
.
append
(
ob
)
...
...
@@ -203,17 +201,17 @@ class CopyContainer(ExtensionClass.Base):
for
ob
in
oblist
:
orig_id
=
ob
.
getId
()
if
not
ob
.
cb_isCopyable
():
raise
CopyError
(
eNotSupported
%
escape
(
orig_id
)
)
raise
CopyError
,
eNotSupported
%
escape
(
orig_id
)
try
:
ob
.
_notifyOfCopyTo
(
self
,
op
=
0
)
except
ConflictError
:
raise
except
:
raise
CopyError
(
MessageDialog
(
raise
CopyError
,
MessageDialog
(
title
=
"Copy Error"
,
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
)
action
=
'manage_main'
)
id
=
self
.
_get_id
(
orig_id
)
result
.
append
({
'id'
:
orig_id
,
'new_id'
:
id
})
...
...
@@ -242,20 +240,20 @@ class CopyContainer(ExtensionClass.Base):
for
ob
in
oblist
:
orig_id
=
ob
.
getId
()
if
not
ob
.
cb_isMoveable
():
raise
CopyError
(
eNotSupported
%
escape
(
orig_id
)
)
raise
CopyError
,
eNotSupported
%
escape
(
orig_id
)
try
:
ob
.
_notifyOfCopyTo
(
self
,
op
=
1
)
except
ConflictError
:
raise
except
:
raise
CopyError
(
MessageDialog
(
raise
CopyError
,
MessageDialog
(
title
=
"Move Error"
,
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
)
action
=
'manage_main'
)
if
not
sanity_check
(
self
,
ob
):
raise
CopyError
(
"This object cannot be pasted into itself"
)
raise
CopyError
,
"This object cannot be pasted into itself"
orig_container
=
aq_parent
(
aq_inner
(
ob
))
if
aq_base
(
orig_container
)
is
aq_base
(
self
):
...
...
@@ -332,18 +330,18 @@ class CopyContainer(ExtensionClass.Base):
try
:
self
.
_checkId
(
new_id
)
except
:
raise
CopyError
(
MessageDialog
(
raise
CopyError
,
MessageDialog
(
title
=
'Invalid Id'
,
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
)
action
=
'manage_main'
)
ob
=
self
.
_getOb
(
id
)
if
ob
.
wl_isLocked
():
raise
ResourceLockedError
(
'Object "%s" is locked via WebDAV'
raise
ResourceLockedError
,
(
'Object "%s" is locked via WebDAV'
%
ob
.
getId
())
if
not
ob
.
cb_isMoveable
():
raise
CopyError
(
eNotSupported
%
escape
(
id
)
)
raise
CopyError
,
eNotSupported
%
escape
(
id
)
self
.
_verifyObjectPaste
(
ob
)
try
:
...
...
@@ -351,10 +349,10 @@ class CopyContainer(ExtensionClass.Base):
except
ConflictError
:
raise
except
:
raise
CopyError
(
MessageDialog
(
raise
CopyError
,
MessageDialog
(
title
=
"Rename Error"
,
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
)
action
=
'manage_main'
)
notify
(
ObjectWillBeMovedEvent
(
ob
,
self
,
id
,
self
,
new_id
))
...
...
@@ -398,14 +396,14 @@ class CopyContainer(ExtensionClass.Base):
"""Clone an object, creating a new object with the given id.
"""
if
not
ob
.
cb_isCopyable
():
raise
CopyError
(
eNotSupported
%
escape
(
ob
.
getId
()
))
raise
CopyError
,
eNotSupported
%
escape
(
ob
.
getId
(
))
try
:
self
.
_checkId
(
id
)
except
:
raise
CopyError
(
MessageDialog
(
raise
CopyError
,
MessageDialog
(
title
=
'Invalid Id'
,
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
)
action
=
'manage_main'
)
self
.
_verifyObjectPaste
(
ob
)
...
...
@@ -414,10 +412,10 @@ class CopyContainer(ExtensionClass.Base):
except
ConflictError
:
raise
except
:
raise
CopyError
(
MessageDialog
(
raise
CopyError
,
MessageDialog
(
title
=
"Clone Error"
,
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
)
action
=
'manage_main'
)
orig_ob
=
ob
ob
=
ob
.
_getCopy
(
self
)
...
...
@@ -471,17 +469,17 @@ class CopyContainer(ExtensionClass.Base):
# heirarchy).
if
not
hasattr
(
object
,
'meta_type'
):
raise
CopyError
(
MessageDialog
(
raise
CopyError
,
MessageDialog
(
title
=
'Not Supported'
,
message
=
(
'The object <em>%s</em> does not support this'
\
' operation'
%
escape
(
absattr
(
object
.
id
))),
action
=
'manage_main'
)
)
action
=
'manage_main'
)
if
not
hasattr
(
self
,
'all_meta_types'
):
raise
CopyError
(
MessageDialog
(
raise
CopyError
,
MessageDialog
(
title
=
'Not Supported'
,
message
=
'Cannot paste into this object.'
,
action
=
'manage_main'
)
)
action
=
'manage_main'
)
method_name
=
None
mt_permission
=
None
...
...
@@ -512,19 +510,19 @@ class CopyContainer(ExtensionClass.Base):
if
not
sm
.
checkPermission
(
delete_objects
,
parent
):
raise
Unauthorized
(
'Delete not allowed.'
)
else
:
raise
CopyError
(
MessageDialog
(
raise
CopyError
,
MessageDialog
(
title
=
'Insufficient Privileges'
,
message
=
(
'You do not possess the %s permission in the '
'context of the container into which you are '
'pasting, thus you are not able to perform '
'this operation.'
%
mt_permission
),
action
=
'manage_main'
)
)
action
=
'manage_main'
)
else
:
raise
CopyError
(
MessageDialog
(
raise
CopyError
,
MessageDialog
(
title
=
'Not Supported'
,
message
=
(
'The object <em>%s</em> does not support this '
'operation.'
%
escape
(
absattr
(
object
.
id
))),
action
=
'manage_main'
)
)
action
=
'manage_main'
)
InitializeClass
(
CopyContainer
)
...
...
@@ -563,13 +561,13 @@ class CopySource(ExtensionClass.Base):
transaction
.
savepoint
(
optimistic
=
True
)
if
self
.
_p_jar
is
None
:
raise
CopyError
(
(
raise
CopyError
,
(
'Object "%s" needs to be in the database to be copied'
%
`self`
)
)
`self`
)
if
container
.
_p_jar
is
None
:
raise
CopyError
(
(
raise
CopyError
,
(
'Container "%s" needs to be in the database'
%
`container`
)
)
`container`
)
# Ask an object for a new copy of itself.
f
=
tempfile
.
TemporaryFile
()
...
...
lib/python/OFS/tests/testCopySupport.py
View file @
cbfffc71
...
...
@@ -347,7 +347,7 @@ class TestCopySupportSecurity( CopySupportTestBase ):
if
ce_regex
is
not
None
:
pattern
=
re
.
compile
(
ce_regex
,
re
.
DOTALL
)
if
pattern
.
search
(
e
.
message
)
is
None
:
if
pattern
.
search
(
e
)
is
None
:
self
.
fail
(
"Paste failed; didn't match pattern:
\
n
%s"
%
e
)
else
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment