Obrigado pela dica – tentei usá-la – atualizei o primary_group_name, primary_group_id e até a entrada do array groups para true [‘primary_group’] – recebo um 200 ao chamar update_user – usando a gem, mas ainda nada. Vou dar uma olhada mais de perto amanhã, ver se há alguma indicação do que está dando errado. Não vi nada óbvio, no entanto.
este é o código que executei e recebi um código 200 do servidor:
client = DiscourseApi::Client.new("https://myforumurl.example.com")
client.api_key = 'uma chave de api com permissões globais para testar isso'
client.api_username = 'meu nome de usuário admin -- acho que isso não importa, no entanto'
user = client.user('joepowell')
user['primary_group_name'] = 'dojo'
user['primary_group_id'] = 42
# este é o grupo 42 no array de grupos
user['groups'][2]['primary_group'] = true
client.update_user('joepowell', user)