Idealmente, eu gostaria de definir o grupo principal quando convido um usuário para ser o grupo que estou adicionando no convite, mas não vejo uma maneira de fazer isso. Existe alguma maneira via API de definir o grupo principal para um usuário?
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)
Consegui usar o seguinte código Ruby para atualizar o ID do grupo principal. Ele ainda não parece ser suportado pelo gem (procurei no código por referências a primary_group_id e não vi nenhuma que parecesse funcionar dessa maneira).
require 'curb'
http = Curl.put('https://seuforum.com/admin/users/###user_id###/primary_group?primary_group_id=###group_id###') do | http |
http.headers['Api-Key'] = 'sua-api-key';
http.headers['Api-Username'] = 'seu-api-username';
http.headers['Content-Type'] = 'application/x-www-form-urlencoded'
end
ahh legal, obrigado – Eu imaginei que poderia fazer um pull request depois de atualizar o código aqui:
mas estou muito ocupado no momento para fazer as coisas funcionarem, então vai demorar um pouco antes que eu possa fazer alterações no próprio código do Discourse. Eu estou amando o Discourse – brinquei brevemente com o Flarum por recomendação de alguém que não será nomeado, e francamente não há comparação, o Discourse está em outra liga para quem quer fazer qualquer coisa fora do comum.
Esse usuário é um administrador? Minha melhor suposição é que seja um problema de permissão. Um ou mais dos seguintes: O usuário está errado, a chave está errada, as permissões para a chave estão erradas.