Skip to content

Commit

Permalink
Merge branch 'master' into remove-deprecations
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Howitz committed Sep 28, 2020
2 parents 1a3e1d7 + beb3161 commit 25744a0
Show file tree
Hide file tree
Showing 8 changed files with 130 additions and 59 deletions.
7 changes: 6 additions & 1 deletion CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,16 @@ For changes before version 3.0, see ``HISTORY.rst``.
----------------

- Remove deprecated classes and functions in
(`#32 <https://github.com/zopefoundation/AccessControl/issues/32>`_):
(see `#32 <https://github.com/zopefoundation/AccessControl/issues/32>`_):

+ ``AccessControl/DTML.py``
+ ``AccessControl/Owned.py``
+ ``AccessControl/Permissions.py``

- Add deprecation warnings for BBB imports in:

+ ``AccessControl/AuthEncoding.py``
+ ``AccessControl/Owned.py``
+ ``AccessControl/Role.py``
+ ``AccessControl/User.py``

Expand Down
49 changes: 32 additions & 17 deletions src/AccessControl/AuthEncoding.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,37 @@

from __future__ import absolute_import

# BBB
from AuthEncoding.AuthEncoding import MySQLDigestScheme # NOQA
from AuthEncoding.AuthEncoding import PasswordEncryptionScheme
from AuthEncoding.AuthEncoding import SHADigestScheme
from AuthEncoding.AuthEncoding import SSHADigestScheme
from AuthEncoding.AuthEncoding import constant_time_compare
from AuthEncoding.AuthEncoding import is_encrypted
from AuthEncoding.AuthEncoding import listSchemes
from AuthEncoding.AuthEncoding import pw_encode
from AuthEncoding.AuthEncoding import pw_encrypt
from AuthEncoding.AuthEncoding import pw_validate
from AuthEncoding.AuthEncoding import registerScheme
import AuthEncoding.AuthEncoding
from zope.deferredimport import deprecated


# Bogosity on various platforms due to ITAR restrictions
try:
from AuthEncoding.AuthEncoding import CryptDigestScheme # NOQA
except ImportError:
pass
deprecated(
"The functionality of AccessControl.AuthEncoding has moved to"
" AuthEncoding.AuthEncoding. Please import from there."
" This backward compatibility shim will be removed in AccessControl"
" version 6.",
MySQLDigestScheme='AuthEncoding.AuthEncoding:MySQLDigestScheme',
PasswordEncryptionScheme='AuthEncoding.AuthEncoding:PasswordEncryptionScheme', # noqa
SHADigestScheme='AuthEncoding.AuthEncoding:SHADigestScheme',
SSHADigestScheme='AuthEncoding.AuthEncoding:SSHADigestScheme',
constant_time_compare='AuthEncoding.AuthEncoding:constant_time_compare',
is_encrypted='AuthEncoding.AuthEncoding:is_encrypted',
listSchemes='AuthEncoding.AuthEncoding:listSchemes',
pw_encode='AuthEncoding.AuthEncoding:pw_encode',
pw_encrypt='AuthEncoding.AuthEncoding:pw_encrypt',
pw_validate='AuthEncoding.AuthEncoding:pw_validate',
registerScheme='AuthEncoding.AuthEncoding:registerScheme',
)

# Bogosity on various platforms due to ITAR restrictions.
# We need to import the module anyway to check for the presence of
# restrictions, but do want to silence the ImportError.

if hasattr(AuthEncoding.AuthEncoding, 'CryptDigestScheme'):
deprecated(
"The functionality of AccessControl.AuthEncoding has moved to"
" AuthEncoding.AuthEncoding. Please import from there."
" This backward compatibility shim will be removed in AccessControl"
" version 6.",
CryptDigestScheme='AuthEncoding.AuthEncoding:CryptDigestScheme',
)
30 changes: 23 additions & 7 deletions src/AccessControl/Owned.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,26 @@
"""Support for owned objects
"""

# BBB
from AccessControl.owner import EditUnowned
from AccessControl.owner import EmergencyUserCannotOwn
from AccessControl.owner import UnownableOwner
from AccessControl.owner import absattr
from AccessControl.owner import ownableFilter
from AccessControl.owner import ownerInfo
from zope.deferredimport import deprecated


deprecated(
"The functionality of AccessControl.Owned has moved to"
" AccessControl.owner. Please import from there."
" This backward compatibility shim will be removed in AccessControl"
" version 6.",
EditUnowned='AccessControl.owner:EditUnowned',
EmergencyUserCannotOwn='AccessControl.owner:EmergencyUserCannotOwn',
UnownableOwner='AccessControl.owner:UnownableOwner',
absattr='AccessControl.owner:absattr',
ownableFilter='AccessControl.owner:ownableFilter',
ownerInfo='AccessControl.owner:ownerInfo',
)

deprecated(
"The Owned class has moved to OFS.owner. This compatibility "
"shim will be removed in AccessControl version 5. Please "
"depend on Zope2 and import from OFS.owner or use the "
"new minimal Owned class from AccessControl.owner.",
Owned='OFS.owner:Owned',
)
39 changes: 28 additions & 11 deletions src/AccessControl/Role.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,31 @@
"""Access control support
"""

# BBB
from AccessControl.rolemanager import DEFAULTMAXLISTUSERS
from AccessControl.rolemanager import _isBeingUsedAsAMethod
from AccessControl.rolemanager import _isNotBeingUsedAsAMethod
from AccessControl.rolemanager import class_attrs
from AccessControl.rolemanager import class_dict
from AccessControl.rolemanager import classattr
from AccessControl.rolemanager import gather_permissions
from AccessControl.rolemanager import instance_attrs
from AccessControl.rolemanager import instance_dict
from AccessControl.rolemanager import reqattr
from zope.deferredimport import deprecated


