Skip to content

Commit

Permalink
Use @implementer class decorator.
Browse files Browse the repository at this point in the history
  • Loading branch information
hannosch committed Sep 13, 2016
1 parent d8f2523 commit 62bb888
Show file tree
Hide file tree
Showing 10 changed files with 32 additions and 37 deletions.
1 change: 1 addition & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ For changes before version 3.0, see ``HISTORY.rst``.
4.0 (unreleased)
----------------

- Use `@implementer` class decorator.

4.0a3 (2016-08-05)
------------------
Expand Down
7 changes: 3 additions & 4 deletions src/AccessControl/ImplPython.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from Acquisition import aq_inContextOf
from Acquisition import aq_parent
from ExtensionClass import Base
from zope.interface import implements
from zope.interface import implementer

# This is used when a permission maps explicitly to no permission. We
# try and get this from cAccessControl first to make sure that if both
Expand Down Expand Up @@ -188,10 +188,9 @@ def __len__(self):
#
from AccessControl.ZopeSecurityPolicy import getRoles # XXX

@implementer(ISecurityPolicy)
class ZopeSecurityPolicy:

implements(ISecurityPolicy)

def __init__(self, ownerous=1, authenticated=1, verbose=0):
"""Create a Zope security policy.
Expand Down Expand Up @@ -510,11 +509,11 @@ def setDefaultBehaviors(ownerous, authenticated, verbose):
setDefaultBehaviors(True, True, False)


@implementer(ISecurityManager)
class SecurityManager:
"""A security manager provides methods for checking access and managing
executable context and policies
"""
implements(ISecurityManager)
__allow_access_to_unprotected_subobjects__ = {
'validate': 1, 'checkPermission': 1,
'getUser': 1, 'calledByExecutable': 1
Expand Down
5 changes: 2 additions & 3 deletions src/AccessControl/PermissionMapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,17 @@

from Acquisition import ImplicitAcquisitionWrapper
from ExtensionClass import Base
from zope.interface import implements
from zope.interface import implementer

from AccessControl.class_init import InitializeClass
from AccessControl.interfaces import IPermissionMappingSupport
from AccessControl.owner import UnownableOwner
from AccessControl.Permission import pname
from AccessControl.requestmethod import requestmethod

@implementer(IPermissionMappingSupport)
class RoleManager:

implements(IPermissionMappingSupport)

# XXX: No security declarations?

def manage_getPermissionMapping(self):
Expand Down
5 changes: 2 additions & 3 deletions src/AccessControl/owner.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from Acquisition import aq_inner
from Acquisition import aq_parent
from ExtensionClass import Base
from zope.interface import implements
from zope.interface import implementer

from AccessControl.class_init import InitializeClass
from AccessControl.interfaces import IOwned
Expand All @@ -40,10 +40,9 @@ def ownableFilter(self):
_mark=ownableFilter


@implementer(IOwned)
class Owned(Base):

implements(IOwned)

security = ClassSecurityInfo()
security.setPermissionDefault(take_ownership, ('Owner', ))

Expand Down
5 changes: 2 additions & 3 deletions src/AccessControl/rolemanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from Acquisition import aq_base
from Acquisition import aq_get
from ExtensionClass import Base
from zope.interface import implements
from zope.interface import implementer

from AccessControl import ClassSecurityInfo
from AccessControl.class_init import InitializeClass
Expand All @@ -45,10 +45,9 @@ def _string_hash(s):
return urlsafe_b64encode(str(s.__hash__()))


@implementer(IRoleManager)
class RoleManager(Base, RoleManager):
"""An object that has configurable permissions"""

implements(IRoleManager)
permissionMappingPossibleValues=Acquired
security = ClassSecurityInfo()

Expand Down
10 changes: 5 additions & 5 deletions src/AccessControl/security.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
from zope.component.zcml import utility
from zope.configuration.config import GroupingContextDecorator
from zope.configuration.interfaces import IConfigurationContext
from zope.interface import classProvides
from zope.interface import implements
from zope.interface import implementer
from zope.interface import Interface
from zope.interface import provider
from zope.schema import ASCIILine
from zope.security.checker import CheckerPublic
from zope.security.interfaces import IInteraction
Expand Down Expand Up @@ -87,14 +87,14 @@ def checkPermission(permission, object, interaction=None):
return False


@implementer(IInteraction)
@provider(ISecurityPolicy)
class SecurityPolicy(ParanoidSecurityPolicy):
"""Security policy that bridges between zope.security security mechanisms
and Zope 2's security policy.
Don't let the name of the base class fool you... This really just
delegates to Zope 2's security manager."""
classProvides(ISecurityPolicy)
implements(IInteraction)

