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
6e83525c
Commit
6e83525c
authored
May 16, 2010
by
Tres Seaver
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Unused import, new style exceptions.
Forward port from 2.12 branch.
parent
cb615b12
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
39 deletions
+40
-39
src/OFS/CopySupport.py
src/OFS/CopySupport.py
+40
-39
No files found.
src/OFS/CopySupport.py
View file @
6e83525c
...
@@ -39,7 +39,6 @@ from Acquisition import aq_parent
...
@@ -39,7 +39,6 @@ from Acquisition import aq_parent
from
App.class_init
import
InitializeClass
from
App.class_init
import
InitializeClass
from
App.Dialogs
import
MessageDialog
from
App.Dialogs
import
MessageDialog
from
App.special_dtml
import
HTML
from
App.special_dtml
import
HTML
from
App.special_dtml
import
HTMLFile
from
App.special_dtml
import
DTMLFile
from
App.special_dtml
import
DTMLFile
from
ExtensionClass
import
Base
from
ExtensionClass
import
Base
from
webdav.Lockable
import
ResourceLockedError
from
webdav.Lockable
import
ResourceLockedError
...
@@ -88,7 +87,7 @@ class CopyContainer(Base):
...
@@ -88,7 +87,7 @@ class CopyContainer(Base):
if
hasattr
(
aq_base
(
self
),
id
):
if
hasattr
(
aq_base
(
self
),
id
):
return
getattr
(
self
,
id
)
return
getattr
(
self
,
id
)
if
default
is
_marker
:
if
default
is
_marker
:
raise
AttributeError
,
id
raise
AttributeError
(
id
)
return
default
return
default
def
manage_CopyContainerFirstItem
(
self
,
REQUEST
):
def
manage_CopyContainerFirstItem
(
self
,
REQUEST
):
...
@@ -103,7 +102,7 @@ class CopyContainer(Base):
...
@@ -103,7 +102,7 @@ class CopyContainer(Base):
if
ids
is
None
and
REQUEST
is
not
None
:
if
ids
is
None
and
REQUEST
is
not
None
:
return
eNoItemsSpecified
return
eNoItemsSpecified
elif
ids
is
None
:
elif
ids
is
None
:
raise
ValueError
,
'ids must be specified'
raise
ValueError
(
'ids must be specified'
)
if
type
(
ids
)
is
type
(
''
):
if
type
(
ids
)
is
type
(
''
):
ids
=
[
ids
]
ids
=
[
ids
]
...
@@ -112,10 +111,11 @@ class CopyContainer(Base):
...
@@ -112,10 +111,11 @@ class CopyContainer(Base):
ob
=
self
.
_getOb
(
id
)
ob
=
self
.
_getOb
(
id
)
if
ob
.
wl_isLocked
():
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
():
if
not
ob
.
cb_isMoveable
():
raise
CopyError
,
eNotSupported
%
escape
(
id
)
raise
CopyError
(
eNotSupported
%
escape
(
id
)
)
m
=
Moniker
(
ob
)
m
=
Moniker
(
ob
)
oblist
.
append
(
m
.
dump
())
oblist
.
append
(
m
.
dump
())
cp
=
(
1
,
oblist
)
cp
=
(
1
,
oblist
)
...
@@ -133,7 +133,7 @@ class CopyContainer(Base):
...
@@ -133,7 +133,7 @@ class CopyContainer(Base):
if
ids
is
None
and
REQUEST
is
not
None
:
if
ids
is
None
and
REQUEST
is
not
None
:
return
eNoItemsSpecified
return
eNoItemsSpecified
elif
ids
is
None
:
elif
ids
is
None
:
raise
ValueError
,
'ids must be specified'
raise
ValueError
(
'ids must be specified'
)
if
type
(
ids
)
is
type
(
''
):
if
type
(
ids
)
is
type
(
''
):
ids
=
[
ids
]
ids
=
[
ids
]
...
@@ -141,7 +141,7 @@ class CopyContainer(Base):
...
@@ -141,7 +141,7 @@ class CopyContainer(Base):
for
id
in
ids
:
for
id
in
ids
:
ob
=
self
.
_getOb
(
id
)
ob
=
self
.
_getOb
(
id
)
if
not
ob
.
cb_isCopyable
():
if
not
ob
.
cb_isCopyable
():
raise
CopyError
,
eNotSupported
%
escape
(
id
)
raise
CopyError
(
eNotSupported
%
escape
(
id
)
)
m
=
Moniker
(
ob
)
m
=
Moniker
(
ob
)
oblist
.
append
(
m
.
dump
())
oblist
.
append
(
m
.
dump
())
cp
=
(
0
,
oblist
)
cp
=
(
0
,
oblist
)
...
@@ -188,12 +188,12 @@ class CopyContainer(Base):
...
@@ -188,12 +188,12 @@ class CopyContainer(Base):
else
:
else
:
cp
=
None
cp
=
None
if
cp
is
None
:
if
cp
is
None
:
raise
CopyError
,
eNoData
raise
CopyError
(
eNoData
)
try
:
try
:
op
,
mdatas
=
_cb_decode
(
cp
)
op
,
mdatas
=
_cb_decode
(
cp
)
except
:
except
:
raise
CopyError
,
eInvalid
raise
CopyError
(
eInvalid
)
oblist
=
[]
oblist
=
[]
app
=
self
.
getPhysicalRoot
()
app
=
self
.
getPhysicalRoot
()
...
@@ -204,7 +204,7 @@ class CopyContainer(Base):
...
@@ -204,7 +204,7 @@ class CopyContainer(Base):
except
ConflictError
:
except
ConflictError
:
raise
raise
except
:
except
:
raise
CopyError
,
eNotFound
raise
CopyError
(
eNotFound
)
self
.
_verifyObjectPaste
(
ob
,
validate_src
=
op
+
1
)
self
.
_verifyObjectPaste
(
ob
,
validate_src
=
op
+
1
)
oblist
.
append
(
ob
)
oblist
.
append
(
ob
)
...
@@ -214,17 +214,17 @@ class CopyContainer(Base):
...
@@ -214,17 +214,17 @@ class CopyContainer(Base):
for
ob
in
oblist
:
for
ob
in
oblist
:
orig_id
=
ob
.
getId
()
orig_id
=
ob
.
getId
()
if
not
ob
.
cb_isCopyable
():
if
not
ob
.
cb_isCopyable
():
raise
CopyError
,
eNotSupported
%
escape
(
orig_id
)
raise
CopyError
(
eNotSupported
%
escape
(
orig_id
)
)
try
:
try
:
ob
.
_notifyOfCopyTo
(
self
,
op
=
0
)
ob
.
_notifyOfCopyTo
(
self
,
op
=
0
)
except
ConflictError
:
except
ConflictError
:
raise
raise
except
:
except
:
raise
CopyError
,
MessageDialog
(
raise
CopyError
(
MessageDialog
(
title
=
"Copy Error"
,
title
=
"Copy Error"
,
message
=
sys
.
exc_info
()[
1
],
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
action
=
'manage_main'
)
)
id
=
self
.
_get_id
(
orig_id
)
id
=
self
.
_get_id
(
orig_id
)
result
.
append
({
'id'
:
orig_id
,
'new_id'
:
id
})
result
.
append
({
'id'
:
orig_id
,
'new_id'
:
id
})
...
@@ -253,20 +253,21 @@ class CopyContainer(Base):
...
@@ -253,20 +253,21 @@ class CopyContainer(Base):
for
ob
in
oblist
:
for
ob
in
oblist
:
orig_id
=
ob
.
getId
()
orig_id
=
ob
.
getId
()
if
not
ob
.
cb_isMoveable
():
if
not
ob
.
cb_isMoveable
():
raise
CopyError
,
eNotSupported
%
escape
(
orig_id
)
raise
CopyError
(
eNotSupported
%
escape
(
orig_id
)
)
try
:
try
:
ob
.
_notifyOfCopyTo
(
self
,
op
=
1
)
ob
.
_notifyOfCopyTo
(
self
,
op
=
1
)
except
ConflictError
:
except
ConflictError
:
raise
raise
except
:
except
:
raise
CopyError
,
MessageDialog
(
raise
CopyError
(
MessageDialog
(
title
=
"Move Error"
,
title
=
"Move Error"
,
message
=
sys
.
exc_info
()[
1
],
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
action
=
'manage_main'
)
)
if
not
sanity_check
(
self
,
ob
):
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
))
orig_container
=
aq_parent
(
aq_inner
(
ob
))
if
aq_base
(
orig_container
)
is
aq_base
(
self
):
if
aq_base
(
orig_container
)
is
aq_base
(
self
):
...
@@ -328,7 +329,7 @@ class CopyContainer(Base):
...
@@ -328,7 +329,7 @@ class CopyContainer(Base):
def
manage_renameObjects
(
self
,
ids
=
[],
new_ids
=
[],
REQUEST
=
None
):
def
manage_renameObjects
(
self
,
ids
=
[],
new_ids
=
[],
REQUEST
=
None
):
"""Rename several sub-objects"""
"""Rename several sub-objects"""
if
len
(
ids
)
!=
len
(
new_ids
):
if
len
(
ids
)
!=
len
(
new_ids
):
raise
BadRequest
,
'Please rename each listed object.'
raise
BadRequest
(
'Please rename each listed object.'
)
for
i
in
range
(
len
(
ids
)):
for
i
in
range
(
len
(
ids
)):
if
ids
[
i
]
!=
new_ids
[
i
]:
if
ids
[
i
]
!=
new_ids
[
i
]:
self
.
manage_renameObject
(
ids
[
i
],
new_ids
[
i
],
REQUEST
)
self
.
manage_renameObject
(
ids
[
i
],
new_ids
[
i
],
REQUEST
)
...
@@ -343,18 +344,18 @@ class CopyContainer(Base):
...
@@ -343,18 +344,18 @@ class CopyContainer(Base):
try
:
try
:
self
.
_checkId
(
new_id
)
self
.
_checkId
(
new_id
)
except
:
except
:
raise
CopyError
,
MessageDialog
(
raise
CopyError
(
MessageDialog
(
title
=
'Invalid Id'
,
title
=
'Invalid Id'
,
message
=
sys
.
exc_info
()[
1
],
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
action
=
'manage_main'
)
)
ob
=
self
.
_getOb
(
id
)
ob
=
self
.
_getOb
(
id
)
if
ob
.
wl_isLocked
():
if
ob
.
wl_isLocked
():
raise
ResourceLockedError
,
(
'Object "%s" is locked via WebDAV'
raise
ResourceLockedError
(
'Object "%s" is locked via WebDAV'
%
ob
.
getId
())
%
ob
.
getId
())
if
not
ob
.
cb_isMoveable
():
if
not
ob
.
cb_isMoveable
():
raise
CopyError
,
eNotSupported
%
escape
(
id
)
raise
CopyError
(
eNotSupported
%
escape
(
id
)
)
self
.
_verifyObjectPaste
(
ob
)
self
.
_verifyObjectPaste
(
ob
)
try
:
try
:
...
@@ -362,10 +363,10 @@ class CopyContainer(Base):
...
@@ -362,10 +363,10 @@ class CopyContainer(Base):
except
ConflictError
:
except
ConflictError
:
raise
raise
except
:
except
:
raise
CopyError
,
MessageDialog
(
raise
CopyError
(
MessageDialog
(
title
=
"Rename Error"
,
title
=
"Rename Error"
,
message
=
sys
.
exc_info
()[
1
],
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
action
=
'manage_main'
)
)
notify
(
ObjectWillBeMovedEvent
(
ob
,
self
,
id
,
self
,
new_id
))
notify
(
ObjectWillBeMovedEvent
(
ob
,
self
,
id
,
self
,
new_id
))
...
@@ -409,14 +410,14 @@ class CopyContainer(Base):
...
@@ -409,14 +410,14 @@ class CopyContainer(Base):
"""Clone an object, creating a new object with the given id.
"""Clone an object, creating a new object with the given id.
"""
"""
if
not
ob
.
cb_isCopyable
():
if
not
ob
.
cb_isCopyable
():
raise
CopyError
,
eNotSupported
%
escape
(
ob
.
getId
(
))
raise
CopyError
(
eNotSupported
%
escape
(
ob
.
getId
()
))
try
:
try
:
self
.
_checkId
(
id
)
self
.
_checkId
(
id
)
except
:
except
:
raise
CopyError
,
MessageDialog
(
raise
CopyError
(
MessageDialog
(
title
=
'Invalid Id'
,
title
=
'Invalid Id'
,
message
=
sys
.
exc_info
()[
1
],
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
action
=
'manage_main'
)
)
self
.
_verifyObjectPaste
(
ob
)
self
.
_verifyObjectPaste
(
ob
)
...
@@ -425,10 +426,10 @@ class CopyContainer(Base):
...
@@ -425,10 +426,10 @@ class CopyContainer(Base):
except
ConflictError
:
except
ConflictError
:
raise
raise
except
:
except
:
raise
CopyError
,
MessageDialog
(
raise
CopyError
(
MessageDialog
(
title
=
"Clone Error"
,
title
=
"Clone Error"
,
message
=
sys
.
exc_info
()[
1
],
message
=
sys
.
exc_info
()[
1
],
action
=
'manage_main'
)
action
=
'manage_main'
)
)
orig_ob
=
ob
orig_ob
=
ob
ob
=
ob
.
_getCopy
(
self
)
ob
=
ob
.
_getCopy
(
self
)
...
@@ -482,17 +483,17 @@ class CopyContainer(Base):
...
@@ -482,17 +483,17 @@ class CopyContainer(Base):
# heirarchy).
# heirarchy).
if
not
hasattr
(
object
,
'meta_type'
):
if
not
hasattr
(
object
,
'meta_type'
):
raise
CopyError
,
MessageDialog
(
raise
CopyError
(
MessageDialog
(
title
=
'Not Supported'
,
title
=
'Not Supported'
,
message
=
(
'The object <em>%s</em> does not support this'
\
message
=
(
'The object <em>%s</em> does not support this'
\
' operation'
%
escape
(
absattr
(
object
.
id
))),
' operation'
%
escape
(
absattr
(
object
.
id
))),
action
=
'manage_main'
)
action
=
'manage_main'
)
)
if
not
hasattr
(
self
,
'all_meta_types'
):
if
not
hasattr
(
self
,
'all_meta_types'
):
raise
CopyError
,
MessageDialog
(
raise
CopyError
(
MessageDialog
(
title
=
'Not Supported'
,
title
=
'Not Supported'
,
message
=
'Cannot paste into this object.'
,
message
=
'Cannot paste into this object.'
,
action
=
'manage_main'
)
action
=
'manage_main'
)
)
method_name
=
None
method_name
=
None
mt_permission
=
None
mt_permission
=
None
...
@@ -523,19 +524,19 @@ class CopyContainer(Base):
...
@@ -523,19 +524,19 @@ class CopyContainer(Base):
if
not
sm
.
checkPermission
(
delete_objects
,
parent
):
if
not
sm
.
checkPermission
(
delete_objects
,
parent
):
raise
Unauthorized
(
'Delete not allowed.'
)
raise
Unauthorized
(
'Delete not allowed.'
)
else
:
else
:
raise
CopyError
,
MessageDialog
(
raise
CopyError
(
MessageDialog
(
title
=
'Insufficient Privileges'
,
title
=
'Insufficient Privileges'
,
message
=
(
'You do not possess the %s permission in the '
message
=
(
'You do not possess the %s permission in the '
'context of the container into which you are '
'context of the container into which you are '
'pasting, thus you are not able to perform '
'pasting, thus you are not able to perform '
'this operation.'
%
mt_permission
),
'this operation.'
%
mt_permission
),
action
=
'manage_main'
)
action
=
'manage_main'
)
)
else
:
else
:
raise
CopyError
,
MessageDialog
(
raise
CopyError
(
MessageDialog
(
title
=
'Not Supported'
,
title
=
'Not Supported'
,
message
=
(
'The object <em>%s</em> does not support this '
message
=
(
'The object <em>%s</em> does not support this '
'operation.'
%
escape
(
absattr
(
object
.
id
))),
'operation.'
%
escape
(
absattr
(
object
.
id
))),
action
=
'manage_main'
)
action
=
'manage_main'
)
)
InitializeClass
(
CopyContainer
)
InitializeClass
(
CopyContainer
)
...
@@ -574,11 +575,11 @@ class CopySource(Base):
...
@@ -574,11 +575,11 @@ class CopySource(Base):
transaction
.
savepoint
(
optimistic
=
True
)
transaction
.
savepoint
(
optimistic
=
True
)
if
self
.
_p_jar
is
None
:
if
self
.
_p_jar
is
None
:
raise
CopyError
,
(
raise
CopyError
(
'Object "%s" needs to be in the database to be copied'
%
'Object "%s" needs to be in the database to be copied'
%
`self`
)
`self`
)
if
container
.
_p_jar
is
None
:
if
container
.
_p_jar
is
None
:
raise
CopyError
,
(
raise
CopyError
(
'Container "%s" needs to be in the database'
%
'Container "%s" needs to be in the database'
%
`container`
)
`container`
)
...
...
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