익명 사용자에게 상위 사용자 그룹 상속 허용

안녕하세요!

이 PR에 대한 리뷰를 부탁드려도 될까요?

지역별 담론(region-specific discourse)을 구축하려고 시도하고 있습니다. 사용자의 멤버십이 특정 그룹으로 제한되도록 하는 방식인데, 현재 이는 익명 사용자 지원과 충돌하고 있습니다. 익명 사용자는 어떤 그룹에도 속해 있지 않기 때문입니다.

이 PR은 익명 사용자에게 그룹 관련성(groups association)을 추가합니다.

1개의 좋아요

이것이 허용할 수 있는 디애노나이제이션(익명성 제거) 공격의 증가된 위험을 고려해 보셨나요?

2개의 좋아요

이 주제를 올려주셔서 감사합니다!

비익명화 공격에 대해 고려해 보았는데, 말씀하신 대로 사용자 그룹 상속은 모든 사람에게 적합한 도구가 아니며, 특히 그룹 소속이 다양하고 복잡한(고카디널리티) 인스턴스에서 취약합니다. PR에 자세히 설명했듯이, 원래 개념은 지역 그룹에서 익명 게시를 지원하는 것이었고, 이는 우리의 인스턴스에서는 암묵적으로 낮은 카디널리티를 가질 것입니다.

수정: anonymous_user_inheritance라는 그룹 속성을 추가하여 관리자가 익명 사용자에게 그룹이 상속되는지 여부를 선택할 수 있도록 했습니다. 또한 이 기능을 활성화하는 관리자 설정 옆에 경고 문구를 추가했으며, 추가적인 제안에 항상 열려 있습니다.

1개의 좋아요

PR 리뷰를 요청하기에 적절한 카테고리인가요, 아니면 다른 카테고리에 크로스포스팅해야 하나요?

감사합니다!

1개의 좋아요

코드 리뷰를 요청할 수 있는 별도의 카테고리는 사실상 존재하지 않으므로, 이 카테고리가 가장 적합할 가능성이 높습니다.

PR은 언제나 환영하지만, 너무 깊이 파고들기 전에 해당 방향성이나 기능이 Discourse에서 추구하고 싶은 것인지 먼저 확인하는 것이 좋습니다.

대안으로, 이 기능을 플러그인으로 도입하여 메인 코드에 통합하지 않고도 사용할 수 있도록 하는 방법을 고려해 볼 수 있습니다.

2개의 좋아요

팁 감사합니다! 실제로 플러그인이 우리의 용도에 잘 맞을 것 같지만, 이 변경 사항은 데이터베이스 마이그레이션을 요구합니다. 플러그인에서 마이그레이션을 실행할 수 있을까요?

1개의 좋아요

네, 플러그인에서 데이터베이스 마이그레이션을 실행할 수 있습니다.

1개의 좋아요

가능합니다. 하지만 제 생각에는 플러그인에서 핵심 테이블을 수정하는 것은 좋은 관행이 아닙니다.

이 기능을 플러그인으로 옮기신다면 group_custom_fields를 사용하시거나, 전용으로 지정한 자체 테이블을 사용하는 것이 좋습니다.

이 특정 경우에는 대신 "허용된 상속 그룹"과 같은 사이트 설정을 추가하고, 관리자가 이 단일 설정에서 상속할 수 있는 모든 그룹을 선택하도록 할 수도 있습니다. 이렇게 하면 훨씬 더 간단해지며, 플러그인이 제공하는 모든 기능을 한곳에 모을 수 있습니다.

5개의 좋아요

피드백을 주셔서 감사합니다, Richard! 두 번째 제안에 대해 좀 더 이해할 수 있도록 도와주실 수 있을까요?

이 단일 설정에 상속될 수 있는 모든 그룹을 관리자가 선택하도록 한다

제 이해가 맞는지 확인하고 싶은데, 당신의 제안은 그룹 상속을 허용하는 일반적인 사이트 설정을 두고, 각 개별 그룹의 설정 페이지에 해당 그룹이 상속 가능한지 여부를 나타내는 체크박스를 두는 것이 맞는 건가요? 그렇다면 현재 제가 가지고 있는 것과 비슷하지만, 중복된 설정이 제거된 형태가 됩니다.

이 단일 설정에 상속될 수 있는 모든 그룹을 관리자가 선택하도록 한다
위와 같은 것을 제안하신 건가요, 아니면 다른 의도가 있으셨나요? 제 원래 아이디어는 체크박스 메뉴나 비슷한 형태의 선택 도구를 만드는 것이었는데, 구현이 매우 빠르게 복잡해졌습니다.

플러그인에 대한 팁도 감사합니다! 향후 기여 시 플러그인 옵션을 고려해 보겠습니다. :grinning_face:

1개의 좋아요

아니요, 저는 그룹 페이지에 이 설정을 두는 대신, 상속 가능한 모든 그룹을 포함하는 사이트 전체 설정을 하나 만들어야 한다고 제안합니다.

비슷한 예로, 관리자 - 설정 - 사용자 - anonymous posting allowed groups(익명 게시 허용 그룹) 설정이 있습니다. 이는 각 그룹의 설정 페이지마다 "이 그룹에 익명 게시 허용"이라는 체크박스가 있는 것이 아니라, 익명 게시를 허용하는 모든 그룹이 나열된 하나의 설정입니다.

또는 관리자 - 설정 - 게시 - here mention allowed groups(여기 멘션 허용 그룹) 설정도 마찬가지입니다. 각 그룹의 설정 페이지마다 "이 그룹에 여기 멘션 허용"이라는 체크박스가 있는 것이 아니라, 여기 멘션을 허용하는 모든 그룹이 나열된 하나의 설정입니다.

이 방식은 구현이 더 쉽고, 데이터베이스의 불필요한 항목을 줄이며, 포럼 관리자에게 더 나은 개요를 제공합니다.

3개의 좋아요