diff --git a/api/src/api/authentication.py b/api/src/api/authentication.py index e4b40238aed10277119a8930bf0b40f1cb56f5d9..567d9de0454edd96e1fe461b6609cc0003f7ec45 100644 --- a/api/src/api/authentication.py +++ b/api/src/api/authentication.py @@ -223,6 +223,7 @@ def authenticate_fsmpi(username: str, password: str) -> {}: if user_db is None: raise ApiClientException(ERROR_AUTHENTICATION_NOT_AVAILABLE( "Site is read-only and we can not create a new account for you in the database")) + api_session.set_user(user_db) else: def _trans(session: SessionDb): user_db = session.scalar(User.sudo_select().where(User.handle == user_handle)) @@ -241,13 +242,10 @@ def authenticate_fsmpi(username: str, password: str) -> {}: user_db.full_name = full_name user_db.display_name = display_name user_db.email = email - - session.commit() - session.expunge_all() - return user_db - user_db = database.execute_write_transaction(_trans) + api_session.set_user(user_db) + + database.execute_write_transaction_and_commit(_trans) - api_session.set_user(user_db) api_session.csrf_token = "".join( secrets.choice(string.ascii_letters + string.digits) for _ in range(64)) api_session.permanent = True diff --git a/api/tests/routes/object_modifications.py b/api/tests/routes/object_modifications.py index c0da04fc4cf23871faeb2d97517713131fa89e7a..a6575c5cfb9db7283367b68479bb79232c91a360 100644 --- a/api/tests/routes/object_modifications.py +++ b/api/tests/routes/object_modifications.py @@ -1502,7 +1502,7 @@ class ObjectModificationsTest(ApiTest): f"/object_management/course/{id}/configuration", use_moderator_login=True, )[1] - self.assert_field_has_value(config, "responsible_users_ids", [42, 43]) + self.assertEqual(set(self.get_field_value(config, "responsible_users_ids")), {42, 43}) self.do_json_request( "GET", f"/course/{id}",