Skip to content

Commit 333507c

Browse files
committed
replace AccessControl.requestmethod by zpublish if possible
`zpublish` mark `manage_` methods
1 parent cc74800 commit 333507c

12 files changed

+44
-21
lines changed

src/App/ApplicationManager.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
from urllib import parse
2020

2121
from AccessControl.class_init import InitializeClass
22-
from AccessControl.requestmethod import requestmethod
2322
from Acquisition import Implicit
2423
from App.CacheManager import CacheManager
2524
from App.config import getConfiguration
@@ -33,6 +32,7 @@
3332
from OFS.Traversable import Traversable
3433
from Persistence import Persistent
3534
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
35+
from ZPublisher import zpublish
3636

3737

3838
class FakeConnection:
@@ -365,7 +365,7 @@ def db_size(self):
365365
return '%.1fM' % (s / 1048576.0)
366366
return '%.1fK' % (s / 1024.0)
367367

368-
@requestmethod('POST')
368+
@zpublish(methods='POST')
369369
def manage_minimize(self, value=1, REQUEST=None):
370370
"Perform a full sweep through the cache"
371371
# XXX Add a deprecation warning about value?
@@ -376,7 +376,7 @@ def manage_minimize(self, value=1, REQUEST=None):
376376
url = f'{REQUEST["URL1"]}/manage_main?manage_tabs_message={msg}'
377377
REQUEST.RESPONSE.redirect(url)
378378

379-
@requestmethod('POST')
379+
@zpublish(methods='POST')
380380
def manage_pack(self, days=0, REQUEST=None):
381381
"""Pack the database"""
382382
if not isinstance(days, (int, float)):

src/App/DavLockManager.py

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from App.special_dtml import DTMLFile
2020
from OFS.Lockable import wl_isLocked
2121
from OFS.SimpleItem import Item
22+
from ZPublisher import zpublish
2223

2324

2425
class DavLockManager(Item, Implicit):
@@ -73,6 +74,7 @@ def unlockObjects(self, paths=[]):
7374
ob.wl_clearLocks()
7475

7576
@security.protected(webdav_manage_locks)
77+
@zpublish
7678
def manage_unlockObjects(self, paths=[], REQUEST=None):
7779
" Management screen action to unlock objects. "
7880
if paths:

src/App/FactoryDispatcher.py

+1
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ def __getattr__(self, name):
161161
_owner = UnownableOwner
162162

163163
# Provide a replacement for manage_main that does a redirection:
164+
@zpublish
164165
def manage_main(trueself, self, REQUEST, update_menu=0):
165166
"""Implement a contents view by redirecting to the true view
166167
"""

src/App/Undo.py

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from App.Management import Tabs
2424
from App.special_dtml import DTMLFile
2525
from DateTime.DateTime import DateTime
26+
from ZPublisher import zpublish
2627

2728

