그룹 사이드바 메뉴

:information_source: 요약 선택된 그룹을 위한 사용자 지정 사이드바 메뉴 생성
:hammer_and_wrench: 저장소 https://github.com/Lillinator/group-sidebar-menus
:question: 설치 가이드 테마 또는 테마 컴포넌트 설치 방법

이 테마 컴포넌트 설치

:woman_technologist:t2: 개요

이 Discourse 테마 컴포넌트는 포럼 관리자가 선택된 그룹의 멤버만 접근할 수 있는 사용자 지정 사이드바 메뉴를 생성할 수 있는 기능을 제공합니다.

주요 기능:

  • 그룹 기반 메뉴 가시성 - 메뉴 섹션은 권한이 있는 사용자 사이드바에만 렌더링됩니다.
  • 객체 기반 구성 - 메뉴 생성을 위한 사용하기 쉬운 설정 UI 제공
  • 다중 섹션 - 서로 다른 그룹을 위한 무제한의 메뉴 섹션 생성 (합리적인 범위 내에서)
  • 관리자 빠른 편집 링크 - 메뉴 헤더의 연필 아이콘을 통해 관리자가 컴포넌트 설정으로 바로 이동할 수 있습니다.

:briefcase: 사용 사례 예시

  • 스태프 전용 리소스 및 빠른 링크
  • 카테고리 모더레이터 단축키
  • 사용자 지정 그룹 포털 (프로젝트 팀, 스터디 그룹, 북클럽, VIP 멤버)
  • 상위 또는 파트너 웹사이트 리소스 링크

:gear: 설정

메뉴 섹션 (menu_sections)

사용자 지정 그룹 메뉴 섹션을 구성하기 위해 객체 설정 편집기를 엽니다.

섹션 속성

속성 설명
메뉴 제목 사이드바 섹션 헤더로 표시되는 제목
허용된 그룹 이 메뉴 섹션을 볼 수 있는 그룹 (섹션당 최대 20개 그룹)
메뉴 링크 이 섹션에 표시할 링크 모음 (섹션당 최대 20개 링크)

링크 속성

