AccessControl 7.3__tar.gz → 7.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {accesscontrol-7.3 → accesscontrol-7.4}/.manylinux-install.sh +12 -5
- {accesscontrol-7.3 → accesscontrol-7.4}/.manylinux.sh +2 -2
- {accesscontrol-7.3 → accesscontrol-7.4}/.pre-commit-config.yaml +5 -4
- {accesscontrol-7.3 → accesscontrol-7.4}/CHANGES.rst +18 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/CONTRIBUTING.md +2 -2
- {accesscontrol-7.3 → accesscontrol-7.4}/MANIFEST.in +2 -2
- accesscontrol-7.4/PKG-INFO +431 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/pyproject.toml +13 -6
- {accesscontrol-7.3 → accesscontrol-7.4}/setup.cfg +0 -3
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/ImplPython.py +18 -6
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/cAccessControl.c +79 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/testZopeGuards.py +57 -0
- accesscontrol-7.4/src/AccessControl.egg-info/PKG-INFO +431 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/tox.ini +6 -4
- accesscontrol-7.3/PKG-INFO +0 -68
- accesscontrol-7.3/src/AccessControl.egg-info/PKG-INFO +0 -68
- {accesscontrol-7.3 → accesscontrol-7.4}/COPYRIGHT.txt +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/HISTORY.rst +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/LICENSE.txt +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/README.rst +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/buildout.cfg +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/docs/AccessControl.rst +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/docs/requestmethod.rst +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/include/Acquisition/Acquisition.h +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/include/ExtensionClass/ExtensionClass.h +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/include/ExtensionClass/_compat.h +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/setup.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/AuthEncoding.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/ImplC.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/Implementation.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/Owned.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/Permission.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/PermissionMapping.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/PermissionRole.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/Permissions.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/Role.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/SecurityInfo.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/SecurityManagement.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/SecurityManager.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/SimpleObjectPolicies.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/SpecialUsers.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/User.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/ZopeGuards.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/ZopeSecurityPolicy.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/__init__.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/_compat.h +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/class_init.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/configure.zcml +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/interfaces.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/logger_wrapper.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/meta.zcml +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/metaconfigure.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/owner.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/permissions.zcml +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/requestmethod.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/rolemanager.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/safe_formatter.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/security.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tainted.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/__init__.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/actual_python.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/mixed_module/__init__.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/mixed_module/submodule/__init__.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/private_module/__init__.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/private_module/submodule/__init__.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/public_module/__init__.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/public_module/submodule/__init__.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/testClassSecurityInfo.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/testImplementation.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/testModuleSecurity.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/testPermissionMapping.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/testPermissionRole.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/testSecurityManager.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/testZCML.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/testZopeSecurityPolicy.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/test_owner.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/test_requestmethod.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/test_rolemanager.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/test_safe_formatter.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/test_safeiter.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/test_tainted.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/test_userfolder.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/tests/test_users.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/unauthorized.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/userfolder.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl/users.py +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl.egg-info/SOURCES.txt +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl.egg-info/dependency_links.txt +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl.egg-info/entry_points.txt +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl.egg-info/requires.txt +0 -0
- {accesscontrol-7.3 → accesscontrol-7.4}/src/AccessControl.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# Generated from:
|
|
3
|
-
# https://github.com/zopefoundation/meta/tree/master/
|
|
2
|
+
# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
|
|
3
|
+
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/c-code
|
|
4
4
|
|
|
5
5
|
set -e -x
|
|
6
6
|
|
|
@@ -33,6 +33,7 @@ tox_env_map() {
|
|
|
33
33
|
*"cp312"*) echo 'py312';;
|
|
34
34
|
*"cp313"*) echo 'py313';;
|
|
35
35
|
*"cp314"*) echo 'py314';;
|
|
36
|
+
*"cp315"*) echo 'py315';;
|
|
36
37
|
*) echo 'py';;
|
|
37
38
|
esac
|
|
38
39
|
}
|
|
@@ -44,9 +45,15 @@ for PYBIN in /opt/python/*/bin; do
|
|
|
44
45
|
[[ "${PYBIN}" == *"cp311/"* ]] || \
|
|
45
46
|
[[ "${PYBIN}" == *"cp312/"* ]] || \
|
|
46
47
|
[[ "${PYBIN}" == *"cp313/"* ]] || \
|
|
47
|
-
[[ "${PYBIN}" == *"cp314/"* ]]
|
|
48
|
-
|
|
49
|
-
"${PYBIN}
|
|
48
|
+
[[ "${PYBIN}" == *"cp314/"* ]] || \
|
|
49
|
+
[[ "${PYBIN}" == *"cp315/"* ]] ; then
|
|
50
|
+
if [[ "${PYBIN}" == *"cp315/"* ]] ; then
|
|
51
|
+
"${PYBIN}/pip" install --pre -e /io/
|
|
52
|
+
"${PYBIN}/pip" wheel /io/ --pre -w wheelhouse/
|
|
53
|
+
else
|
|
54
|
+
"${PYBIN}/pip" install -e /io/
|
|
55
|
+
"${PYBIN}/pip" wheel /io/ -w wheelhouse/
|
|
56
|
+
fi
|
|
50
57
|
if [ `uname -m` == 'aarch64' ]; then
|
|
51
58
|
cd /io/
|
|
52
59
|
${PYBIN}/pip install tox
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# Generated from:
|
|
3
|
-
# https://github.com/zopefoundation/meta/tree/master/
|
|
2
|
+
# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
|
|
3
|
+
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/c-code
|
|
4
4
|
|
|
5
5
|
set -e -x
|
|
6
6
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# Generated from:
|
|
2
|
-
# https://github.com/zopefoundation/meta/tree/master/
|
|
1
|
+
# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
|
|
2
|
+
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/c-code
|
|
3
3
|
minimum_pre_commit_version: '3.6'
|
|
4
4
|
repos:
|
|
5
5
|
- repo: https://github.com/pycqa/isort
|
|
6
|
-
rev: "
|
|
6
|
+
rev: "8.0.1"
|
|
7
7
|
hooks:
|
|
8
8
|
- id: isort
|
|
9
9
|
- repo: https://github.com/hhatto/autopep8
|
|
@@ -12,7 +12,7 @@ repos:
|
|
|
12
12
|
- id: autopep8
|
|
13
13
|
args: [--in-place, --aggressive, --aggressive]
|
|
14
14
|
- repo: https://github.com/asottile/pyupgrade
|
|
15
|
-
rev: v3.21.
|
|
15
|
+
rev: v3.21.2
|
|
16
16
|
hooks:
|
|
17
17
|
- id: pyupgrade
|
|
18
18
|
args: [--py310-plus]
|
|
@@ -20,6 +20,7 @@ repos:
|
|
|
20
20
|
rev: 0.4.3
|
|
21
21
|
hooks:
|
|
22
22
|
- id: teyit
|
|
23
|
+
language_version: python3.13
|
|
23
24
|
- repo: https://github.com/PyCQA/flake8
|
|
24
25
|
rev: "7.3.0"
|
|
25
26
|
hooks:
|
|
@@ -4,6 +4,24 @@ Change log
|
|
|
4
4
|
For changes before version 3.0, see ``HISTORY.rst``.
|
|
5
5
|
|
|
6
6
|
|
|
7
|
+
7.4 (2026-07-13)
|
|
8
|
+
----------------
|
|
9
|
+
|
|
10
|
+
- Fix a parity defect between the Python and C implementations of
|
|
11
|
+
``guarded_getattr``: the pure-Python implementation keyed the container
|
|
12
|
+
assertion on ``type(value.__self__)`` instead of ``type(inst)``, so under
|
|
13
|
+
``PURE_PYTHON`` a bound method of an allow-listed simple type (e.g.
|
|
14
|
+
``tuple``/``bytes``/``range``) was returned without calling ``validate()``.
|
|
15
|
+
The Python implementation now keys on ``type(inst)``, matching the C
|
|
16
|
+
implementation, and a regression test guards the behaviour.
|
|
17
|
+
|
|
18
|
+
- Add preliminary support for Python 3.15 as of 3.15b1.
|
|
19
|
+
|
|
20
|
+
- Add support for automatically building and publishing Windows/ARM64 wheels.
|
|
21
|
+
|
|
22
|
+
- Add support for automatically building and publishing source distributions.
|
|
23
|
+
|
|
24
|
+
|
|
7
25
|
7.3 (2025-11-16)
|
|
8
26
|
----------------
|
|
9
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
Generated from:
|
|
3
|
-
https://github.com/zopefoundation/meta/tree/master/
|
|
2
|
+
Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
|
|
3
|
+
https://github.com/zopefoundation/meta/tree/master/src/zope/meta/c-code
|
|
4
4
|
-->
|
|
5
5
|
# Contributing to zopefoundation projects
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# Generated from:
|
|
2
|
-
# https://github.com/zopefoundation/meta/tree/master/
|
|
1
|
+
# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
|
|
2
|
+
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/c-code
|
|
3
3
|
include *.md
|
|
4
4
|
include *.rst
|
|
5
5
|
include *.txt
|
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: AccessControl
|
|
3
|
+
Version: 7.4
|
|
4
|
+
Summary: Security framework for Zope
|
|
5
|
+
Author-email: Zope Foundation and contributors <zope-dev@zope.dev>
|
|
6
|
+
Maintainer-email: Plone Foundation and contributors <zope-dev@zope.dev>
|
|
7
|
+
License-Expression: ZPL-2.1
|
|
8
|
+
Project-URL: Issues, https://github.com/zopefoundation/AccessControl/issues
|
|
9
|
+
Project-URL: Source, https://github.com/zopefoundation/AccessControl
|
|
10
|
+
Project-URL: Changelog, https://github.com/zopefoundation/AccessControl/blob/master/CHANGES.rst
|
|
11
|
+
Keywords: security,access,authorization
|
|
12
|
+
Classifier: Development Status :: 6 - Mature
|
|
13
|
+
Classifier: Environment :: Web Environment
|
|
14
|
+
Classifier: Framework :: Zope
|
|
15
|
+
Classifier: Framework :: Zope :: 5
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
25
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
26
|
+
Requires-Python: >=3.10
|
|
27
|
+
Description-Content-Type: text/x-rst
|
|
28
|
+
License-File: LICENSE.txt
|
|
29
|
+
Requires-Dist: Acquisition
|
|
30
|
+
Requires-Dist: AuthEncoding
|
|
31
|
+
Requires-Dist: BTrees
|
|
32
|
+
Requires-Dist: DateTime
|
|
33
|
+
Requires-Dist: ExtensionClass
|
|
34
|
+
Requires-Dist: Persistence
|
|
35
|
+
Requires-Dist: RestrictedPython
|
|
36
|
+
Requires-Dist: transaction
|
|
37
|
+
Requires-Dist: zExceptions
|
|
38
|
+
Requires-Dist: zope.component
|
|
39
|
+
Requires-Dist: zope.configuration
|
|
40
|
+
Requires-Dist: zope.deferredimport
|
|
41
|
+
Requires-Dist: zope.interface
|
|
42
|
+
Requires-Dist: zope.publisher
|
|
43
|
+
Requires-Dist: zope.schema
|
|
44
|
+
Requires-Dist: zope.security
|
|
45
|
+
Requires-Dist: zope.testing
|
|
46
|
+
Provides-Extra: test
|
|
47
|
+
Requires-Dist: zope.testrunner>=6.4; extra == "test"
|
|
48
|
+
Dynamic: license-file
|
|
49
|
+
|
|
50
|
+
.. image:: https://github.com/zopefoundation/AccessControl/actions/workflows/tests.yml/badge.svg
|
|
51
|
+
:target: https://github.com/zopefoundation/AccessControl/actions/workflows/tests.yml
|
|
52
|
+
|
|
53
|
+
.. image:: https://coveralls.io/repos/github/zopefoundation/AccessControl/badge.svg?branch=master
|
|
54
|
+
:target: https://coveralls.io/github/zopefoundation/AccessControl?branch=master
|
|
55
|
+
|
|
56
|
+
.. image:: https://img.shields.io/pypi/v/AccessControl.svg
|
|
57
|
+
:target: https://pypi.org/project/AccessControl/
|
|
58
|
+
:alt: Current version on PyPI
|
|
59
|
+
|
|
60
|
+
.. image:: https://img.shields.io/pypi/pyversions/AccessControl.svg
|
|
61
|
+
:target: https://pypi.org/project/AccessControl/
|
|
62
|
+
:alt: Supported Python versions
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
AccessControl
|
|
66
|
+
=============
|
|
67
|
+
|
|
68
|
+
AccessControl provides a general security framework for use in Zope.
|
|
69
|
+
|
|
70
|
+
Change log
|
|
71
|
+
==========
|
|
72
|
+
|
|
73
|
+
For changes before version 3.0, see ``HISTORY.rst``.
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
7.4 (2026-07-13)
|
|
77
|
+
----------------
|
|
78
|
+
|
|
79
|
+
- Fix a parity defect between the Python and C implementations of
|
|
80
|
+
``guarded_getattr``: the pure-Python implementation keyed the container
|
|
81
|
+
assertion on ``type(value.__self__)`` instead of ``type(inst)``, so under
|
|
82
|
+
``PURE_PYTHON`` a bound method of an allow-listed simple type (e.g.
|
|
83
|
+
``tuple``/``bytes``/``range``) was returned without calling ``validate()``.
|
|
84
|
+
The Python implementation now keys on ``type(inst)``, matching the C
|
|
85
|
+
implementation, and a regression test guards the behaviour.
|
|
86
|
+
|
|
87
|
+
- Add preliminary support for Python 3.15 as of 3.15b1.
|
|
88
|
+
|
|
89
|
+
- Add support for automatically building and publishing Windows/ARM64 wheels.
|
|
90
|
+
|
|
91
|
+
- Add support for automatically building and publishing source distributions.
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
7.3 (2025-11-16)
|
|
95
|
+
----------------
|
|
96
|
+
|
|
97
|
+
- Move all supported package metadata into ``pyproject.toml``.
|
|
98
|
+
|
|
99
|
+
- Add support for Python 3.14.
|
|
100
|
+
|
|
101
|
+
- Drop support for Python 3.8 and 3.9.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
7.2 (2024-11-03)
|
|
105
|
+
----------------
|
|
106
|
+
|
|
107
|
+
- Prevent untrusted access to ``AccessControl.userfolder.UserFolder.data``
|
|
108
|
+
(fixes `GHSA-g5vw-3h65-2q3v <https://github.com/zopefoundation/AccessControl/security/advisories/GHSA-g5vw-3h65-2q3v>`_).
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
7.1 (2024-10-10)
|
|
112
|
+
----------------
|
|
113
|
+
|
|
114
|
+
- Add final support for Python 3.13.
|
|
115
|
+
|
|
116
|
+
- Respect ``PURE_PYTHON`` environment variable set to ``0`` when running tests.
|
|
117
|
+
|
|
118
|
+
- Let the roles access in ``rolesForPermissionOn`` interpret ``AttributeError``
|
|
119
|
+
and ``Unauthorized`` as "no roles definition for this permission at this
|
|
120
|
+
object" and report any other exception (for the Python and C implementation).
|
|
121
|
+
We have to treat ``Unauthorized`` like ``AttributeError`` to support
|
|
122
|
+
``Shared.DC.Scripts.Bindings.UnauthorizedBinding`` which raises
|
|
123
|
+
``Unauthorized`` for any access.
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
7.0 (2024-05-30)
|
|
127
|
+
----------------
|
|
128
|
+
|
|
129
|
+
- Add preliminary support for Python 3.13 as of 3.13b1.
|
|
130
|
+
|
|
131
|
+
- Remove support for Python 3.7.
|
|
132
|
+
|
|
133
|
+
- Build Windows wheels on GHA.
|
|
134
|
+
|
|
135
|
+
- Make dict views (`.keys()`, `.items()` and `.values()`) behave like their
|
|
136
|
+
unrestricted versions.
|
|
137
|
+
(`#147 <https://github.com/zopefoundation/AccessControl/pull/147>`_)
|
|
138
|
+
|
|
139
|
+
- Make `.items()` validate each keys and values, like `.keys()` and
|
|
140
|
+
`.values()` do.
|
|
141
|
+
|
|
142
|
+
- Fix build errors on recent macOS versions.
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
6.3 (2023-11-20)
|
|
146
|
+
----------------
|
|
147
|
+
|
|
148
|
+
- Add support for Python 3.12.
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
6.2 (2023-09-04)
|
|
152
|
+
----------------
|
|
153
|
+
|
|
154
|
+
- Fix information disclosure through ``str.format_map``.
|
|
155
|
+
(CVE-2023-41050)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
6.1 (2023-05-22)
|
|
159
|
+
----------------
|
|
160
|
+
- Update C header files for ``ExtensionClass`` and ``Acquisition``
|
|
161
|
+
from the original packages where needed.
|
|
162
|
+
(`#140 <https://github.com/zopefoundation/AccessControl/issues/140>`_)
|
|
163
|
+
|
|
164
|
+
- Add preliminary support for Python 3.12a5.
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
6.0 (2023-01-12)
|
|
168
|
+
----------------
|
|
169
|
+
|
|
170
|
+
- Build Linux binary wheels for Python 3.11
|
|
171
|
+
|
|
172
|
+
- Drop support for Python 2.7, 3.5, 3.6.
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
5.7 (2022-11-17)
|
|
176
|
+
----------------
|
|
177
|
+
|
|
178
|
+
- Add support for building arm64 wheels on macOS.
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
5.6 (2022-11-03)
|
|
182
|
+
----------------
|
|
183
|
+
|
|
184
|
+
- Add support for final Python 3.11 release.
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
5.5 (2022-10-10)
|
|
188
|
+
----------------
|
|
189
|
+
|
|
190
|
+
- Switch from ``-Ofast`` to ``-O3`` when compiling code for Linux wheels.
|
|
191
|
+
(`#133 <https://github.com/zopefoundation/AccessControl/pull/133>`_)
|
|
192
|
+
|
|
193
|
+
- Add support for Python 3.11 (as of 3.11.0rc2).
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
5.4 (2022-08-26)
|
|
197
|
+
----------------
|
|
198
|
+
|
|
199
|
+
- Add support for Python 3.11 (as of 3.11.0b5).
|
|
200
|
+
|
|
201
|
+
- Support ``default`` argument in ``next`` built-in function.
|
|
202
|
+
(`#131 <https://github.com/zopefoundation/AccessControl/pull/131>`_)
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
5.3.1 (2022-03-29)
|
|
206
|
+
------------------
|
|
207
|
+
|
|
208
|
+
- Prevent race condition in guarded_import
|
|
209
|
+
(`#123 <https://github.com/zopefoundation/AccessControl/issues/123>`_)
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
5.3 (2022-02-25)
|
|
213
|
+
----------------
|
|
214
|
+
|
|
215
|
+
- Provide ``AccessControl.get_safe_globals`` to facilitate safe use.
|
|
216
|
+
|
|
217
|
+
- Honor ``PURE_PYTHON`` environment variable to enable python implementation
|
|
218
|
+
during runtime.
|
|
219
|
+
|
|
220
|
+
- Add support for Python 3.10.
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
5.2 (2021-07-30)
|
|
224
|
+
----------------
|
|
225
|
+
|
|
226
|
+
- Fix Appveyor configuration so tests can run and wheels build.
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
5.1 (2021-07-30)
|
|
230
|
+
----------------
|
|
231
|
+
NOTE: This release has been yanked from PyPI due to wheel build issues.
|
|
232
|
+
|
|
233
|
+
- Fix a remote code execution issue by preventing access to
|
|
234
|
+
``string.Formatter`` from restricted code.
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
5.0 (2020-10-07)
|
|
238
|
+
----------------
|
|
239
|
+
|
|
240
|
+
- Add support for Python 3.9.
|
|
241
|
+
|
|
242
|
+
- Remove deprecated classes and functions in
|
|
243
|
+
(see `#32 <https://github.com/zopefoundation/AccessControl/issues/32>`_):
|
|
244
|
+
|
|
245
|
+
+ ``AccessControl/DTML.py``
|
|
246
|
+
+ ``AccessControl/Owned.py``
|
|
247
|
+
+ ``AccessControl/Role.py``
|
|
248
|
+
+ ``AccessControl/Permissions.py``
|
|
249
|
+
|
|
250
|
+
- Add deprecation warnings for BBB imports in:
|
|
251
|
+
|
|
252
|
+
+ ``AccessControl/AuthEncoding.py``
|
|
253
|
+
+ ``AccessControl/Owned.py``
|
|
254
|
+
+ ``AccessControl/Role.py``
|
|
255
|
+
+ ``AccessControl/User.py``
|
|
256
|
+
|
|
257
|
+
- Although this version might run on Zope 4, it is no longer supported because
|
|
258
|
+
of the dropped deprecation warnings.
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
4.2 (2020-04-20)
|
|
262
|
+
----------------
|
|
263
|
+
|
|
264
|
+
- Add missing permission ``Manage WebDAV Locks``
|
|
265
|
+
|
|
266
|
+
- Fix regression for BBB import of ```users.UnrestrictedUser``
|
|
267
|
+
(`#94 <https://github.com/zopefoundation/AccessControl/issues/94>`_)
|
|
268
|
+
|
|
269
|
+
- Add a check if database is present in ``.owner.ownerInfo``.
|
|
270
|
+
(`#91 <https://github.com/zopefoundation/AccessControl/issues/91>`_).
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
4.1 (2019-09-02)
|
|
274
|
+
----------------
|
|
275
|
+
|
|
276
|
+
- Python 3: Allow iteration over the result of ``dict.{keys,values,items}``
|
|
277
|
+
(`#89 <https://github.com/zopefoundation/AccessControl/issues/89>`_).
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
4.0 (2019-05-08)
|
|
281
|
+
----------------
|
|
282
|
+
|
|
283
|
+
Changes since 3.0.12:
|
|
284
|
+
|
|
285
|
+
- Add support for Python 3.5, 3.6, 3.7 and 3.8.
|
|
286
|
+
|
|
287
|
+
- Restore simple access to bytes methods in Python 3
|
|
288
|
+
(`#83 <https://github.com/zopefoundation/AccessControl/issues/83>`_)
|
|
289
|
+
|
|
290
|
+
- Clarify deprecation warnings for several BBB shims.
|
|
291
|
+
(`#32 <https://github.com/zopefoundation/AccessControl/issues/32>`_)
|
|
292
|
+
|
|
293
|
+
- Add a test to prove that a user folder flag cannot be acquired elsewhere.
|
|
294
|
+
(`#7 <https://github.com/zopefoundation/AccessControl/issues/7>`_)
|
|
295
|
+
|
|
296
|
+
- Tighten basic auth string handling in ``BasicUserFolder.identify``
|
|
297
|
+
(`#56 <https://github.com/zopefoundation/AccessControl/issues/56>`_)
|
|
298
|
+
|
|
299
|
+
- Prevent the Zope 4 ZMI from showing an add dialog for the user folder.
|
|
300
|
+
(`#82 <https://github.com/zopefoundation/AccessControl/issues/82>`_)
|
|
301
|
+
|
|
302
|
+
- Fix order of roles returned by
|
|
303
|
+
``AccessControl.rolemanager.RoleManager.userdefined_roles``.
|
|
304
|
+
|
|
305
|
+
- Add configuration for `zodbupdate`.
|
|
306
|
+
|
|
307
|
+
- Add ``TaintedBytes`` besides ``TaintedString`` in ``AccessControl.tainted``.
|
|
308
|
+
(`#57 <https://github.com/zopefoundation/AccessControl/issues/57>`_)
|
|
309
|
+
|
|
310
|
+
- Security fix: In ``str.format``, check the security for attributes that are
|
|
311
|
+
accessed. (Ported from 2.13).
|
|
312
|
+
|
|
313
|
+
- Port ``override_container`` context manager here from 2.13.
|
|
314
|
+
|
|
315
|
+
- Add AppVeyor configuration to automate building Windows eggs.
|
|
316
|
+
|
|
317
|
+
- Fix for compilers that only support C89 syntax (e.g. on Windows).
|
|
318
|
+
|
|
319
|
+
- Sanitize and test `RoleManager` role handling.
|
|
320
|
+
|
|
321
|
+
- Depend on RestrictedPython >= 4.0.
|
|
322
|
+
|
|
323
|
+
- #16: Fixed permission handling by avoiding column and row numbers as
|
|
324
|
+
identifiers for permissions and roles.
|
|
325
|
+
|
|
326
|
+
- Extract ``.AuthEncoding`` to its own package for reuse.
|
|
327
|
+
|
|
328
|
+
- Declare missing dependency on BTrees.
|
|
329
|
+
|
|
330
|
+
- Drop `Record` dependency, which now does its own security declaration.
|
|
331
|
+
|
|
332
|
+
- Remove leftovers from history support dropped in Zope.
|
|
333
|
+
|
|
334
|
+
- Remove duplicate guard against * imports.
|
|
335
|
+
(`#60 <https://github.com/zopefoundation/AccessControl/issues/60>`_)
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
3.0.12 (2015-12-21)
|
|
339
|
+
-------------------
|
|
340
|
+
|
|
341
|
+
- Avoid acquiring ``access`` from module wrapped by
|
|
342
|
+
``SecurityInfo._ModuleSecurityInfo``. See:
|
|
343
|
+
https://github.com/zopefoundation/AccessControl/issues/12
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
3.0.11 (2014-11-02)
|
|
347
|
+
-------------------
|
|
348
|
+
|
|
349
|
+
- Harden test fix for machines that do not define `localhost`.
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
3.0.10 (2014-11-02)
|
|
353
|
+
-------------------
|
|
354
|
+
|
|
355
|
+
- Test fix for machines that do not define `localhost`.
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
3.0.9 (2014-08-08)
|
|
359
|
+
------------------
|
|
360
|
+
|
|
361
|
+
- GitHub #6: Do not pass SecurityInfo instance itself to declarePublic/declarePrivate
|
|
362
|
+
when using the public/private decorator. This fixes ``Conflicting security declarations``
|
|
363
|
+
warnings on Zope startup.
|
|
364
|
+
|
|
365
|
+
- LP #1248529: Leave existing security manager in place inside
|
|
366
|
+
``RoleManager.manage_getUserRolesAndPermissions``.
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
3.0.8 (2013-07-16)
|
|
370
|
+
------------------
|
|
371
|
+
|
|
372
|
+
- LP #1169923: ensure initialization of shared ``ImplPython`` state
|
|
373
|
+
(used by ``ImplC``) when using the "C" security policy. Thanks to
|
|
374
|
+
Arnaud Fontaine for the patch.
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
3.0.7 (2013-05-14)
|
|
378
|
+
------------------
|
|
379
|
+
|
|
380
|
+
- Remove long-deprecated 'Shared' roles support (pre-dates Zope, never
|
|
381
|
+
used by Zope itself)
|
|
382
|
+
|
|
383
|
+
- Prevent infinite loop when looking up local roles in an acquisition chain
|
|
384
|
+
with cycles.
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
3.0.6 (2012-10-31)
|
|
388
|
+
------------------
|
|
389
|
+
|
|
390
|
+
- LP #1071067: Use a stronger random number generator and a constant time
|
|
391
|
+
comparison function.
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
3.0.5 (2012-10-21)
|
|
395
|
+
------------------
|
|
396
|
+
|
|
397
|
+
- LP #966101: Recognize special `zope2.Private` permission in ZCML
|
|
398
|
+
role directive.
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
3.0.4 (2012-09-09)
|
|
402
|
+
------------------
|
|
403
|
+
|
|
404
|
+
- LP #1047318: Tighten import restrictions for restricted code.
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
3.0.3 (2012-08-23)
|
|
408
|
+
------------------
|
|
409
|
+
|
|
410
|
+
- Fix a bug in ZopeSecurityPolicy.py. Global variable `rolesForPermissionOn`
|
|
411
|
+
could be overridden if `__role__` had custom rolesForPermissionOn.
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
3.0.2 (2012-06-22)
|
|
415
|
+
------------------
|
|
416
|
+
|
|
417
|
+
- Add Anonymous as a default role for Public permission.
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
3.0.1 (2012-05-24)
|
|
421
|
+
------------------
|
|
422
|
+
|
|
423
|
+
- Fix tests under Python 2.6.
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
3.0 (2012-05-12)
|
|
427
|
+
----------------
|
|
428
|
+
|
|
429
|
+
- Added decorators for public, private and protected security declarations.
|
|
430
|
+
|
|
431
|
+
- Update tests to take advantage of automatic test suite discovery.
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
# https://github.com/zopefoundation/meta/tree/master/config/c-code
|
|
4
|
-
|
|
1
|
+
# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
|
|
2
|
+
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/c-code
|
|
5
3
|
[build-system]
|
|
6
4
|
requires = [
|
|
7
5
|
"setuptools",
|
|
@@ -11,10 +9,10 @@ build-backend = "setuptools.build_meta"
|
|
|
11
9
|
|
|
12
10
|
[project]
|
|
13
11
|
name = "AccessControl"
|
|
14
|
-
version = "7.
|
|
12
|
+
version = "7.4"
|
|
15
13
|
description = "Security framework for Zope"
|
|
16
14
|
keywords = ["security", "access", "authorization"]
|
|
17
|
-
|
|
15
|
+
dynamic = ["readme"]
|
|
18
16
|
requires-python = ">=3.10"
|
|
19
17
|
license = "ZPL-2.1"
|
|
20
18
|
authors = [
|
|
@@ -102,3 +100,12 @@ source = [
|
|
|
102
100
|
".tox/*/lib/python*/site-packages/",
|
|
103
101
|
".tox/pypy*/site-packages/",
|
|
104
102
|
]
|
|
103
|
+
|
|
104
|
+
[tool.setuptools.dynamic]
|
|
105
|
+
readme = {file = ["README.rst", "CHANGES.rst"]}
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
[tool.zest-releaser]
|
|
110
|
+
create-wheel = false
|
|
111
|
+
upload-pypi = false
|
|
@@ -724,6 +724,16 @@ def guarded_getattr(inst, name, default=_marker):
|
|
|
724
724
|
if name[:1] == '_':
|
|
725
725
|
raise Unauthorized(name)
|
|
726
726
|
|
|
727
|
+
if name in ('format', 'format_map'):
|
|
728
|
+
if isinstance(inst, str):
|
|
729
|
+
from AccessControl.safe_formatter import safe_format
|
|
730
|
+
from AccessControl.safe_formatter import safe_format_map
|
|
731
|
+
if name == 'format':
|
|
732
|
+
return safe_format(inst, name)
|
|
733
|
+
return safe_format_map(inst, name)
|
|
734
|
+
if isinstance(inst, type) and issubclass(inst, str):
|
|
735
|
+
raise Unauthorized(name)
|
|
736
|
+
|
|
727
737
|
# Try to get the attribute normally so that unusual
|
|
728
738
|
# exceptions are caught early.
|
|
729
739
|
try:
|
|
@@ -733,12 +743,14 @@ def guarded_getattr(inst, name, default=_marker):
|
|
|
733
743
|
return default
|
|
734
744
|
raise
|
|
735
745
|
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
746
|
+
# The container assertion must be keyed on the type of the accessed
|
|
747
|
+
# object, to match the C implementation (see ``cAccessControl.c``, which
|
|
748
|
+
# uses ``Containers(type(inst))``). Keying on ``type(v.__self__)``
|
|
749
|
+
# instead let a bound method whose ``__self__`` is an allow-listed simple
|
|
750
|
+
# type (e.g. ``tuple``, ``bytes``, ``range``) take the truthy-assertion
|
|
751
|
+
# short-circuit and be returned without calling ``validate()`` -- a
|
|
752
|
+
# divergence from the C engine.
|
|
753
|
+
assertion = Containers(type(inst))
|
|
742
754
|
|
|
743
755
|
if isinstance(assertion, dict):
|
|
744
756
|
# We got a table that lets us reason about individual
|