2829
class UndoSupport(Tabs, Implicit):
@@ -98,6 +99,7 @@ def undoable_transactions(self, first_transaction=None,
9899
return r
99100

100101
@security.protected(undo_changes)
102+
@zpublish
101103
def manage_undo_transactions(self, transaction_info=(), REQUEST=None):
102104
"""
103105
"""

src/OFS/CopySupport.py

+7
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
from zope.interface import implementer
5252
from zope.lifecycleevent import ObjectCopiedEvent
5353
from zope.lifecycleevent import ObjectMovedEvent
54+
from ZPublisher import zpublish
5455

5556

5657
class CopyError(Exception):
@@ -91,6 +92,7 @@ def manage_CopyContainerAllItems(self, REQUEST):
9192
return [self._getOb(i) for i in REQUEST['ids']]
9293

9394
@security.protected(delete_objects)
95+
@zpublish
9496
def manage_cutObjects(self, ids=None, REQUEST=None):
9597
"""Put a reference to the objects named in ids in the clip board"""
9698
if ids is None and REQUEST is not None:
@@ -121,6 +123,7 @@ def manage_cutObjects(self, ids=None, REQUEST=None):
121123
return cp
122124

123125
@security.protected(view_management_screens)
126+
@zpublish
124127
def manage_copyObjects(self, ids=None, REQUEST=None, RESPONSE=None):
125128
"""Put a reference to the objects named in ids in the clip board"""
126129
if ids is None and REQUEST is not None:
@@ -298,6 +301,7 @@ def _pasteObjects(self, cp, cb_maxsize=0):
298301
return op, result
299302

300303
@security.protected(view_management_screens)
304+
@zpublish
301305
def manage_pasteObjects(self, cb_copy_data=None, REQUEST=None):
302306
"""Paste previously copied objects into the current object.
303307
@@ -334,6 +338,7 @@ def manage_pasteObjects(self, cb_copy_data=None, REQUEST=None):
334338
manage_renameForm = DTMLFile('dtml/renameForm', globals())
335339

336340
@security.protected(view_management_screens)
341+
@zpublish
337342
def manage_renameObjects(self, ids=[], new_ids=[], REQUEST=None):
338343
"""Rename several sub-objects"""
339344
if len(ids) != len(new_ids):
@@ -345,6 +350,7 @@ def manage_renameObjects(self, ids=[], new_ids=[], REQUEST=None):
345350
return self.manage_main(self, REQUEST)
346351

347352
@security.protected(view_management_screens)
353+
@zpublish
348354
def manage_renameObject(self, id, new_id, REQUEST=None):
349355
"""Rename a particular sub-object.
350356
"""
@@ -400,6 +406,7 @@ def manage_renameObject(self, id, new_id, REQUEST=None):
400406
return self.manage_main(self, REQUEST)
401407

402408
@security.public
409+
@zpublish
403410
def manage_clone(self, ob, id, REQUEST=None):
404411
"""Clone an object, creating a new object with the given id.
405412
"""

src/OFS/DTMLMethod.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
from AccessControl.Permissions import change_proxy_roles # NOQA
2121
from AccessControl.Permissions import view as View
2222
from AccessControl.Permissions import view_management_screens
23-
from AccessControl.requestmethod import requestmethod
2423
from AccessControl.SecurityInfo import ClassSecurityInfo
2524
from AccessControl.tainted import TaintedString
2625
from Acquisition import Implicit
@@ -340,9 +339,8 @@ def _validateProxy(self, roles=None):
340339
'do not have proxy roles.\n<!--%s, %s-->' % (
341340
self.__name__, user, roles))
342341

343-
@zpublish
342+
@zpublish(methods="POST")
344343
@security.protected(change_proxy_roles)
345-
@requestmethod('POST')
346344
def manage_proxy(self, roles=(), REQUEST=None):
347345
"""Change Proxy Roles"""
348346
user = getSecurityManager().getUser()

src/OFS/History.py

+1
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ def __getitem__(self, key):
9494

9595
return rev.__of__(self.aq_parent)
9696

97+
@zpublish
9798
def manage_workspace(self, REQUEST):
9899
""" We aren't real, so we delegate to that that spawned us! """
99100
raise Redirect('/%s/manage_change_history_page' % REQUEST['URL2'])

src/OFS/OrderSupport.py

+7
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from zope.container.contained import notifyContainerModified
2323
from zope.interface import implementer
2424
from zope.sequencesort.ssort import sort
25+
from ZPublisher import zpublish
2526

2627

2728
@implementer(IOrderedContainer)
@@ -48,6 +49,7 @@ class OrderSupport:
4849
)
4950

5051
@security.protected(manage_properties)
52+
@zpublish
5153
def manage_move_objects_up(self, REQUEST, ids=None, delta=1):
5254
""" Move specified sub-objects up by delta in container.
5355
"""
@@ -67,6 +69,7 @@ def manage_move_objects_up(self, REQUEST, ids=None, delta=1):
6769
)
6870

6971
@security.protected(manage_properties)
72+
@zpublish
7073
def manage_move_objects_down(self, REQUEST, ids=None, delta=1):
7174
""" Move specified sub-objects down by delta in container.
7275
"""
@@ -86,6 +89,7 @@ def manage_move_objects_down(self, REQUEST, ids=None, delta=1):
8689
)
8790

8891
@security.protected(manage_properties)
92+
@zpublish
8993
def manage_move_objects_to_top(self, REQUEST, ids=None):
9094
""" Move specified sub-objects to top of container.
9195
"""
@@ -102,6 +106,7 @@ def manage_move_objects_to_top(self, REQUEST, ids=None):
102106
manage_tabs_message=message)
103107

104108
@security.protected(manage_properties)
109+
@zpublish
105110
def manage_move_objects_to_bottom(self, REQUEST, ids=None):
106111
""" Move specified sub-objects to bottom of container.
107112
"""
@@ -118,6 +123,7 @@ def manage_move_objects_to_bottom(self, REQUEST, ids=None):
118123
manage_tabs_message=message)
119124

