원래라면 사용자를 초대할 때 초대에 포함된 그룹을 기본 그룹으로 설정하고 싶은데, 그렇게 할 방법을 찾지 못하겠습니다. API를 통해 사용자의 기본 그룹을 설정할 수 있는 방법이 있을까요?
감사합니다.
원래라면 사용자를 초대할 때 초대에 포함된 그룹을 기본 그룹으로 설정하고 싶은데, 그렇게 할 방법을 찾지 못하겠습니다. API를 통해 사용자의 기본 그룹을 설정할 수 있는 방법이 있을까요?
감사합니다.
updateUser 작업을 통해 사용자 설정을 업데이트할 수 있을 것 같습니다:
알려주셔서 감사합니다. 해당 방법을 시도해 보았습니다. primary_group_name, primary_group_id, 그리고 해당 항목의 groups 배열 엔트리인 [‘primary_group’] = true까지 모두 업데이트했습니다. 제미나를 사용하여 update_user를 호출하면 200 응답을 받지만, 아직 원하는 결과는 나오지 않습니다. 내일 더 자세히 살펴보고 무엇이 잘못되었는지 확인해 보겠습니다. 다만, 눈에 띄는 문제는 발견하지 못했습니다.
다음은 실행하여 서버로부터 200 코드를 받은 코드입니다:
client = DiscourseApi::Client.new("https://myforumurl.example.com")
client.api_key = 'an api key with global permissions for testing this'
client.api_username = 'my admin username -- I think this doesnt matter though'
user = client.user('joepowell')
user['primary_group_name'] = 'dojo'
user['primary_group_id'] = 42
# this is group 42 in the groups array
user['groups'][2]['primary_group'] = true
client.update_user('joepowell', user)
Discourse API 역공학을 참고하세요. API를 파악하는 가장 확실한 방법이며, 항상 최신 상태를 유지합니다.
정말 감사합니다
내일 아침에 해보고 여기 다시 올릴게요 ![]()
다음 Ruby 코드를 사용하여 기본 그룹 ID를 업데이트할 수 있었습니다. 아직 해당 기능이 gem을 통해 지원되지 않는 것으로 보입니다(코드를 검색하여 primary_group_id에 대한 참조를 찾아보았지만, 이 방식으로 작동할 것 같은 내용은 보이지 않았습니다).
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
gem이 지원하지 않는 경로에 요청을 보내기 위해 이 메서드들을 사용하는 것이 괜찮다고 생각합니다:
따라서 다음과 같은 작업을 수행할 수 있습니다:
response = client.put("admin/users/4/primary_group", primary_group_id: 43)
아, 좋네요. 감사합니다. 여기서 코드를 업데이트한 후에 풀 리퀘스트를 만들 수 있을 것 같아서요:
하지만 지금은 디스코urs 코드를 직접 수정하기보다는 시스템을 실행시키는 데 집중하고 있어서, 디스코urs 코드 자체를 변경하기까지는 좀 더 시간이 걸릴 것 같습니다. 그래도 디스코urs는 정말 마음에 듭니다. 이름은 밝히지 않겠지만, 누군가의 추천으로 Flarum을 잠시 사용해 봤는데, 솔직히 비교가 안 됩니다. 틀을 깨고 무언가를 하고 싶은 사람들에게 디스코urs는 다른 차원의 서비스입니다.
감사합니다
API를 통해 기본 그룹을 변경할 수 없나요? ![]()
UX에서 변경할 수 있다면, API에서도 변경할 수 있습니다. Discourse API 역공학을 참고하세요.
아, Gem으로 변경하는 것을 말씀하시는 거라면, 저는 잘 모르겠습니다. 죄송합니다.
@pfaffman 답변해 주셔서 감사합니다.
역순으로 테스트해 봤지만 작동하지 않으며 404 not found가 반환되었습니다 ![]()
/admin/users/barto_95/primary_group.json:
{
"errors": [
"L'URL ou la ressource demandée n'a pas été retrouvée."
],
"error_type": "not_found"
}
그리고
/admin/users/2/primary_group.json: (2 = 사용자 barto_95의 ID)
{
"errors": [
"L'accès à la ressource demandée n'est pas autorisé."
],
"error_type": "invalid_access"
}
브라우저에서 URL /admin/users/2/primary_group.json으로 접속하면 JSON이 표시됩니다.
API를 테스트하기 위한 요청:
curl --request PUT \
--url 'https://xxxxxr/admin/users/2/primary_group.json?=' \
--header 'Api-Key: a7bb1199xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdecbc7b41658' \
--header 'Apu-Username: Equipe_HACF' \
--header 'Content-Type: application/json' \
--data '{
"primary_group_id": "67"
}'
도움 주셔서 감사합니다
해당 사용자가 관리자인가요? 제 추측으로는 권한 문제일 것 같습니다. 다음 중 하나 이상에 해당합니다: 사용자가 잘못되었거나, 키가 잘못되었거나, 키에 대한 권한 설정이 잘못되었습니다.
네, 문제는 제가 사용한 사용자의 권한입니다.
감사합니다 ![]()