Skip to content
This repository has been archived by the owner on Feb 17, 2023. It is now read-only.

Commit

Permalink
merge trunk into branch (from 29979 to 30223)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dominik Huber committed May 2, 2005
1 parent 8ecb2d1 commit d10b327
Show file tree
Hide file tree
Showing 2 changed files with 162 additions and 0 deletions.
36 changes: 36 additions & 0 deletions _protections.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
#
##############################################################################
"""Register protection information for some standard low-level types
$Id$
"""

def protect():
from zope.security.checker import defineChecker, NamesChecker, NoProxy

# Make sure the message id gets never proxied
from zope.i18n.messageid import MessageID
from zope.i18nmessageid import Message
# TODO because MessageIDs are mutable, this is a security hole. This hole
# is one of the primary reasons for the development of the Message
# replacement. See zope/i18nmessageid/messages.txt.
defineChecker(MessageID, NoProxy)
# this, however, is not a security hole, because Messages are immutable.
defineChecker(Message, NoProxy)

# add __parent__ and __name__ to always available names
import zope.security.checker
for name in ['__name__', '__parent__']:
if name not in zope.security.checker._available_by_default:
zope.security.checker._available_by_default.append(name)
126 changes: 126 additions & 0 deletions _protections.zcml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
<configure
xmlns="http://namespaces.zope.org/zope"
i18n_domain="zope"
>

<!-- ===================================================================== -->

<content class="BTrees.IIBTree.IIBTree">
<allow attributes="__str__ __contains__ __getitem__ __iter__ __len__
byValue get has_key items iteritems iterkeys
itervalues keys maxKey minKey values" />
</content>
<content class="BTrees.IIBTree.IIBucket">
<allow attributes="__contains__ __getitem__ __iter__ __len__ __str__
byValue get has_key items iteritems iterkeys
itervalues keys maxKeyminKey values" />
</content>
<content class="BTrees.IIBTree.IISet">
<allow attributes="__contains__ __iter__ __len__ __str__ has_key insert
keys maxKey minKey" />
</content>
<content class="BTrees.IIBTree.IITreeIterator">
<allow attributes="__iter__ __str__ __getitem__ __len__
__contains__ next" />
</content>

<!-- ===================================================================== -->

<content class="BTrees.IOBTree.IOBTree">
<allow attributes="__str__ __contains__ __getitem__ __iter__ __len__
byValue get has_key items iteritems iterkeys
itervalues keys maxKey minKey values" />
</content>
<content class="BTrees.IOBTree.IOBucket">
<allow attributes="__contains__ __getitem__ __iter__ __len__ __str__
byValue get has_key items iteritems iterkeys
itervalues keys maxKeyminKey values" />
</content>
<content class="BTrees.IOBTree.IOSet">
<allow attributes="__contains__ __iter__ __len__ __str__ has_key insert
keys maxKey minKey" />
</content>
<content class="BTrees.IOBTree.IOTreeIterator">
<allow attributes="__iter__ __str__ __getitem__ __len__
__contains__ next" />
</content>

<!-- ===================================================================== -->

<content class="BTrees.OIBTree.OIBTree">
<allow attributes="__str__ __contains__ __getitem__ __iter__ __len__
byValue get has_key items iteritems iterkeys
itervalues keys maxKey minKey values" />
</content>
<content class="BTrees.OIBTree.OIBucket">
<allow attributes="__contains__ __getitem__ __iter__ __len__ __str__
byValue get has_key items iteritems iterkeys
itervalues keys maxKeyminKey values" />
</content>
<content class="BTrees.OIBTree.OISet">
<allow attributes="__contains__ __iter__ __len__ __str__ has_key insert
keys maxKey minKey" />
</content>
<content class="BTrees.OIBTree.OITreeIterator">
<allow attributes="__iter__ __str__ __getitem__ __len__
__contains__ next" />
</content>

<!-- ===================================================================== -->

<content class="BTrees.OOBTree.OOBTree">
<allow attributes="__str__ __contains__ __getitem__ __iter__ __len__
byValue get has_key items iteritems iterkeys
itervalues keys maxKey minKey values" />
</content>
<content class="BTrees.OOBTree.OOBucket">
<allow attributes="__contains__ __getitem__ __iter__ __len__ __str__
byValue get has_key items iteritems iterkeys
itervalues keys maxKeyminKey values" />
</content>
<content class="BTrees.OOBTree.OOSet">
<allow attributes="__contains__ __iter__ __len__ __str__ has_key insert
keys maxKey minKey" />
</content>
<content class="BTrees.OOBTree.OOTreeIterator">
<allow attributes="__iter__ __str__ __getitem__ __len__
__contains__ next" />
</content>

<!-- ===================================================================== -->

<content class="BTrees.IFBTree.IFBTree">
<allow attributes="__str__ __contains__ __getitem__ __iter__ __len__
byValue get has_key items iteritems iterkeys
itervalues keys maxKey minKey values" />
</content>
<content class="BTrees.IFBTree.IFBucket">
<allow attributes="__contains__ __getitem__ __iter__ __len__ __str__
byValue get has_key items iteritems iterkeys
itervalues keys maxKeyminKey values" />
</content>
<content class="BTrees.IFBTree.IFSet">
<allow attributes="__contains__ __iter__ __len__ __str__ has_key insert
keys maxKey minKey" />
</content>
<content class="BTrees.IFBTree.IFTreeIterator">
<allow attributes="__iter__ __str__ __getitem__ __len__
__contains__ next" />
</content>

<!-- ===================================================================== -->

<content class="persistent.list.PersistentList">
<allow attributes="__getitem__ __getslice__ __len__ __iter__
__contains__ index count" />
</content>
<content class="persistent.dict.PersistentDict">
<allow attributes="__getitem__ __len__ __iter__ get has_key
__copy__ keys values items iterkeys iteritems
itervalues __contains__" />
</content>

<!-- ===================================================================== -->

</configure>

0 comments on commit d10b327

Please sign in to comment.