Conflicts between unconfirmed and confirmed institutional IDs
- Dominant language
- Python
- Stars
- 435
- Forks
- 124
- Avg merge
- 5h 40m
- Merged PRs (30d)
- 14
Description
* Sign in by email
* Fill in an (unconfirmed) institutional ID
* SAML sign-in for that institutional ID fails from that point onward, with a server error
Ideally, there shouldn't be a conflict between an unconfirmed and a confirmed institutional ID.
Traceback:
```
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/backends/utils.py" in
_execute
85. return self.cursor.execute(sql, params)
The above exception (duplicate key value violates unique constraint
"accounts_user_institutional_id_1e9d4acb_uniq"
DETAIL: Key (institutional_id)=(***redacted**) already exists.
) was the direct cause of the following exception:
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/core/handlers/exception.py" in
inner
35. response = get_response(request)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/core/handlers/base.py" in
_get_response
128. response = self.process_exception_by_middleware(e, request)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/core/handlers/base.py" in
_get_response
126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/views/decorators/http.py" in
inner
40. return func(request, *args, **kwargs)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/views/decorators/csrf.py" in
wrapped_view
54. return view_func(*args, **kwargs)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/djangosaml2/views.py" in
assertion_consumer_service
313. create_unknown_user=create_unknown_user)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/contrib/auth/__init__.py" in
authenticate
70. user = _authenticate_with_backend(backend, backend_path, request, credentials)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/contrib/auth/__init__.py" in
_authenticate_with_backend
116. return backend.authenticate(*args, **credentials)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/djangosaml2/backends.py" in
authenticate
107. create_unknown_user, main_attribute, attributes, attribute_mapping)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/djangosaml2/backends.py" in
get_saml2_user
152. return self._get_or_create_saml2_user(main_attribute, attributes,
attribute_mapping)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/djangosaml2/backends.py" in
_get_or_create_saml2_user
174. user = self.configure_user(user, attributes, attribute_mapping)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/djangosaml2/backends.py" in
configure_user
205. force_save=True)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/djangosaml2/backends.py" in update_user
250. user.save()
File "./accounts/models.py" in save
247. super(User, self).save(*args, **kwargs)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/contrib/auth/base_user.py" in
save
73. super().save(*args, **kwargs)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/models/base.py" in save
729. force_update=force_update, update_fields=update_fields)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/models/base.py" in save_base
759. updated = self._save_table(raw, cls, force_insert, force_update, using,
update_fields)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/models/base.py" in
_save_table
823. forced_update)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/models/base.py" in _do_update
872. return filtered._update(values) > 0
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/models/query.py" in _update
709. return query.get_compiler(self.db).execute_sql(CURSOR)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in
execute_sql
1379. cursor = super().execute_sql(result_type)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in
execute_sql
1068. cursor.execute(sql, params)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
68. return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/backends/utils.py" in
_execute_with_wrappers
77. return executor(sql, params, many, context)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/backends/utils.py" in
_execute
85. return self.cursor.execute(sql, params)
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/utils.py" in __exit__
89. raise dj_exc_value.with_traceback(traceback) from exc_value
File "/home/andreas/my-relate-env3/lib/python3.6/site-packages/django/db/backends/utils.py" in
_execute
85. return self.cursor.execute(sql, params)
Exception Type: IntegrityError at /saml2/acs/
Exception Value: duplicate key value violates unique constraint
"accounts_user_institutional_id_1e9d4acb_uniq"
DETAIL: Key (institutional_id)=(***redacted***) already exists.
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.