diff --git a/assemblyline_ui/api/v4/user.py b/assemblyline_ui/api/v4/user.py index 6c9740b1..a5d75411 100644 --- a/assemblyline_ui/api/v4/user.py +++ b/assemblyline_ui/api/v4/user.py @@ -355,7 +355,7 @@ def add_user_account(username, **_): # Check identity_id value if not data.get('identity_id'): - data.pop('identity_id') + data.pop('identity_id', None) if avatar is not None: STORAGE.user_avatar.save(username, avatar) @@ -425,7 +425,7 @@ def get_user_account(username, **kwargs): user['roles'] = load_roles(user['type'], user.get('roles', None)) if ROLES.administration not in kwargs['user']['roles']: - user.pop('identity_id') + user.pop('identity_id', None) return make_api_response(user) @@ -525,7 +525,7 @@ def set_user_account(username, **kwargs): # Check identity_id value if not data.get('identity_id'): - data.pop('identity_id') + data.pop('identity_id', None) ret_val = save_user_account(username, data, kwargs['user']) diff --git a/test/test_user.py b/test/test_user.py index 6e3ef87e..25e33c91 100644 --- a/test/test_user.py +++ b/test/test_user.py @@ -220,6 +220,9 @@ def test_set_user(datastore, login_session): u = random_model_obj(User).as_primitives() u['uname'] = username + # Omit setting identity_id for user (API shouldn't crash if identity_id is missing) + u.pop('identity_id') + resp = get_api_data(session, f"{host}/api/v4/user/{username}/", method="POST", data=json.dumps(u)) assert resp['success']