plain 0.71.0__py3-none-any.whl → 0.72.0__py3-none-any.whl

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.
plain/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # plain changelog
2
2
 
3
+ ## [0.72.0](https://github.com/dropseed/plain/releases/plain@0.72.0) (2025-10-02)
4
+
5
+ ### What's changed
6
+
7
+ - Request attributes `user` and `session` are no longer set directly on the request object ([154ee10](https://github.com/dropseed/plain/commit/154ee10375))
8
+ - Test client now uses `plain.auth.requests.get_request_user()` to retrieve user for response object when available ([154ee10](https://github.com/dropseed/plain/commit/154ee10375))
9
+ - Removed `plain.auth.middleware.AuthenticationMiddleware` from default middleware configuration ([154ee10](https://github.com/dropseed/plain/commit/154ee10375))
10
+
11
+ ### Upgrade instructions
12
+
13
+ - No changes required
14
+
3
15
  ## [0.71.0](https://github.com/dropseed/plain/releases/plain@0.71.0) (2025-09-30)
4
16
 
5
17
  ### What's changed
plain/runtime/README.md CHANGED
@@ -37,7 +37,6 @@ AUTH_LOGIN_URL = "login"
37
37
 
38
38
  MIDDLEWARE = [
39
39
  "plain.sessions.middleware.SessionMiddleware",
40
- "plain.auth.middleware.AuthenticationMiddleware",
41
40
  "plain.admin.AdminMiddleware",
42
41
  ]
43
42
  ```
plain/test/client.py CHANGED
@@ -494,9 +494,13 @@ class Client:
494
494
  response.request = request
495
495
  response.json = partial(self._parse_json, response)
496
496
 
497
- # If the request had a user attached, make it available on the response.
498
- if hasattr(response.wsgi_request, "user"):
499
- response.user = response.wsgi_request.user
497
+ # If the request had a user, make it available on the response.
498
+ try:
499
+ from plain.auth.requests import get_request_user
500
+
501
+ response.user = get_request_user(response.wsgi_request)
502
+ except ImportError:
503
+ pass
500
504
 
501
505
  # Attach the ResolverMatch instance to the response.
502
506
  resolver = get_resolver()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain
3
- Version: 0.71.0
3
+ Version: 0.72.0
4
4
  Summary: A web framework for building products with Python.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-File: LICENSE
@@ -1,5 +1,5 @@
1
1
  plain/AGENTS.md,sha256=As6EFSWWHJ9lYIxb2LMRqNRteH45SRs7a_VFslzF53M,1046
2
- plain/CHANGELOG.md,sha256=JwyNoyCYpzq7iJuIM9DnJVDSAWjdhUKvoHVZFT_tlyQ,21390
2
+ plain/CHANGELOG.md,sha256=BtIi33MSvdQGi1d2UVzC0WSBA1fxMVAGHXaDkTSYLiY,22042
3
3
  plain/README.md,sha256=5BJyKhf0TDanWVbOQyZ3zsi5Lov9xk-LlJYCDWofM6Y,4078
4
4
  plain/__main__.py,sha256=GK39854Lc_LO_JP8DzY9Y2MIQ4cQEl7SXFJy244-lC8,110
5
5
  plain/debug.py,sha256=C2OnFHtRGMrpCiHSt-P2r58JypgQZ62qzDBpV4mhtFM,855
@@ -97,7 +97,7 @@ plain/preflight/registry.py,sha256=87FvZRsbbbuFJGKJ2PC5-o9aZ1MIKgLPYOTR3ghlzK4,2
97
97
  plain/preflight/results.py,sha256=OtqHUCdq0hNdwNxSLL4CEocNE4mDo2HqFN-XgxYsjLo,1069
98
98
  plain/preflight/security.py,sha256=nMbflO2LN49oKAAaa-tYvuweNB0RWv1z3w9niU037n0,3059
99
99
  plain/preflight/urls.py,sha256=Asw_vq-70NRqr15yuBAYL0JCZ04liumORYT3I3KmF_k,437
100
- plain/runtime/README.md,sha256=sTqXXJkckwqkk9O06XMMSNRokAYjrZBnB50JD36BsYI,4873
100
+ plain/runtime/README.md,sha256=ZZ3NPTjtxwyfw1V827YNwkWc8MiH5rWiy27HrN13qZ8,4819
101
101
  plain/runtime/__init__.py,sha256=dvF5ipRckVf6LQgY4kdxE_dTlCdncuawQf3o5EqLq9k,2524
102
102
  plain/runtime/global_settings.py,sha256=Q-bQP3tNnnuJZvfevGai639RIF_jhd7Dszt-DzTTz68,5509
103
103
  plain/runtime/user_settings.py,sha256=Tbd0J6bxp18tKmFsQcdlxeFhUQU68PYtsswzQ2IcfNc,11467
@@ -118,7 +118,7 @@ plain/templates/jinja/filters.py,sha256=g70cw1jzvYco2v-u4SeceOWBX_qxHI5k9AODMn8e
118
118
  plain/templates/jinja/globals.py,sha256=TXl6uObqis_KXYP-jL3SvwqhATaoc7_hU8_fwpBMXyk,570
119
119
  plain/test/README.md,sha256=tNzaVjma0sgowIrViJguCgVy8A2d8mUKApZO2RxTYyU,1140
120
120
  plain/test/__init__.py,sha256=MhNHtp7MYBl9kq-pMRGY11kJ6kU1I6vOkjNkit1TYRg,94
121
- plain/test/client.py,sha256=ZZ7sz1DsopkZrdjwL4Uv30bbjjbcOfa59PdH0tHTUkQ,29647
121
+ plain/test/client.py,sha256=Gy98gsYXf6emaIC99YRqV9Z3wkJQp4uN0PXZLm1pOMs,29720
122
122
  plain/test/encoding.py,sha256=txj_FCbC4GxH-JCkopW5LaZz8cGsrKQiculjFkjkzuY,3372
123
123
  plain/test/exceptions.py,sha256=Cn4cauBelCiZPnbIXru-zKePXEQn-dit8M4v74C_dTk,492
124
124
  plain/urls/README.md,sha256=026RkCK6I0GdqK3RE2QBLcCLIsiwtyKxgI2F0KBX95E,3882
@@ -162,8 +162,8 @@ plain/views/forms.py,sha256=ESZOXuo6IeYixp1RZvPb94KplkowRiwO2eGJCM6zJI0,2400
162
162
  plain/views/objects.py,sha256=5y0PoPPo07dQTTcJ_9kZcx0iI1O7regsooAIK4VqXQ0,5579
163
163
  plain/views/redirect.py,sha256=mIpSAFcaEyeLDyv4Fr6g_ektduG4Wfa6s6L-rkdazmM,2154
164
164
  plain/views/templates.py,sha256=9LgDMCv4C7JzLiyw8jHF-i4350ukwgixC_9y4faEGu0,1885
165
- plain-0.71.0.dist-info/METADATA,sha256=3WUR8T6I0LswhEptl-nLFOjLAFD65q0bVZFCxpBEz0Q,4488
166
- plain-0.71.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
167
- plain-0.71.0.dist-info/entry_points.txt,sha256=wvMzY-iREvfqRgyLm77htPp4j_8CQslLoZA15_AnNo8,171
168
- plain-0.71.0.dist-info/licenses/LICENSE,sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo,3175
169
- plain-0.71.0.dist-info/RECORD,,
165
+ plain-0.72.0.dist-info/METADATA,sha256=Do-bYyzKeMCcIh-WWtf1dN2OapU5J03g9bZkgonB2Q4,4488
166
+ plain-0.72.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
167
+ plain-0.72.0.dist-info/entry_points.txt,sha256=wvMzY-iREvfqRgyLm77htPp4j_8CQslLoZA15_AnNo8,171
168
+ plain-0.72.0.dist-info/licenses/LICENSE,sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo,3175
169
+ plain-0.72.0.dist-info/RECORD,,
File without changes