c2cgeoportal-geoportal 2.9.0.316__py3-none-any.whl → 2.9.0.320__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.
Potentially problematic release.
This version of c2cgeoportal-geoportal might be problematic. Click here for more details.
- c2cgeoportal_geoportal/lib/oidc.py +58 -55
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Makefile +1 -1
- {c2cgeoportal_geoportal-2.9.0.316.dist-info → c2cgeoportal_geoportal-2.9.0.320.dist-info}/METADATA +1 -1
- {c2cgeoportal_geoportal-2.9.0.316.dist-info → c2cgeoportal_geoportal-2.9.0.320.dist-info}/RECORD +7 -7
- {c2cgeoportal_geoportal-2.9.0.316.dist-info → c2cgeoportal_geoportal-2.9.0.320.dist-info}/WHEEL +0 -0
- {c2cgeoportal_geoportal-2.9.0.316.dist-info → c2cgeoportal_geoportal-2.9.0.320.dist-info}/entry_points.txt +0 -0
- {c2cgeoportal_geoportal-2.9.0.316.dist-info → c2cgeoportal_geoportal-2.9.0.320.dist-info}/top_level.txt +0 -0
|
@@ -32,7 +32,6 @@ import string
|
|
|
32
32
|
from typing import TYPE_CHECKING, Any, NamedTuple, Optional, TypedDict, Union
|
|
33
33
|
|
|
34
34
|
import pyramid.request
|
|
35
|
-
import pyramid.response
|
|
36
35
|
import simple_openid_connect.client
|
|
37
36
|
import simple_openid_connect.data
|
|
38
37
|
from pyramid.httpexceptions import HTTPBadRequest, HTTPInternalServerError, HTTPUnauthorized
|
|
@@ -171,62 +170,66 @@ def get_user_from_remember(
|
|
|
171
170
|
assert models.DBSession is not None
|
|
172
171
|
|
|
173
172
|
user: static.User | DynamicUser | None
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
"
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
173
|
+
try:
|
|
174
|
+
username = remember_object["username"]
|
|
175
|
+
assert username is not None
|
|
176
|
+
email = remember_object["email"]
|
|
177
|
+
assert email is not None
|
|
178
|
+
display_name = remember_object["display_name"] or email
|
|
179
|
+
|
|
180
|
+
openid_connect_configuration = request.registry.settings.get("authentication", {}).get(
|
|
181
|
+
"openid_connect", {}
|
|
182
|
+
)
|
|
183
|
+
provide_roles = openid_connect_configuration.get("provide_roles", False)
|
|
184
|
+
if provide_roles is False:
|
|
185
|
+
user_query = models.DBSession.query(static.User)
|
|
186
|
+
match_field = openid_connect_configuration.get("match_field", "username")
|
|
187
|
+
if match_field == "username":
|
|
188
|
+
user_query = user_query.filter_by(username=username)
|
|
189
|
+
elif match_field == "email":
|
|
190
|
+
user_query = user_query.filter_by(email=email)
|
|
191
|
+
else:
|
|
192
|
+
raise HTTPInternalServerError(
|
|
193
|
+
f"Unknown match_field: '{match_field}', allowed values are 'username' and 'email'"
|
|
194
|
+
)
|
|
195
|
+
user = user_query.one_or_none()
|
|
196
|
+
if update_create_user is True:
|
|
197
|
+
if user is not None:
|
|
198
|
+
for field in openid_connect_configuration.get("update_fields", []):
|
|
199
|
+
if field == "username":
|
|
200
|
+
user.username = username
|
|
201
|
+
elif field == "display_name":
|
|
202
|
+
user.display_name = display_name
|
|
203
|
+
elif field == "email":
|
|
204
|
+
user.email = email
|
|
205
|
+
else:
|
|
206
|
+
raise HTTPInternalServerError(
|
|
207
|
+
f"Unknown update_field: '{field}', allowed values are 'username', 'display_name' and 'email'"
|
|
208
|
+
)
|
|
209
|
+
elif openid_connect_configuration.get("create_user", False) is True:
|
|
210
|
+
user = static.User(username=username, email=email, display_name=display_name)
|
|
211
|
+
models.DBSession.add(user)
|
|
191
212
|
else:
|
|
192
|
-
|
|
193
|
-
|
|
213
|
+
roles = []
|
|
214
|
+
role_names = remember_object.get("roles", [])
|
|
215
|
+
if role_names:
|
|
216
|
+
query = models.DBSession.query(main.Role).filter(main.Role.name.in_(role_names))
|
|
217
|
+
roles = query.all()
|
|
218
|
+
user = DynamicUser(
|
|
219
|
+
id=-1,
|
|
220
|
+
username=username,
|
|
221
|
+
display_name=display_name,
|
|
222
|
+
email=email,
|
|
223
|
+
settings_role=(
|
|
224
|
+
models.DBSession.query(main.Role).filter_by(name=remember_object["settings_role"]).first()
|
|
225
|
+
if remember_object.get("settings_role") is not None
|
|
226
|
+
else None
|
|
227
|
+
),
|
|
228
|
+
roles=roles,
|
|
194
229
|
)
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
for field in openid_connect_configuration.get("update_fields", []):
|
|
199
|
-
if field == "username":
|
|
200
|
-
user.username = username
|
|
201
|
-
elif field == "display_name":
|
|
202
|
-
user.display_name = display_name
|
|
203
|
-
elif field == "email":
|
|
204
|
-
user.email = email
|
|
205
|
-
else:
|
|
206
|
-
raise HTTPInternalServerError(
|
|
207
|
-
f"Unknown update_field: '{field}', allowed values are 'username', 'display_name' and 'email'"
|
|
208
|
-
)
|
|
209
|
-
elif openid_connect_configuration.get("create_user", False) is True:
|
|
210
|
-
user = static.User(username=username, email=email, display_name=display_name)
|
|
211
|
-
models.DBSession.add(user)
|
|
212
|
-
else:
|
|
213
|
-
roles = []
|
|
214
|
-
role_names = remember_object.get("roles", [])
|
|
215
|
-
if role_names:
|
|
216
|
-
query = models.DBSession.query(main.Role).filter(main.Role.name.in_(role_names))
|
|
217
|
-
roles = query.all()
|
|
218
|
-
user = DynamicUser(
|
|
219
|
-
id=-1,
|
|
220
|
-
username=username,
|
|
221
|
-
display_name=display_name,
|
|
222
|
-
email=email,
|
|
223
|
-
settings_role=(
|
|
224
|
-
models.DBSession.query(main.Role).filter_by(name=remember_object["settings_role"]).first()
|
|
225
|
-
if remember_object.get("settings_role") is not None
|
|
226
|
-
else None
|
|
227
|
-
),
|
|
228
|
-
roles=roles,
|
|
229
|
-
)
|
|
230
|
+
except KeyError:
|
|
231
|
+
_LOG.exception("Missing field in remember object")
|
|
232
|
+
return None
|
|
230
233
|
return user
|
|
231
234
|
|
|
232
235
|
|
{c2cgeoportal_geoportal-2.9.0.316.dist-info → c2cgeoportal_geoportal-2.9.0.320.dist-info}/RECORD
RENAMED
|
@@ -20,7 +20,7 @@ c2cgeoportal_geoportal/lib/lingva_extractor.py,sha256=pS-B5oTcEkW__XUop6rWKdpJhn
|
|
|
20
20
|
c2cgeoportal_geoportal/lib/loader.py,sha256=oN76GhbLbdmCWp3DFTq16HJSylnDApuS1Ea8D-DQA3o,2613
|
|
21
21
|
c2cgeoportal_geoportal/lib/metrics.py,sha256=dAPdJtrtTPbwVuULZZ5dJC1JJCDbC0rJA7dtvsqIo40,4847
|
|
22
22
|
c2cgeoportal_geoportal/lib/oauth2.py,sha256=03nV635IkGyu0EckvUc_0akG9YzpG3PSZ2ILt2TVieI,41107
|
|
23
|
-
c2cgeoportal_geoportal/lib/oidc.py,sha256=
|
|
23
|
+
c2cgeoportal_geoportal/lib/oidc.py,sha256=h6mRllroNhp076q0pRGSnFoLDHO61zXLTfR1T6DfEK0,13400
|
|
24
24
|
c2cgeoportal_geoportal/lib/wmstparsing.py,sha256=KFMEv7Skqc9HFA1m7x2xQMu4Bk2gJsyp5XTGwLLXb7w,12379
|
|
25
25
|
c2cgeoportal_geoportal/lib/xsd.py,sha256=_JDDlMIsvThb9DGmHS3XMazlRYG3AQK8kHQ4pq6sH8s,7031
|
|
26
26
|
c2cgeoportal_geoportal/scaffolds/advance_create/cookiecutter.json,sha256=1LVOM-j_nd00J89q0EI3bQUvIysbidApaVHDibA2ydk,524
|
|
@@ -29,7 +29,7 @@ c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoport
|
|
|
29
29
|
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.eslintrc.yaml,sha256=txdVU8ikuADtWxCHWjyOBtT8wiXzf-LhT9ZMVtBiwhY,241
|
|
30
30
|
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml,sha256=rtVvKNsow04qQr_yXZ1yF1mPvLsyt_6Cp4Og-8yjUf4,378
|
|
31
31
|
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Dockerfile,sha256=HfCI1zpZ1mjnAHXGSaLUS1ntHd-q9YhnQSh7gVNZQvo,2883
|
|
32
|
-
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Makefile,sha256
|
|
32
|
+
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Makefile,sha256=-qE76wtRwY-Xr5M35ZzsamKbP6YBhncrtg_68E2VhA8,153
|
|
33
33
|
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.ini,sha256=U_L9gWSDWTGr-4HgQORcW5Q10TsafD6RWEudITSyEWQ,985
|
|
34
34
|
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml,sha256=9HMFJ_UekLUzXM5bPtixNNkeHMalo50hKjkxM_2tG2E,458
|
|
35
35
|
c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/development.ini,sha256=SXwggEi14iish10vtLscY5kemC1nZqnQuLQSK9DgppY,3061
|
|
@@ -187,8 +187,8 @@ tests/test_mapserverproxy_route_predicate.py,sha256=aH5r5MliqE5RF4J7Q-luQQ6sgOcM
|
|
|
187
187
|
tests/test_raster.py,sha256=IzwJMGti82B51aVfy2QbeNeJXn3B6bM-JnbYpt5KqB4,11948
|
|
188
188
|
tests/test_wmstparsing.py,sha256=DMUFSrJAyRfOhosD8Ap5251NCxfaX7vmkWmexdc6CDU,9054
|
|
189
189
|
tests/xmlstr.py,sha256=vozYRYG4sBPhasl4PemLUZxg-jAtQxUY5ntp1uDoxik,5985
|
|
190
|
-
c2cgeoportal_geoportal-2.9.0.
|
|
191
|
-
c2cgeoportal_geoportal-2.9.0.
|
|
192
|
-
c2cgeoportal_geoportal-2.9.0.
|
|
193
|
-
c2cgeoportal_geoportal-2.9.0.
|
|
194
|
-
c2cgeoportal_geoportal-2.9.0.
|
|
190
|
+
c2cgeoportal_geoportal-2.9.0.320.dist-info/METADATA,sha256=hX-KG-7lIyZYDjwernaddSbs5jHpIjYJ2Qttt2wqvYw,2049
|
|
191
|
+
c2cgeoportal_geoportal-2.9.0.320.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
192
|
+
c2cgeoportal_geoportal-2.9.0.320.dist-info/entry_points.txt,sha256=3dnX260FsLX_AubeNMdyeta_z1X4CxcD3steAlfPx2I,1414
|
|
193
|
+
c2cgeoportal_geoportal-2.9.0.320.dist-info/top_level.txt,sha256=PJIbY7Nx51dDrJ052f5mDA7c6Tehm5aD-Gb32L_CtJA,29
|
|
194
|
+
c2cgeoportal_geoportal-2.9.0.320.dist-info/RECORD,,
|
{c2cgeoportal_geoportal-2.9.0.316.dist-info → c2cgeoportal_geoportal-2.9.0.320.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|