diff --git a/src/api/core/organizations.rs b/src/api/core/organizations.rs index 38ff63b7..94a183c2 100644 --- a/src/api/core/organizations.rs +++ b/src/api/core/organizations.rs @@ -2078,6 +2078,7 @@ struct GroupRequest { AccessAll: Option, ExternalId: Option, Collections: Vec, + Users: Vec, } impl GroupRequest { @@ -2204,6 +2205,23 @@ async fn put_group( let updated_group = group_request.update_group(group)?; CollectionGroup::delete_all_by_group(&group_id, &mut conn).await?; + GroupUser::delete_all_by_group(&group_id, &mut conn).await?; + + for assigned_user_id in group_request.Users { + let mut user_entry = GroupUser::new(group_id.clone(), assigned_user_id.clone()); + user_entry.save(&mut conn).await?; + + log_event( + EventType::OrganizationUserUpdatedGroups as i32, + &assigned_user_id, + org_id.clone(), + headers.user.uuid.clone(), + headers.device.atype, + &ip.ip, + &mut conn, + ) + .await; + } log_event( EventType::GroupUpdated as i32,