120125
@security.protected(manage_properties)
126+
@zpublish
121127
def manage_set_default_sorting(self, REQUEST, key, reverse):
122128
""" Set default sorting key and direction."""
123129
self.setDefaultSorting(key, reverse)
@@ -237,6 +243,7 @@ def setDefaultSorting(self, key, reverse):
237243
self._default_sort_key = key
238244
self._default_sort_reverse = reverse and 1 or 0
239245

246+
@zpublish
240247
def manage_renameObject(self, id, new_id, REQUEST=None):
241248
""" Rename a particular sub-object without changing its position.
242249
"""

src/OFS/SimpleItem.py

-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ def tpValues(self):
200200

201201
_manage_editedDialog = DTMLFile('dtml/editedDialog', globals())
202202

203-
@zpublish
204203
def manage_editedDialog(self, REQUEST, **args):
205204
return self._manage_editedDialog(self, REQUEST, **args)
206205

src/OFS/owner.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
from AccessControl.owner import ownableFilter
2222
from AccessControl.Permissions import take_ownership
2323
from AccessControl.Permissions import view_management_screens
24-
from AccessControl.requestmethod import requestmethod
2524
from AccessControl.SecurityInfo import ClassSecurityInfo
2625
from AccessControl.SecurityManagement import getSecurityManager
2726
from AccessControl.unauthorized import Unauthorized
2827
from Acquisition import aq_get
2928
from Acquisition import aq_parent
3029
from App.special_dtml import DTMLFile
30+
from ZPublisher import zpublish
3131

3232

3333
class Owned(BaseOwned):
@@ -47,7 +47,7 @@ class Owned(BaseOwned):
4747
manage_owner = DTMLFile('dtml/owner', globals())
4848

