AccessControl 7.1__tar.gz → 7.3__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.
Files changed (94) hide show
  1. {accesscontrol-7.1 → accesscontrol-7.3}/.manylinux-install.sh +7 -6
  2. {accesscontrol-7.1 → accesscontrol-7.3}/.pre-commit-config.yaml +5 -5
  3. {accesscontrol-7.1 → accesscontrol-7.3}/CHANGES.rst +32 -2
  4. {accesscontrol-7.1 → accesscontrol-7.3}/CONTRIBUTING.md +1 -1
  5. accesscontrol-7.3/PKG-INFO +68 -0
  6. accesscontrol-7.3/pyproject.toml +104 -0
  7. accesscontrol-7.3/setup.py +32 -0
  8. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/SecurityInfo.py +1 -1
  9. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/userfolder.py +1 -0
  10. accesscontrol-7.3/src/AccessControl.egg-info/PKG-INFO +68 -0
  11. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl.egg-info/SOURCES.txt +0 -1
  12. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl.egg-info/requires.txt +4 -4
  13. {accesscontrol-7.1 → accesscontrol-7.3}/tox.ini +6 -5
  14. accesscontrol-7.1/PKG-INFO +0 -384
  15. accesscontrol-7.1/pyproject.toml +0 -25
  16. accesscontrol-7.1/setup.py +0 -103
  17. accesscontrol-7.1/src/AccessControl.egg-info/PKG-INFO +0 -384
  18. accesscontrol-7.1/src/AccessControl.egg-info/not-zip-safe +0 -1
  19. {accesscontrol-7.1 → accesscontrol-7.3}/.manylinux.sh +0 -0
  20. {accesscontrol-7.1 → accesscontrol-7.3}/COPYRIGHT.txt +0 -0
  21. {accesscontrol-7.1 → accesscontrol-7.3}/HISTORY.rst +0 -0
  22. {accesscontrol-7.1 → accesscontrol-7.3}/LICENSE.txt +0 -0
  23. {accesscontrol-7.1 → accesscontrol-7.3}/MANIFEST.in +0 -0
  24. {accesscontrol-7.1 → accesscontrol-7.3}/README.rst +0 -0
  25. {accesscontrol-7.1 → accesscontrol-7.3}/buildout.cfg +0 -0
  26. {accesscontrol-7.1 → accesscontrol-7.3}/docs/AccessControl.rst +0 -0
  27. {accesscontrol-7.1 → accesscontrol-7.3}/docs/requestmethod.rst +0 -0
  28. {accesscontrol-7.1 → accesscontrol-7.3}/include/Acquisition/Acquisition.h +0 -0
  29. {accesscontrol-7.1 → accesscontrol-7.3}/include/ExtensionClass/ExtensionClass.h +0 -0
  30. {accesscontrol-7.1 → accesscontrol-7.3}/include/ExtensionClass/_compat.h +0 -0
  31. {accesscontrol-7.1 → accesscontrol-7.3}/setup.cfg +0 -0
  32. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/AuthEncoding.py +0 -0
  33. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/ImplC.py +0 -0
  34. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/ImplPython.py +0 -0
  35. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/Implementation.py +0 -0
  36. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/Owned.py +0 -0
  37. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/Permission.py +0 -0
  38. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/PermissionMapping.py +0 -0
  39. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/PermissionRole.py +0 -0
  40. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/Permissions.py +0 -0
  41. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/Role.py +0 -0
  42. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/SecurityManagement.py +0 -0
  43. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/SecurityManager.py +0 -0
  44. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/SimpleObjectPolicies.py +0 -0
  45. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/SpecialUsers.py +0 -0
  46. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/User.py +0 -0
  47. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/ZopeGuards.py +0 -0
  48. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/ZopeSecurityPolicy.py +0 -0
  49. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/__init__.py +0 -0
  50. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/_compat.h +0 -0
  51. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/cAccessControl.c +0 -0
  52. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/class_init.py +0 -0
  53. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/configure.zcml +0 -0
  54. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/interfaces.py +0 -0
  55. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/logger_wrapper.py +0 -0
  56. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/meta.zcml +0 -0
  57. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/metaconfigure.py +0 -0
  58. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/owner.py +0 -0
  59. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/permissions.zcml +0 -0
  60. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/requestmethod.py +0 -0
  61. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/rolemanager.py +0 -0
  62. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/safe_formatter.py +0 -0
  63. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/security.py +0 -0
  64. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tainted.py +0 -0
  65. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/__init__.py +0 -0
  66. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/actual_python.py +0 -0
  67. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/mixed_module/__init__.py +0 -0
  68. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/mixed_module/submodule/__init__.py +0 -0
  69. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/private_module/__init__.py +0 -0
  70. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/private_module/submodule/__init__.py +0 -0
  71. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/public_module/__init__.py +0 -0
  72. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/public_module/submodule/__init__.py +0 -0
  73. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/testClassSecurityInfo.py +0 -0
  74. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/testImplementation.py +0 -0
  75. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/testModuleSecurity.py +0 -0
  76. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/testPermissionMapping.py +0 -0
  77. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/testPermissionRole.py +0 -0
  78. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/testSecurityManager.py +0 -0
  79. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/testZCML.py +0 -0
  80. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/testZopeGuards.py +0 -0
  81. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/testZopeSecurityPolicy.py +0 -0
  82. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/test_owner.py +0 -0
  83. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/test_requestmethod.py +0 -0
  84. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/test_rolemanager.py +0 -0
  85. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/test_safe_formatter.py +0 -0
  86. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/test_safeiter.py +0 -0
  87. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/test_tainted.py +0 -0
  88. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/test_userfolder.py +0 -0
  89. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/tests/test_users.py +0 -0
  90. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/unauthorized.py +0 -0
  91. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl/users.py +0 -0
  92. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl.egg-info/dependency_links.txt +0 -0
  93. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl.egg-info/entry_points.txt +0 -0
  94. {accesscontrol-7.1 → accesscontrol-7.3}/src/AccessControl.egg-info/top_level.txt +0 -0