deprecated(
"The functionality of AccessControl.Role has moved to"
" AccessControl.rolemanager. Please import from there."
" This backward compatibility shim will be removed in AccessControl"
" version 6.",
DEFAULTMAXLISTUSERS='AccessControl.rolemanager:DEFAULTMAXLISTUSERS',
_isBeingUsedAsAMethod='AccessControl.rolemanager:_isBeingUsedAsAMethod',
_isNotBeingUsedAsAMethod='AccessControl.rolemanager:_isNotBeingUsedAsAMethod', # noqa
class_attrs='AccessControl.rolemanager:class_attrs',
class_dict='AccessControl.rolemanager:class_dict',
classattr='AccessControl.rolemanager:classattr',
gather_permissions='AccessControl.rolemanager:gather_permissions',
instance_attrs='AccessControl.rolemanager:instance_attrs',
instance_dict='AccessControl.rolemanager:instance_dict',
reqattr='AccessControl.rolemanager:reqattr',
)

deprecated(
"RoleManager has moved to OFS.role. Please "
"depend on Zope and import from OFS.role or use the new minimal "
"RoleManager class from AccessControl.rolemanager. "
"This backward compatibility shim will be removed in AccessControl "
"version 5.",
RoleManager='OFS.role:RoleManager',
)
54 changes: 35 additions & 19 deletions src/AccessControl/User.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,40 @@
"""Access control package.
"""

# BBB
from AccessControl.users import BasicUser
from AccessControl.users import NullUnrestrictedUser
from AccessControl.users import SimpleUser
from AccessControl.users import SpecialUser
from AccessControl.users import UnrestrictedUser as Super
from AccessControl.users import User
from AccessControl.users import _remote_user_mode
from AccessControl.users import absattr
from AccessControl.users import addr_match
from AccessControl.users import domainSpecMatch
from AccessControl.users import emergency_user
from AccessControl.users import host_match
from AccessControl.users import nobody
from AccessControl.users import readUserAccessFile
from AccessControl.users import reqattr
from AccessControl.users import rolejoin
from AccessControl.users import system
from zope.deferredimport import deprecated


from AccessControl.users import UnrestrictedUser # noqa isort:skip
deprecated(
"The functionality of AccessControl.User has moved to"
" AccessControl.users. Please import from there."
" This backward compatibility shim will be removed in AccessControl"
" version 6.",
BasicUser='AccessControl.users:BasicUser',
NullUnrestrictedUser='AccessControl.users:NullUnrestrictedUser',
SimpleUser='AccessControl.users:SimpleUser',
SpecialUser='AccessControl.users:SpecialUser',
Super='AccessControl.users:UnrestrictedUser',
UnrestrictedUser='AccessControl.users:UnrestrictedUser',
User='AccessControl.users:User',
_remote_user_mode='AccessControl.users:_remote_user_mode',
absattr='AccessControl.users:absattr',
addr_match='AccessControl.users:addr_match',
domainSpecMatch='AccessControl.users:domainSpecMatch',
emergency_user='AccessControl.users:emergency_user',
host_match='AccessControl.users:host_match',
nobody='AccessControl.users:nobody',
readUserAccessFile='AccessControl.users:readUserAccessFile',
reqattr='AccessControl.users:reqattr',
rolejoin='AccessControl.users:rolejoin',
system='AccessControl.users:system',
)

deprecated(
"The standard Zope user folder implementation has moved to "
"OFS.userfolder. Please depend on Zope2 and import from "
"OFS.userfolder or use the new minimal "
"user folder classes from AccessControl.userfolder.",
BasicUserFolder='OFS.userfolder:BasicUserFolder',
manage_addUserFolder='OFS.userfolder:manage_addUserFolder',
UserFolder='OFS.userfolder:UserFolder',
)
4 changes: 2 additions & 2 deletions src/AccessControl/tests/test_userfolder.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ def user_names(self):

def test__doAddUser_with_not_yet_encrypted_passwords(self):
# See collector #1869 && #1926
from AccessControl.AuthEncoding import pw_validate
from AuthEncoding.AuthEncoding import pw_validate

USER_ID = 'not_yet_encrypted'
PASSWORD = 'password'
Expand All @@ -164,7 +164,7 @@ def test__doAddUser_with_not_yet_encrypted_passwords(self):

def test__doAddUser_with_preencrypted_passwords(self):
# See collector #1869 && #1926
from AccessControl.AuthEncoding import pw_validate
from AuthEncoding.AuthEncoding import pw_validate

USER_ID = 'already_encrypted'
PASSWORD = 'password'
Expand Down
2 changes: 1 addition & 1 deletion src/AccessControl/userfolder.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@
from Acquisition import Implicit
from Acquisition import aq_base
from Acquisition import aq_parent
from AuthEncoding import AuthEncoding
from Persistence import Persistent
from Persistence import PersistentMapping
from zExceptions import BadRequest
from zExceptions import Unauthorized
from zope.interface import implementer

from AccessControl import AuthEncoding
from AccessControl import ClassSecurityInfo
from AccessControl.class_init import InitializeClass
from AccessControl.interfaces import IStandardUserFolder
Expand Down
4 changes: 3 additions & 1 deletion src/AccessControl/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,18 @@
"""Access control package.
"""

from __future__ import absolute_import

import os
import re
import socket

from Acquisition import Implicit
from Acquisition import aq_inContextOf
from AuthEncoding import AuthEncoding
from Persistence import Persistent
from zope.interface import implementer

from AccessControl import AuthEncoding
from AccessControl import SpecialUsers
from AccessControl.interfaces import IUser
from AccessControl.PermissionRole import _what_not_even_god_should_do
Expand Down

0 comments on commit 25744a0

Please sign in to comment.