API を使用してグループオーナーを追加および削除したいのですが、API ドキュメントには記載されていません。
管理者の権限でログインして呼び出しをトレースすると、ユーザーをオーナーにするには、
PUT groups/<gid>/owners ペイロードは usernames=nikkilocke (管理者なしに注意!)
オーナーからユーザーを削除するには、
DELETE admin/groups/<gid>/owners ペイロードは user_id=<uid>
ソースコードを調べると、次のようになります。
def group_add_owners(group_id, args)
args = API.params(args).required(:usernames).to_h
put("/admin/groups/#{group_id}/owners.json", group: args)
end
def group_remove_owners(group_id, args)
args = API.params(args).required(:usernames).to_h
delete("/admin/groups/#{group_id}/owners.json", group: args)
end
そして、このコードは 2023 年から変更されていないようです。
Discourse 3.4.7 を実行していますが、ソースコードのオーナー追加のエントリ ポイントは 404 エラーを返します。
試した URL:
PUT /groups/384/owners usernames=nikkilocke OK
PUT /admin/groups/384/owners group[usernames]=nikkilocke 404 エラー
DEL /admin/groups/384/owners group[usernames]=nikkilocke OK
DEL /admin/groups/384/owners user_id = 12 OK
何が起こっているのか、そしてどちらの URL を使用すべきか、誰かアドバイスをいただけますか?