저도 이 기능이 도입되기를 기대합니다. 저희도 비슷한 상황을 겪고 있습니다.
- 특정 그룹에만 접근이 제한된 카테고리가 몇 개 있습니다.
- 하지만 이 카테고리에서 특정 사람들을 제외할 수도 있어야 합니다.
음의 카테고리 멤버십(negative category membership)이 있다면 작동할 수 있을 것입니다. 하지만 저는 사용자 정의 자동 그룹(현재의 staff와 같은)을 도입하는 것이 더 강력하고 유연한 해결책이라고 생각합니다. 이러한 그룹은 멤버십을 결정하기 위해 기본적인 집합 연산을 지원할 수 있습니다.
예를 들어 이 기능이 있다면 staff가 특수한 경우일 필요가 없고 단순히 admin + moderators로 정의할 수 있습니다. 이러한 자동 그룹이 생성된 사실은 이 기능이 유용하다는 강력한 힌트이며, 내장 기능이 아닌 일반적 기능으로 확장되어야 한다는 것을 시사합니다.
이를 통해 HasAccess = AccessGroup - BannedGroup이라는 그룹을 만들어 음의 제외(negative exclusion)를 구현할 수 있습니다.
이러한 자동 그룹은 다른 사용 사례에서도 매우 유용할 것입니다. 예를 들어:
직급(Rank) 단계별 접근 권한
현재 저희는 기본적으로 더 작은 규모의 사람들을 포함하는 몇 개의 잠긴 포럼이 있습니다. 다음과 같은 구조입니다:
- Admin = Admin
- Moderators = Admin + Moderators
- BetaTeam = Admin + Moderators + Beta
- Trusted = Admin + Moderators + Beta + Trusted
모든 카테고리에 올바른 그룹 목록을 적용해야 하는 것은 번거롭고 오류가 발생하기 쉽습니다. 접근 권한이 있어야 할 그룹이 카테고리에서 누락된 경우가 많았습니다. 이러한 방식으로 그룹을 정의할 수 있다면 관리가 훨씬 쉬워질 것입니다:
- ModeratorsOrHigher = Admin + Moderators (이는
staff자동 그룹으로 내장되어 있습니다) - BetaOrHigher = ModeratorsOrHigher + Beta
- TrustedOrHigher = BetaOrHigher + Trusted
공통 그룹
저희는 동일한 접근 규칙 집합을 가진 여러 카테고리를 가지는 경우도 흔합니다. 이는 위의 경우보다 단순한 상황이지만, 여러 그룹 목록을 반복해서 작성하고 많은 카테고리 간에 동기화를 유지해야 하는 대신 하나의 자동 그룹을 만들어 여러 번 사용하는 것이 훨씬 좋겠습니다.