Idealerweise möchte ich die primäre Gruppe festlegen, wenn ich einen Benutzer einlade, die Gruppe zu sein, der ich ihn bei der Einladung hinzufüge, aber ich sehe keine Möglichkeit, dies zu tun. Gibt es eine Möglichkeit über die API, die primäre Gruppe für einen Benutzer festzulegen?
Vielen Dank für den Hinweis – ich habe versucht, ihn zu verwenden – ich habe primary_group_name, primary_group_id und sogar den Eintrag im groups-Array dafür [‘primary_group’] = true aktualisiert – ich bekomme ein 200 zurück, wenn ich update_user aufrufe – mit dem Gem, aber bisher ohne Erfolg. Ich werde es morgen genauer betrachten, um zu sehen, ob es Hinweise darauf gibt, was schief läuft. Ich habe jedoch nichts Offensichtliches gesehen.
Dies ist der Code, den ich ausgeführt habe und von dem Server einen 200-Code zurückbekommen habe:
client = DiscourseApi::Client.new("https://myforumurl.example.com")
client.api_key = 'ein API-Schlüssel mit globalen Berechtigungen zum Testen dieses'
client.api_username = 'mein Admin-Benutzername – ich glaube, das spielt hier keine Rolle'
user = client.user('joepowell')
user['primary_group_name'] = 'dojo'
user['primary_group_id'] = 42
# dies ist Gruppe 42 im groups-Array
user['groups'][2]['primary_group'] = true
client.update_user('joepowell', user)
Ich konnte den folgenden Ruby-Code verwenden, um die primäre Gruppen-ID zu aktualisieren. Es scheint, dass dies über das Gem noch nicht unterstützt wird (ich habe den Code nach Verweisen auf primary_group_id durchsucht und keine gefunden, die auf diese Weise funktionieren würden).
require 'curb'
http = Curl.put('https://yourforum.com/admin/users/###user_id###/primary_group?primary_group_id=###group_id###') do | http |
http.headers['Api-Key'] = 'your-api-key';
http.headers['Api-Username'] = 'your-api-username';
http.headers['Content-Type'] = 'application/x-www-form-urlencoded'
end
ahh nett, danke – ich dachte, ich könnte nach dem Aktualisieren des Codes hier einen Pull Request machen:
aber ich bin gerade tief drin, um die Dinge zum Laufen zu bringen, daher wird es noch eine Weile dauern, bis ich Änderungen am Discourse-Code selbst vornehme. Ich liebe Discourse aber sehr – habe mich auf Empfehlung einer nicht zu nennenden Person kurz mit Flarum beschäftigt, und es gibt ehrlich gesagt keinen Vergleich, Discourse ist in einer anderen Liga für jeden, der etwas Außergewöhnliches tun möchte.
Ist dieser Benutzer ein Administrator? Meine Vermutung ist, dass es sich um ein Berechtigungsproblem handelt. Eines oder mehrere der folgenden Probleme: Der Benutzer ist falsch, der Schlüssel ist falsch, die Berechtigungen für den Schlüssel sind falsch.