Idéalement, j’aimerais définir le groupe principal lorsque j’invite un utilisateur comme étant le groupe auquel je l’ajoute dans l’invitation, mais je ne vois aucun moyen de le faire. Existe-t-il un moyen via l’API de définir le groupe principal d’un utilisateur ?
Merci pour l’indice – j’ai essayé de l’utiliser – j’ai mis à jour le primary_group_name, le primary_group_id, et même l’entrée du tableau groups pour cela [‘primary_group’] = true – j’obtiens un 200 en retour lorsque j’appelle update_user – en utilisant la gem, mais toujours rien. Je vais examiner de plus près demain, voir s’il y a une indication de ce qui ne va pas. Je n’ai rien vu d’évident cependant.
Voici le code que j’ai exécuté et qui m’a renvoyé un code 200 du serveur :
client = DiscourseApi::Client.new("https://myforumurl.example.com")
client.api_key = 'une clé api avec des permissions globales pour tester ceci'
client.api_username = 'mon nom d'utilisateur administrateur -- je pense que cela n'a pas d'importance cependant'
user = client.user('joepowell')
user['primary_group_name'] = 'dojo'
user['primary_group_id'] = 42
# ceci est le groupe 42 dans le tableau groups
user['groups'][2]['primary_group'] = true
client.update_user('joepowell', user)
J’ai pu utiliser le code Ruby suivant pour mettre à jour l’ID du groupe principal. Il ne semble pas encore être pris en charge via le gem (j’ai recherché dans le code des références à primary_group_id, et je n’en ai pas vu qui semblaient fonctionner de cette façon).
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 bien, merci – J’ai pensé que je pourrais faire une pull request après avoir mis à jour le code ici :
mais je suis à fond dedans en ce moment pour faire fonctionner les choses, donc il faudra un peu de temps avant que je ne m’attaque à la modification du code de Discourse lui-même. J’adore tellement Discourse – j’ai joué brièvement avec Flarum sur la recommandation de quelqu’un qui ne sera pas nommé, et il n’y a tout simplement pas de comparaison, Discourse est dans une autre ligue pour quiconque veut faire quelque chose en dehors des sentiers battus.
Cet utilisateur est-il un administrateur ? Ma meilleure hypothèse est qu’il s’agit d’un problème de permissions. Un ou plusieurs des éléments suivants : L’utilisateur est incorrect, la clé est incorrecte, les permissions pour la clé sont incorrectes.