@@ -28,12 +28,11 @@ yum -y install libffi-devel
28
28
 
29
29
  tox_env_map() {
30
30
  case $1 in
31
- *"cp38"*) echo 'py38';;
32
- *"cp39"*) echo 'py39';;
33
31
  *"cp310"*) echo 'py310';;
34
32
  *"cp311"*) echo 'py311';;
35
33
  *"cp312"*) echo 'py312';;
36
34
  *"cp313"*) echo 'py313';;
35
+ *"cp314"*) echo 'py314';;
37
36
  *) echo 'py';;
38
37
  esac
39
38
  }
@@ -41,12 +40,11 @@ tox_env_map() {
41
40
  # Compile wheels
42
41
  for PYBIN in /opt/python/*/bin; do
43
42
  if \
44
- [[ "${PYBIN}" == *"cp38/"* ]] || \
45
- [[ "${PYBIN}" == *"cp39/"* ]] || \
46
43
  [[ "${PYBIN}" == *"cp310/"* ]] || \
47
44
  [[ "${PYBIN}" == *"cp311/"* ]] || \
48
45
  [[ "${PYBIN}" == *"cp312/"* ]] || \
49
- [[ "${PYBIN}" == *"cp313/"* ]] ; then
46
+ [[ "${PYBIN}" == *"cp313/"* ]] || \
47
+ [[ "${PYBIN}" == *"cp314/"* ]] ; then
50
48
  "${PYBIN}/pip" install -e /io/
51
49
  "${PYBIN}/pip" wheel /io/ -w wheelhouse/
52
50
  if [ `uname -m` == 'aarch64' ]; then
@@ -60,7 +58,10 @@ for PYBIN in /opt/python/*/bin; do
60
58
  fi
61
59
  done
62
60
 
61
+ # Show what wheels we have
62
+ echo "Fixing up the following wheels:"
63
+ ls -l wheelhouse/accesscontrol*.whl
63
64
  # Bundle external shared libraries into the wheels
64
- for whl in wheelhouse/AccessControl*.whl; do
65
+ for whl in wheelhouse/accesscontrol*.whl; do
65
66
  auditwheel repair "$whl" -w /io/wheelhouse/
66
67
  done
@@ -3,25 +3,25 @@
3
3
  minimum_pre_commit_version: '3.6'
4
4
  repos:
5
5
  - repo: https://github.com/pycqa/isort
6
- rev: "5.13.2"
6
+ rev: "7.0.0"
7
7
  hooks:
8
8
  - id: isort
9
9
  - repo: https://github.com/hhatto/autopep8
10
- rev: "v2.3.1"
10
+ rev: "v2.3.2"
11
11
  hooks:
12
12
  - id: autopep8
13
13
  args: [--in-place, --aggressive, --aggressive]
14
14
  - repo: https://github.com/asottile/pyupgrade
15
- rev: v3.17.0
15
+ rev: v3.21.0
16
16
  hooks:
17
17
  - id: pyupgrade
18
- args: [--py38-plus]
18
+ args: [--py310-plus]
19
19
  - repo: https://github.com/isidentical/teyit
20
20
  rev: 0.4.3
21
21
  hooks:
22
22
  - id: teyit
23
23
  - repo: https://github.com/PyCQA/flake8
24
- rev: "7.1.1"
24
+ rev: "7.3.0"
25
25
  hooks:
26
26
  - id: flake8
27
27
  additional_dependencies:
@@ -1,8 +1,26 @@
1
- Changelog
2
- =========
1
+ Change log
2
+ ==========
3
3
 
4
4
  For changes before version 3.0, see ``HISTORY.rst``.
5
5
 
6
+
7
+ 7.3 (2025-11-16)
8
+ ----------------
9
+
10
+ - Move all supported package metadata into ``pyproject.toml``.
11
+
12
+ - Add support for Python 3.14.
13
+
14
+ - Drop support for Python 3.8 and 3.9.
15
+
16
+
17
+ 7.2 (2024-11-03)
18
+ ----------------
19
+
20
+ - Prevent untrusted access to ``AccessControl.userfolder.UserFolder.data``
21
+ (fixes `GHSA-g5vw-3h65-2q3v <https://github.com/zopefoundation/AccessControl/security/advisories/GHSA-g5vw-3h65-2q3v>`_).
22
+
23
+
6
24
  7.1 (2024-10-10)
7
25
  ----------------
8
26
 
@@ -237,16 +255,19 @@ Changes since 3.0.12:
237
255
  ``SecurityInfo._ModuleSecurityInfo``. See:
238
256
  https://github.com/zopefoundation/AccessControl/issues/12
239
257
 
258
+
240
259
  3.0.11 (2014-11-02)
241
260
  -------------------
242
261
 
243
262
  - Harden test fix for machines that do not define `localhost`.
244
263
 
264
+
245
265
  3.0.10 (2014-11-02)
246
266
  -------------------
247
267
 
248
268
  - Test fix for machines that do not define `localhost`.
249
269
 
270
+
250
271
  3.0.9 (2014-08-08)
251
272
  ------------------
252
273
 
@@ -257,6 +278,7 @@ Changes since 3.0.12:
257
278
  - LP #1248529: Leave existing security manager in place inside
258
279
  ``RoleManager.manage_getUserRolesAndPermissions``.
259
280
 
281
+
260
282
  3.0.8 (2013-07-16)
261
283
  ------------------
262
284
 
@@ -264,6 +286,7 @@ Changes since 3.0.12:
264
286
  (used by ``ImplC``) when using the "C" security policy. Thanks to
265
287
  Arnaud Fontaine for the patch.
266
288
 
289
+
267
290
  3.0.7 (2013-05-14)
268
291
  ------------------
269
292
 
@@ -273,39 +296,46 @@ Changes since 3.0.12:
273
296
  - Prevent infinite loop when looking up local roles in an acquisition chain
274
297
  with cycles.
275
298
 
299
+
276
300
  3.0.6 (2012-10-31)
277
301
  ------------------
278
302
 
279
303
  - LP #1071067: Use a stronger random number generator and a constant time
280
304
  comparison function.
281
305
 
306
+
282
307
  3.0.5 (2012-10-21)
283
308
  ------------------
284
309
 
285
310
  - LP #966101: Recognize special `zope2.Private` permission in ZCML
286
311
  role directive.
287
312
 
313
+
288
314
  3.0.4 (2012-09-09)
289
315
  ------------------
290
316
 
291
317
  - LP #1047318: Tighten import restrictions for restricted code.
292
318
 
319
+
293
320
  3.0.3 (2012-08-23)
294
321
  ------------------
295
322
 
296
323
  - Fix a bug in ZopeSecurityPolicy.py. Global variable `rolesForPermissionOn`
297
324
  could be overridden if `__role__` had custom rolesForPermissionOn.
298
325
 
326
+
299
327
  3.0.2 (2012-06-22)
300
328
  ------------------
301
329
 
302
330
  - Add Anonymous as a default role for Public permission.
303
331
 
332
+
304
333
  3.0.1 (2012-05-24)
305
334
  ------------------
306
335
 
307
336
  - Fix tests under Python 2.6.
308
337
 
338
+
309
339
  3.0 (2012-05-12)
310
340
  ----------------
311
341
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  Generated from:
3
3
  https://github.com/zopefoundation/meta/tree/master/config/c-code
4
- -->
4
+ -->
5
5
  # Contributing to zopefoundation projects
6
6
 
7
7
  The projects under the zopefoundation GitHub organization are open source and
@@ -0,0 +1,68 @@
1
+ Metadata-Version: 2.4
2
+ Name: AccessControl
3
+ Version: 7.3
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.
@@ -0,0 +1,104 @@
1
+ #
2
+ # Generated from:
3
+ # https://github.com/zopefoundation/meta/tree/master/config/c-code
4
+
5
+ [build-system]
6
+ requires = [
7
+ "setuptools",
8
+ "wheel",
9
+ ]
10
+ build-backend = "setuptools.build_meta"
11
+
12
+ [project]
13
+ name = "AccessControl"
14
+ version = "7.3"
15
+ description = "Security framework for Zope"
16
+ keywords = ["security", "access", "authorization"]
17
+ readme = "README.rst"
18
+ requires-python = ">=3.10"
19
+ license = "ZPL-2.1"
20
+ authors = [
21
+ { name = "Zope Foundation and contributors", email = "zope-dev@zope.dev" },
22
+ ]
23
+ maintainers = [
24
+ { name = "Plone Foundation and contributors", email = "zope-dev@zope.dev" },
25
+ ]
26
+ classifiers = [
27
+ "Development Status :: 6 - Mature",
28
+ "Environment :: Web Environment",
29
+ "Framework :: Zope",
30
+ "Framework :: Zope :: 5",
31
+ "Operating System :: OS Independent",
32
+ "Programming Language :: Python",
33
+ "Programming Language :: Python :: 3",
34
+ "Programming Language :: Python :: 3 :: Only",
35
+ "Programming Language :: Python :: 3.10",
36
+ "Programming Language :: Python :: 3.11",
37
+ "Programming Language :: Python :: 3.12",
38
+ "Programming Language :: Python :: 3.13",
39
+ "Programming Language :: Python :: 3.14",
40
+ "Programming Language :: Python :: Implementation :: CPython",
41
+ ]
42
+ dependencies = [
43
+ "Acquisition",
44
+ "AuthEncoding",
45
+ "BTrees",
46
+ "DateTime",
47
+ "ExtensionClass",
48
+ "Persistence",
49
+ "RestrictedPython",
50
+ "transaction",
51
+ "zExceptions",
52
+ "zope.component",
53
+ "zope.configuration",
54
+ "zope.deferredimport",
55
+ "zope.interface",
56
+ "zope.publisher",
57
+ "zope.schema",
58
+ "zope.security",
59
+ "zope.testing",
60
+ ]
61
+
62
+ [project.entry-points."zodbupdate.decode"]
63
+ decodes = "AccessControl:zodbupdate_decode_dict"
64
+
65
+ [project.optional-dependencies]
66
+ test = [
67
+ "zope.testrunner >= 6.4",
68
+ ]
69
+
70
+ [project.urls]
71
+ Issues = "https://github.com/zopefoundation/AccessControl/issues"
72
+ Source = "https://github.com/zopefoundation/AccessControl"
73
+ Changelog = "https://github.com/zopefoundation/AccessControl/blob/master/CHANGES.rst"
74
+
75
+ [tool.coverage.run]
76
+ branch = true
77
+ source = ["AccessControl"]
78
+ relative_files = true
79
+
80
+ [tool.coverage.report]
81
+ fail_under = 80
82
+ precision = 2
83
+ ignore_errors = true
84
+ show_missing = true
85
+ exclude_lines = [
86
+ "pragma: no cover",
87
+ "pragma: nocover",
88
+ "except ImportError:",
89
+ "raise NotImplementedError",
90
+ "if __name__ == '__main__':",
91
+ "self.fail",
92
+ "raise AssertionError",
93
+ "raise unittest.Skip",
94
+ ]
95
+
96
+ [tool.coverage.html]
97
+ directory = "parts/htmlcov"
98
+
99
+ [tool.coverage.paths]
100
+ source = [
101
+ "src/",
102
+ ".tox/*/lib/python*/site-packages/",
103
+ ".tox/pypy*/site-packages/",
104
+ ]
@@ -0,0 +1,32 @@
1
+ ##############################################################################
2
+ #
3
+ # Copyright (c) 2010 Zope Foundation and Contributors.
4
+ # All Rights Reserved.
5
+ #
6
+ # This software is subject to the provisions of the Zope Public License,
7
+ # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
8
+ # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
9
+ # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
10
+ # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
11
+ # FOR A PARTICULAR PURPOSE.
12
+ #
13
+ ##############################################################################
14
+
15
+ from os.path import join
16
+
17
+ from setuptools import Extension
18
+ from setuptools import setup
19
+
20
+
21
+ ext_modules = [
22
+ Extension(
23
+ name='AccessControl.cAccessControl',
24
+ include_dirs=['include', 'src'],
25
+ sources=[join('src', 'AccessControl', 'cAccessControl.c')],
26
+ depends=[join('include', 'ExtensionClass', 'ExtensionClass.h'),
27
+ join('include', 'ExtensionClass', '_compat.h'),
28
+ join('include', 'Acquisition', 'Acquisition.h')]),
29
+ ]
30
+
31
+
32
+ setup(ext_modules=ext_modules)
@@ -320,7 +320,7 @@ class _ModuleSecurityInfo(SecurityInfo):
320
320
  def __init__(self, module_name=None):
321
321
  self.names = {}
322
322
  if module_name is not None:
323
- global _moduleSecurity
323
+ global _moduleSecurity # noqa: F824
324
324
  _moduleSecurity[module_name] = self
325
325
 
326
326
  __call____roles__ = ACCESS_PRIVATE
@@ -376,6 +376,7 @@ class UserFolder(BasicUserFolder):
376
376
  zmi_show_add_dialog = False
377
377
  id = 'acl_users'
378
378
  title = 'User Folder'
379
+ data__roles__ = () # prevent untrusted access to ``data``.
379
380
 
380
381
  def __init__(self):
381
382
  self.data = PersistentMapping()
@@ -0,0 +1,68 @@
1
+ Metadata-Version: 2.4
2
+ Name: AccessControl
3
+ Version: 7.3
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.
@@ -59,7 +59,6 @@ src/AccessControl.egg-info/PKG-INFO
59
59
  src/AccessControl.egg-info/SOURCES.txt
60
60
  src/AccessControl.egg-info/dependency_links.txt
61
61
  src/AccessControl.egg-info/entry_points.txt
62
- src/AccessControl.egg-info/not-zip-safe
63
62
  src/AccessControl.egg-info/requires.txt
64
63
  src/AccessControl.egg-info/top_level.txt
65
64
  src/AccessControl/tests/__init__.py
@@ -2,9 +2,9 @@ Acquisition
2
2
  AuthEncoding
3
3
  BTrees
4
4
  DateTime
5
- ExtensionClass>=4.2.1
6
- Persistence>=3.0a3
7
- RestrictedPython>=7.4
5
+ ExtensionClass
6
+ Persistence
7
+ RestrictedPython
8
8
  transaction
9
9
  zExceptions
10
10
  zope.component
@@ -17,4 +17,4 @@ zope.security
17
17
  zope.testing
18
18
 
19
19
  [test]
20
- zope.testrunner
20
+ zope.testrunner>=6.4
@@ -3,18 +3,18 @@
3
3
  [tox]
4
4
  minversion = 4.0
5
5
  envlist =
6
+ release-check
6
7
  lint
7
- py38,py38-pure
8
- py39,py39-pure
9
8
  py310,py310-pure
10
9
  py311,py311-pure
11
10
  py312,py312-pure
12
11
  py313,py313-pure
12
+ py314,py314-pure
13
13
  coverage
14
14
 
15
15
  [testenv]
16
16
  deps =
17
- setuptools <74
17
+ setuptools >= 78.1.1,< 81
18
18
  setenv =
19
19
  pure: PURE_PYTHON=1
20
20
  !pure-!pypy3: PURE_PYTHON=0
@@ -47,7 +47,8 @@ description = ensure that the distribution is ready to release
47
47
  basepython = python3
48
48
  skip_install = true
49
49
  deps =
50
- setuptools <74
50
+ setuptools
51
+ wheel
51
52
  twine
52
53
  build
53
54
  check-manifest
@@ -56,7 +57,7 @@ deps =
56
57
  commands_pre =
57
58
  commands =
58
59
  check-manifest
59
- check-python-versions --only setup.py,tox.ini,.github/workflows/tests.yml
60
+ check-python-versions --only pyproject.toml,setup.py,tox.ini,.github/workflows/tests.yml
60
61
  python -m build --sdist --no-isolation
61
62
  twine check dist/*
62
63