속성 설명
아이콘 FontAwesome 아이콘 이름 (예: circle-info, star, user-group). Admin > All site settings > svg icon subset에 추가해야 할 수 있습니다
텍스트 링크에 표시되는 라벨
URL 링크 대상 - 상대 경로(/faq, /my/preferences)와 절대 URL(https://example.com) 모두 지원

:wrench: 설치 및 구성

  1. Installing a theme or theme component 에 따라 테마 컴포넌트를 설치합니다.
  2. Objects setting editor로 이동합니다.
  3. 첫 번째 사용자 지정 메뉴 섹션을 설정하려면 + new_menu_section 버튼을 클릭합니다.
  4. Menu title 필드에 새 메뉴 제목을 입력한 다음, 해당 메뉴에 접근할 수 있는 그룹을 선택합니다.
  5. + new_menu_section을 클릭하여 다른 섹션을 추가하거나 변경 사항을 저장합니다.
관리자 구성 스크린샷 및 예시 설정

신규 설치 - Objects setting editor로 이동합니다.

사용자 3명(관리자 1명 포함)과 사용자 지정 메뉴 2개가 있는 예시 시나리오:

  • @Catra는 고양이를 좋아하고 pink 그룹의 멤버이며, Cat Menu에 접근할 수 있습니다 :grinning_cat:
  • @HelloKitty는 개를 좋아하고 purple 그룹의 멤버이며, Dog Menu에 접근할 수 있습니다 :dog_face:
  • @Lilly는 개를 키우고 개가 더 좋기 때문에 purple 그룹의 멤버입니다. 또한 그녀는 포럼 관리자이기도 하며, 관리자는 Cat Menu에 접근할 수 있습니다. 고양이는 더 많은 감독이 필요하기 때문이죠 :dog_face: :cat_with_wry_smile:

새로운 사용자 지정 메뉴 생성 - 예시를 위해 Cat menu를 생성하고 접근할 수 있는 그룹인 pinkadmins를 추가합니다. 그런 다음 새 메뉴의 링크를 설정하기 위해 + menu_link 버튼을 클릭합니다.

몇 가지 메뉴 링크 추가 - 1. Fontawesome 아이콘 이름, 2. 링크에 표시할 텍스트, 3. 상대 또는 절대 URL. 이 메뉴에 다른 링크를 추가하려면 + menu_link 버튼을 클릭합니다.

Dog menu라는 또 다른 사용자 지정 메뉴 섹션을 생성하고, purple 그룹에만 접근 권한을 부여한 후 링크를 구성합니다:

결과 사이드바 메뉴 접근 스크린샷

사용자 @Catra에게는 Cat 메뉴가 있습니다! :grinning_cat:

사용자 @HelloKitty에게는 Dog 메뉴가 있습니다! :dog_face:

관리자 사용자 @Lilly에게는 두 메뉴 모두 있으며 편집할 수 있습니다! :smiling_cat_with_heart_eyes:

구성 예시

Menu Title: "Cat Stuff"
Allowed Groups: team-cat
Links:
  - Icon: link
    Text: Cat videos & photos
    URL: /t/cat-videos-and-photos/123
  - Icon: magnifying-glass
    Text: Cat wiki
    URL: https://en.wikipedia.org/wiki/Cat

:light_bulb: 중요 참고 사항

관리자 접근

관리자는 해당 그룹에 구성된 메뉴를 보려면 자신도 그룹에 추가해야 합니다. 관리자 상태만으로는 모든 사용자 지정 메뉴에 대한 접근 권한이 부여되지 않습니다. 이는 의도된 동작입니다. 또한, 메뉴의 허용된 그룹에 속하는 관리자는 섹션 헤더에 컴포넌트 설정으로 연결되는 연필 아이콘을 볼 수 있습니다.

그룹 구성

  • everyone 그룹은 지원되지 않습니다 - 모든 사용자(익명 방문자를 포함)를 위한 전역 사용자 지정 메뉴를 만들려면 네이티브 사이드바 푸터 UI를 사용하세요.
  • 메뉴 섹션당 최대 20개 그룹. 더 많은 그룹이 필요하면 다른 그룹 할당으로 중복 섹션을 생성하세요.
  • 여러 그룹에 속한 사용자는 접근할 수 있는 모든 메뉴 섹션을 봅니다.

테스트 및 조직

서로 다른 그룹 조합에 대한 올바른 접근을 검증하기 위해 테스트 계정을 사용하세요. 복잡성이 증가함에 따라 혼란을 피하기 위해 메뉴 구성을 추적하세요. 많은 그룹이 있는 대형 포럼의 경우 접근 권한 매트릭스 또는 유사한 문서화를 권장합니다.

보안 고려 사항

이 컴포넌트는 UI 수준의 접근 제어만 제공합니다. 리소스 접근이 아닌 메뉴 가시성을 제어합니다 - 이 컴포넌트는 실제 리소스에 누가 접근할 수 있는지를 제어하는 것이 아니라, 사이드바에 무엇이 렌더링되는지를 제어합니다.

실제 리소스를 보호하려면 항상 Discourse의 내장 권한 시스템에 의존하세요:

  • 카테고리 권한을 올바르게 구성
  • 토픽 가시성 제한 설정
  • 콘텐츠에 대한 그룹 기반 접근 제어 사용
  • 비공개 리소스가 인증을 요구하도록 보장

관리자 모범 사례:
링크된 카테고리 보안 권한과 그룹 구성원 자격을 별도로 구성하세요 - 예를 들어, 비공개 카테고리로의 메뉴 링크는 해당 카테고리의 권한이 올바르게 구성되어 있어야 합니다. 관리자는 선택된 그룹에 대해 외부 리소스로의 링크가 적절히 인증되었는지 확인하는 책임이 있습니다.


이것은 @Moin과의 협업 프로젝트였습니다 - 그녀의 의견, 영감 및 피드백은 매우 가치있었습니다.


내 다른 Discourse 관련 작업 보기
15개의 좋아요

레포지토리가 404 오류를 반환하는 것 같습니다.

수정: 이제 정상적으로 작동합니다!

2개의 좋아요

하하 다시 해봐. 공개 설정을 안 했었어! :laughing:

6개의 좋아요

멋지네요! 오랫동안 이 기능이 필요했어요. 저를 위해 유용한 커스텀 사이드바 메뉴 모음을 만들어 두었는데, 모더레이션 링크, 관리자 작업 및 참고 자료, 디스커스 문서, 포럼에서 자주 참조하는 외부 콘텐츠 등이 포함되어 있습니다. 그중 하나의 메뉴에는 tag 링크를 사용하여 정기 회의에 대한 링크가 포함되어 있어요. 예를 들어 /tag/comm-mgt-monthly와 같은 링크로 현재 및 이전 안건과 회의록에 빠르게 접근할 수 있습니다.

팀의 다른 구성원들이 제 커스텀 사이드바 메뉴 설정을 내보내서 가져올 수 있는 방법을 여러 번 원해 왔는데, 이 방식이 훨씬 우수한 설정이에요!

그리고 아이콘! 환상적이네요! 제가 아는 한, 이를 구현하는 유일한 방법은 커스텀 CSS를 추가하는 것이었습니다. 이 새로운 솔루션은 우아합니다.

그리고 지속 가능합니다! 모든 관리자가 설정 파일을 편집할 수 있으므로 저 한 사람에게만 의존하지 않아도 됩니다. @Lilly님과 @Moin님께 감사합니다!

2개의 좋아요

@Lilly님과 @Moin님, 안녕하세요.

이 컴포넌트를 만들어 주셔서 감사합니다.

저는 자사 호스팅 사이트에서 https://meta.discourse.org/t/group-sidebar-menu-sections-deprecated/273505를 사용하고 있었는데, 최신 업데이트 시 기존 테마 컴포넌트가 비추천(deprecated)되었으므로 대신 이 컴포넌트를 설치하라는 경고를 받았습니다.

컴포넌트를 설치하고 사용자 지정 그룹 메뉴를 만들었지만, 그룹 메뉴를 이동하는 방법을 모르겠습니다. (분명히 뻔한 걸 놓치고 있는 것 같습니다. :see_no_evil_monkey:) 스크린샷에서 Cat MenuDog Menu가 사이드바 내비게이션의 Topics 섹션 위에 배치되어 있는데, 제 사용자 지정 그룹 메뉴는 사이드바 내비게이션의 맨 아래에 표시되고 있습니다. Topics 위로 어떻게 이동시킬 수 있을까요?

3개의 좋아요

명확하지 않습니다. Lilly는 https://meta.discourse.org/t/discourse-sidebar-menu-reorder/394049를 사용하여 cat-menu를 상단에 배치했습니다.

4개의 좋아요

정말 감사합니다! 설정하는 것이 매우 쉬웠습니다.

4개의 좋아요

이 컴포넌트를 사용 중이시라면 업데이트해 주세요. 여기의 핵심 변경 사항에 따라 일부 리팩토링이 이루어졌습니다: Granular group-based permissions for anonymous and logged in users

3개의 좋아요

이 컴포넌트는 새로운 아이콘 객체 유형 설정을 사용하도록 업데이트되었으므로, 최신 Discourse 버전으로 업데이트한 후 이 컴포넌트도 업데이트해 주세요. 마이그레이션이 원활하게 이루어지므로 (Discourse가 최신 상태라면) 변경할 필요가 없어야 합니다.

2개의 좋아요