4949
@security.protected(take_ownership)
50-
@requestmethod('POST')
50+
@zpublish(methods='POST')
5151
def manage_takeOwnership(self, REQUEST, RESPONSE, recursive=0):
5252
"""Take ownership (responsibility) for an object.
5353
@@ -68,7 +68,7 @@ def manage_takeOwnership(self, REQUEST, RESPONSE, recursive=0):
6868
RESPONSE.redirect(REQUEST['HTTP_REFERER'])
6969

7070
@security.protected(take_ownership)
71-
@requestmethod('POST')
71+
@zpublish(methods='POST')
7272
def manage_changeOwnershipType(
7373
self,
7474
explicit=1,

src/OFS/role.py

+10-7
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
from AccessControl.rolemanager import reqattr
2626
from App.special_dtml import DTMLFile
2727
from zExceptions import BadRequest
28+
from ZPublisher import zpublish
2829

2930

3031
class RoleManager(BaseRoleManager):
@@ -47,7 +48,7 @@ class RoleManager(BaseRoleManager):
4748
)
4849

4950
@security.protected(change_permissions)
50-
@requestmethod('POST')
51+
@zpublish(methods='POST')
5152
def manage_role(self, role_to_manage, permissions=[], REQUEST=None):
5253
"""Change the permissions given to the given role.
5354
"""
@@ -64,7 +65,7 @@ def manage_role(self, role_to_manage, permissions=[], REQUEST=None):
6465
)
6566

6667
@security.protected(change_permissions)
67-
@requestmethod('POST')
68+
@zpublish(methods='POST')
6869
def manage_acquiredPermissions(self, permissions=[], REQUEST=None):
6970
"""Change the permissions that acquire.
7071
"""
@@ -81,7 +82,7 @@ def manage_acquiredPermissions(self, permissions=[], REQUEST=None):
8182
)
8283

8384
@security.protected(change_permissions)
84-
@requestmethod('POST')
85+
@zpublish(methods='POST')
8586
def manage_permission(
8687
self,
8788
permission_to_manage,
@@ -107,12 +108,13 @@ def manage_permission(
107108
)
108109

109110
@security.protected(change_permissions)
111+
@zpublish
110112
def manage_access(self, REQUEST, **kw):
111113
"""Return an interface for making permissions settings."""
112114
return self._normal_manage_access(**kw)
113115

114116
@security.protected(change_permissions)
115-
@requestmethod('POST')
117+
@zpublish(methods='POST')
116118
def manage_changePermissions(self, REQUEST):
117119
"""Change all permissions settings, called by management screen."""
118120
valid_roles = self.valid_roles()
@@ -158,7 +160,7 @@ def manage_changePermissions(self, REQUEST):
158160
)
159161

160162
@security.protected(change_permissions)
161-
@requestmethod('POST')
163+
@zpublish(methods='POST')
162164
def manage_addLocalRoles(self, userid, roles, REQUEST=None):
163165
"""Set local roles for a user."""
164166
BaseRoleManager.manage_addLocalRoles(self, userid, roles)
@@ -167,7 +169,7 @@ def manage_addLocalRoles(self, userid, roles, REQUEST=None):
167169
return self.manage_listLocalRoles(self, REQUEST, stat=stat)
168170

169171
@security.protected(change_permissions)
170-
@requestmethod('POST')
172+
@zpublish(methods='POST')
171173
def manage_setLocalRoles(self, userid, roles=[], REQUEST=None):
172174
"""Set local roles for a user."""
173175
if roles:
@@ -179,7 +181,7 @@ def manage_setLocalRoles(self, userid, roles=[], REQUEST=None):
179181
return self.manage_listLocalRoles(self, REQUEST, stat=stat)
180182

181183
@security.protected(change_permissions)
182-
@requestmethod('POST')
184+
@zpublish(methods='POST')
183185
def manage_delLocalRoles(self, userids, REQUEST=None):
184186
"""Remove all local roles for a user."""
185187
BaseRoleManager.manage_delLocalRoles(self, userids)
@@ -188,6 +190,7 @@ def manage_delLocalRoles(self, userids, REQUEST=None):
188190
return self.manage_listLocalRoles(self, REQUEST, stat=stat)
189191

190192
@security.protected(change_permissions)
193+
@zpublish
191194
def manage_defined_roles(self, submit=None, REQUEST=None):
192195
"""Called by management screen."""
193196
if submit == 'Add Role':

src/OFS/userfolder.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from OFS.role import RoleManager
3333
from OFS.SimpleItem import Item
3434
from zExceptions import BadRequest
35+
from ZPublisher import zpublish
3536

3637

3738
class BasicUserFolder(
@@ -54,7 +55,7 @@ class BasicUserFolder(
5455
) + RoleManager.manage_options + Item.manage_options)
5556

5657
@security.protected(ManageUsers)
57-
@requestmethod('POST')
58+
@zpublish(methods='POST')
5859
def userFolderAddUser(self, name, password, roles, domains,
5960
REQUEST=None, **kw):
6061
"""API method for creating a new user object. Note that not all
@@ -65,7 +66,7 @@ def userFolderAddUser(self, name, password, roles, domains,
6566
raise NotImplementedError
6667

6768
@security.protected(ManageUsers)
68-
@requestmethod('POST')
69+
@zpublish(methods='POST')
6970
def userFolderEditUser(
7071
self,
7172
name,
@@ -83,7 +84,7 @@ def userFolderEditUser(
8384
raise NotImplementedError
8485

8586
@security.protected(ManageUsers)
86-
@requestmethod('POST')
87+
@zpublish(methods='POST')
8788
def userFolderDelUsers(self, names, REQUEST=None):
8889
"""API method for deleting one or more user objects. Note that not
8990
all user folder implementations support deletion of user objects."""
@@ -101,6 +102,7 @@ def userFolderDelUsers(self, names, REQUEST=None):
101102

102103
_userFolderProperties = DTMLFile('dtml/userFolderProps', globals())
103104

105+
@zpublish
104106
def manage_userFolderProperties(
105107
self,
106108
REQUEST=None,
@@ -115,7 +117,7 @@ def manage_userFolderProperties(
115117
management_view='Properties',
116118
)
117119

118-
@requestmethod('POST')
120+
@zpublish(methods='POST')
119121
def manage_setUserFolderProperties(
120122
self,
121123
encrypt_passwords=0,
@@ -214,6 +216,7 @@ def _delUsers(self, names, REQUEST=None):
214216
return self._mainUser(self, REQUEST)
215217

216218
@security.protected(ManageUsers)
219+
@zpublish
217220
def manage_users(self, submit=None, REQUEST=None, RESPONSE=None):
218221
"""This method handles operations on users for the web based forms
219222
of the ZMI. Application code (code that is outside of the forms

0 commit comments

Comments
 (0)