def checkPermission(self, permission, object):
return checkPermission(permission, object)
Expand Down Expand Up @@ -168,8 +168,8 @@ def protectClass(klass, permission_id):
security.declareObjectProtected(perm)


@implementer(IConfigurationContext, IPermissionDirective)
class PermissionDirective(GroupingContextDecorator):
implements(IConfigurationContext, IPermissionDirective)

def __init__(self, context, id, title, description=''):
self.context = context
Expand Down
22 changes: 11 additions & 11 deletions src/AccessControl/tests/testZCML.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"""Test security induced by ZCML
"""

from zope.interface import implements
from zope.interface import implementer
from zope.interface import Interface
from zope.schema import TextLine
from AccessControl.SecurityInfo import ClassSecurityInfo
Expand All @@ -34,8 +34,8 @@ def foo():
"""
"""

class Dummy1:
implements(IDummy)
@implementer(IDummy)
class Dummy1(object):
def foo(self): pass
def bar(self): pass
def baz(self): pass
Expand All @@ -53,14 +53,14 @@ class Dummy2(Dummy1):
class IDummy3(Interface):
attr = TextLine(title=u"Attribute")

class Dummy3:
implements(IDummy3)
@implementer(IDummy3)
class Dummy3(object):
attr = None

class Dummy4:
class Dummy4(object):
foo = None

class Dummy5:
class Dummy5(object):
pass

def test_security_equivalence():
Expand Down Expand Up @@ -217,10 +217,10 @@ def test_set_warnings():
... warned.extend(list(trapped))
>>> len(warned)
2
>>> str(warned[0].message)
'The set_schema option...'
>>> str(warned[1].message)
'The set_attribute option...'
>>> str(warned[0].message).startswith('The set_schema option')
True
>>> str(warned[1].message).startswith('The set_attribute option')
True
>>> tearDown()
"""

Expand Down
4 changes: 2 additions & 2 deletions src/AccessControl/tests/test_requestmethod.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@
#
##############################################################################

from zope.interface import implements
from zope.interface import implementer
from zope.publisher.interfaces.browser import IBrowserRequest


@implementer(IBrowserRequest)
class DummyRequest:
implements(IBrowserRequest)

def __init__(self, method):
self.method = method
Expand Down
5 changes: 2 additions & 3 deletions src/AccessControl/userfolder.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
from Persistence import PersistentMapping
from zExceptions import BadRequest
from zExceptions import Unauthorized
from zope.interface import implements
from zope.interface import implementer

from AccessControl import AuthEncoding
from AccessControl import ClassSecurityInfo
Expand Down Expand Up @@ -358,6 +358,7 @@ def domainAuthModeEnabled(self):
InitializeClass(BasicUserFolder)


@implementer(IStandardUserFolder)
class UserFolder(BasicUserFolder):
"""Standard UserFolder object
Expand All @@ -366,8 +367,6 @@ class UserFolder(BasicUserFolder):
UserFolders function chiefly to control access by authenticating
users and binding them to a collection of roles."""

implements(IStandardUserFolder)

meta_type = 'User Folder'
id = 'acl_users'
title = 'User Folder'
Expand Down
5 changes: 2 additions & 3 deletions src/AccessControl/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
from Acquisition import aq_parent
from Acquisition import Implicit
from Persistence import Persistent
from zope.interface import implements
from zope.interface import implementer

from AccessControl import AuthEncoding
from AccessControl import SpecialUsers
Expand All @@ -33,12 +33,11 @@
_marker=[]


@implementer(IUser)
class BasicUser(Implicit):

"""Base class for all User objects"""

implements(IUser)

# ----------------------------
# Public User object interface
# ----------------------------
Expand Down

0 comments on commit 62bb888

Please sign in to comment.