Discourse Patreon 를 알고 있습니다. 제 질문에는 patreon이 포함되지만, 제가 찾고 있는 답은 "patreon 플러그인"이 아닙니다.
Ruby 클래스를 확장하여 코드로 액세스 제어 목록(ACL)을 지정하는 좋은 방법이 있을까요?
예를 들어: 특정 포럼에서는 patreon 멤버만 게시물을 올릴 수 있고, 특정 신뢰 수준(trust level)의 사용자만 답글을 달 수 있도록 하고 싶습니다. 하지만 GUI의 토글 박스 형태로는 원하지 않습니다. Ruby에서 특정 클래스를 확장하고 코드를 통해 액세스 제어 목록을 지정할 수 있기를 바랍니다.
이것이 discourse에서 쉽게 할 수 있는 작업인가요, 아니면 어려운 작업인가요?
플러그인에서는 원하는 작업을 자유롭게 수행할 수 있습니다.
코드 내에서 접근 제어 목록(ACL)을 관리하는 것은 권장하지 않습니다. 물론 동작 방식과 규칙을 변경할 수는 있지만, 접근 제어는 관리자 입장에서 최대한 투명하고 직관적이어야 하지 않나요? 또한 긴급하게 변경이 필요한 상황이 생길 수도 있습니다. 그런 경우 코드 릴리스에 의존하고 싶지 않을 것입니다!
기존 모델을 완전히 이해하고, 코드 변경 없이 필요한 사항을 달성할 수 있는지 확인해 보세요. 보안은 매우 중요하면서도 까다로운 요소입니다. 기존 프레임워크를 활용하면 Discourse 팀의 지원을 받을 수 있습니다. 반면, 구조를 변경하면 위험이 커지고 혼자 해결해야 합니다.
또한 플러그인 변경 사항이 코어(evolution)의 발전에 견딜 수 있도록 해야 합니다. 오버라이드는 원래 코드가 변화하더라도 계속 작동할 가능성이 높도록 작성되어야 합니다. 이는 섬세한 균형 문제이며 유지보수 부담을 수반합니다. 플러그인이 깨져서 인스턴스를 업데이트하지 못하는 것 자체가 보안 위험이 됩니다.
결국, 플러그인은 비교적 표면적이고 무해한 변경 사항에 특히 적합하지만, 보안 레이어에 적용하는 것은 신중한 검토 후에만 수행해야 합니다. 다만 OAuth 플러그인처럼 플랫폼 기능과 연동되어 새로운 제공자를 안전하게 연결할 수 있는 경우와 같은 예외도 있습니다.
이 모든 것을 고려하여, 좋은 결과 있으시길 바랍니다!
1개의 좋아요