# 카테고리와 기간에 따른 사용자 게시물 제한 방법 도움

**URL:** <https://meta.discourse.org/t/need-help-with-limiting-user-posts-by-category-and-time-frame/344592>\
**Category:** Product Support\
**Created:** [12월 27, 2024, 7:02오후 UTC](https://meta.discourse.org/t/need-help-with-limiting-user-posts-by-category-and-time-frame/344592 "2024-12-27T19:02:06Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![mbiistscther](https://avatars.discourse-cdn.com/v4/letter/m/b5a626/32.png) [@mbiistscther](https://meta.discourse.org/u/mbiistscther)\
**Post date:** [1월 1, 2025, 11:19오전 UTC](https://meta.discourse.org/t/need-help-with-limiting-user-posts-by-category-and-time-frame/344592/3 "2025-01-01T11:19:14Z")

</div>

안녕하세요, @pfaffman . 명절 축하드리고 답변 감사합니다!

명확하게 설명하기 위해 플로우 차트를 만들어 보았습니다:

```mermaid
flowchart TB
    A0(사용자가 카테고리 A 또는 B에서 새 주제 생성 시도) --> A1{사용자가 면제 그룹<br>(관리자, 모더레이터, TL3, TL4, 구독자)에 속해 있는가?}
    A1 -- 아니요 --> B1(사용자의 카테고리 A, B 또는 C에서<br>마지막 주제 확인, 숨겨지거나 삭제된 기록 포함)
    A1 -- 예 --> Z1(게시 허용)

    B1 --> B2{해당 마지막 주제가<br>14일 이내에 생성되었는가?}
    B2 -- 예 --> C1(게시 차단 + 오류 표시,<br>쿨다운 시간 표시,<br>규칙 링크 제공)
    C1 --> E1(초안 저장 +<br>제출 버튼 비활성화) ---> End(종료)
    B2 -- 아니요 --> D1(게시 허용)

    D1 --> End(종료)
    Z1 --> End(종료)

```

> **그리고 명확히 하기 위해 간단한 스펙도 만들어 보았습니다**
>
> ````plaintext
> ```mermaid
> flowchart TB
> A0(사용자가 카테고리 A 또는 B에서 새 주제 생성 시도) --> A1{사용자가 면제 그룹<br>(관리자, 모더레이터, TL3, TL4, 구독자)에 속해 있는가?}
> A1 -- 아니요 --> B1(사용자의 카테고리 A, B 또는 C에서<br>마지막 주제 확인, 숨겨지거나 삭제된 기록 포함)
> A1 -- 예 --> Z1(게시 허용)
> 
> B1 --> B2{해당 마지막 주제가<br>14일 이내에 생성되었는가?}
> B2 -- 예 --> C1(게시 차단 + 오류 표시,<br>쿨다운 시간 표시,<br>규칙 링크 제공)
> C1 --> E1(초안 저장 +<br>제출 버튼 비활성화) ---> End(종료)
> B2 -- 아니요 --> D1(게시 허용)
> 
> D1 --> End(종료)
> Z1 --> End(종료)
> 
> ````
> 
> **플로우 설명**
> 
> 1. **A0** : 사용자가 카테고리 **A** 또는 **B** 에서 새 주제 생성을 시작합니다.
> 
> 2. **A1** : 시스템이 사용자가 다음 **면제 그룹** 중 하나에 속하는지 확인합니다:  
> • 관리자 (Administrators)  
> • 모더레이터 (Moderators)  
> • 신뢰 수준 3 (TL3)  
> • 신뢰 수준 4 (TL4)  
> • 사용자 정의 “구독자 (Subscribers)” 그룹  
> • **예** 인 경우, 쿨다운 확인을 건너뛰고 즉시 게시를 허용합니다 (Z1).  
> • **아니요** 인 경우, B1로 진행합니다.
> 
> 3. **B1** : 시스템은 사용자의 **카테고리 A, B 또는 C** 에서 마지막으로 **생성한 주제** 를 검색합니다. 이 검색에는 다음이 포함되어야 합니다:  
> • 소프트 삭제된 주제 (데이터베이스에서 영구적으로 제거되지 않은 경우).  
> • 숨겨지거나 컴플라이언스 카테고리로 이동된 주제 (예: 카테고리 C).
> 
> 4. **B2** : 시스템은 해당 마지막 주제의 생성일이 **최근 14일 이내** 인지 확인합니다.  
> • **예** → C1로 진행 (게시 차단).  
> • **아니요** → D1로 진행 (게시 허용).
> 
> 5. **C1** : 시스템은 사용자가 여전히 쿨다운 상태임을 알리는 **오류 메시지** 를 표시합니다. 메시지에는 다음이 포함되어야 합니다:  
> • 아직 게시할 수 없다는 간단한 문구.  
> • **일(day)과 시간(hour)** 단위로 남은 시간 (분 표시 불필요).  
> • 커뮤니티 규칙 페이지에 대한 링크 (아래에 제공됨).
> 
> 6. **E1** : 오류 표시 후, 사용자의 내용은 자동으로 **초안으로 저장** 되며 “제출” 또는 “주제 생성” 버튼이 **비활성화** 됩니다.
> 
> 7. **D1** : 사용자의 마지막 주제 생성 이후 14일 이상이 지난 경우, 시스템은 새 주제 게시를 허용합니다.
> 
> 8. **Z1** : 사용자가 면제 그룹에 속해 있으므로 제한 없이 게시할 수 있습니다.
> 
> **2. 상세 사양 (Detailed Specification)**
> 
> **2.1 제한 그룹 vs. 면제 그룹**
> 
> • **제한 그룹 (Restricted Groups)**:  
> • 다음 면제 그룹에 속하지 **않는** 모든 사용자 (일반적으로 TL0, TL1, TL2).  
> • **면제 그룹 (Exempt Groups)**:
> 
> 1. 관리자 (Administrators)
> 2. 모더레이터 (Moderators)
> 3. 신뢰 수준 3 (TL3)
> 4. 신뢰 수준 4 (TL4)
> 5. **구독자 (Subscribers)** (사용자 정의 그룹)
> 
> 이러한 면제 그룹은 14일 확인을 완전히 건너뜁니다.
> 
> **2.2 대상 카테고리**
> 
> • **새 주제 생성 시도** :
> 
> • 제한 그룹에 속한 사용자가 **카테고리 A 또는 B** 에서 새 주제를 생성하려고 할 때 트리거됩니다.
> 
> • **마지막 주제 확인** :
> 
> • 시스템은 사용자의 **카테고리 A, B 또는 C** 에서 마지막으로 생성한 주제를 확인합니다 (C는 “숨겨진” 또는 “컴플라이언스” 카테고리임).
> 
> **참고** : 카테고리 C는 사용자의 주제가 삭제/숨김/컴플라이언스 목적으로 이동된 상황을 포착하기 위해 포함됩니다. 사용자가 최근 14일 이내에 카테고리 C에서 주제를 생성했다면, 이 경우에도 쿨다운에 포함됩니다.
> 
> **2.3 14일 쿨다운 로직**
> 
> • 사용자의 **가장 최근** 주제 (A/B/C 중)가 **14일 이내** 에 생성된 경우, A 또는 B에서의 새 주제 생성을 차단합니다.
> 
> • **14일 이상** 이 지난 경우, 허용합니다.
> 
> **시간 계산**
> 
> • 남은 시간을 **일(day)과 시간(hour)** 단위로 표시합니다 (예: “남은 시간 3일 12시간”).  
> • 분이나 초를 표시할 필요는 없습니다.
> 
> **2.4 차단 및 초안 저장**
> 
> • **차단 동작 (Blocking Behavior)**:  
> • 사용자가 차단되면 오류 메시지(C1)를 표시합니다.  
> • 시스템은 사용자의 내용을 자동으로 **초안으로 저장** 합니다.  
> • 사용자가 진행할 수 없도록 “제출” 버튼이 **비활성화** 됩니다.  
> • **오류 메시지 예시** (단순화됨):
> 
> 죄송합니다, 아직 이 카테고리에서 새 주제를 생성할 수 없습니다.  
> 마지막 주제가 14일 이내에 게시되었으며,  
> 다시 게시할 수 있기까지 {X일 Y시간}이(가) 남았습니다.  
> 자세한 내용은 커뮤니티 규칙을 참고하세요:  
> [https://community.lezismore.org/t/topic/26/2](https://community.lezismore.org/t/topic/26/2)
> 
> **2.5 향후 확장성**
> 
> 1. **추가 카테고리** :
> 
> • 현재는 A, B, C만 구성되어 있습니다.
> 
> • 향후 이 쿨다운에 카테고리를 추가하거나 제거해야 하는 경우, 주요 코드 변경 없이 시스템이나 플러그인이 확장될 수 있도록 하십시오.
> 
> 1. **다른 시간 기간** :
> 
> • 14일 기간은 플러그인 설정에서 구성 가능하게 할 수 있습니다 (7일, 30일 등으로 변경하려는 경우를 대비하여).
> 
> 1. **동적 그룹 지정** :
> 
> • 면제 그룹을 추가하거나 줄이는 경우 (예: “구독자” 추가 또는 제거) 이를 지원해야 합니다.
> 
> **3. 요약**
> 
> 1. **제한 그룹** (TL0, TL1, TL2 또는 면제 그룹에 속하지 않는 모든 사용자)은 카테고리 A 또는 B에서 다른 주제를 생성하기 전에 **14일 쿨다운** 을 적용받습니다.
> 
> 2. **면제 그룹** (관리자, 모더레이터, TL3, TL4, “구독자”)은 제한 없이 게시할 수 있습니다.
> 
> 3. 시스템은 카테고리 **A, B 또는 C** 에서의 **가장 최근 주제 생성** 을 확인합니다 (소프트 삭제되거나 숨겨진 경우 포함). **14일 이내** 에 생성된 경우, 새 주제는 차단됩니다.
> 
> 4. **오류 메시지** : 남은 시간을 **일/시간** 단위로 표시하고 다음 커뮤니티 규칙에 대한 링크를 제공합니다:
> 
> • [https://community.lezismore.org/t/topic/26/2](https://community.lezismore.org/t/topic/26/2)
> 
> 1. **초안** : 차단된 경우, 사용자의 게시물은 초안으로 저장되고 제출 버튼이 비활성화됩니다.
> 
> 2. 이 사양은 향후 추가 카테고리나 다른 시간 프레임으로 확장할 수 있습니다.

제안해 주시면 감사하겠습니다!

---

_[View the full topic](https://meta.discourse.org/t/need-help-with-limiting-user-posts-by-category-and-time-frame/344592)._
