ks.dgoon.lee log

dboard - 기본 운영기능 추가


2024/01/07 00:33:03 #django #dev #bulletin board #dboard #django-crontab #moderation #report #punishment #operation #chatgpt

일반 사용자들이 쓰는 서비스로서 개발모드에서 벗어나기 위해서는 신고 접수, 신고 처리, 그 외의 컨텐츠/사용자 관리 기능이 필수로 필요하다. 이게 의외로 만들기가 매우 성가시다.

... 여러번 쓰고 지우고 반복하다 포기. 설계 의도를 잘 정리해보려 했는데 글쓰기가 왜 이렇게 어려운지 모르겠다. 동작하는 결과만 정리를 해 둔다.

1. 컨텐츠(Post, Comment) 에 대해서 신고(Report 생성) 할 수 있다.

2. django-crontab 으로 2개의 job 을 돌려두고 있다.

    * 사용자가 만든 모든 Report 를 chatgpt 가 보고 의심스러우면 is_suspicious=True 를 세팅한다.

    * 사용자가 업로드한 모든 컨텐츠를 chatgpt 가 보고 의심스러우면 직접 Report 를 생성한다. is_suspicious=True 로...

3. 어드민 Report 화면에서 is_processed=False 인 항목들을 보고 Guilty, NotGuilty 를 분류한다. 너무 많으면 is_suspicious=True 인거 먼저 처리한다.

4. is_processed=True, Guilty=True 인 Report 들은 punisher 가 보고 ReportAction 을 생성한다.

5. Guilty=True 일때 기본 동작은 컨텐츠 블라인드 + 사용자 1시간 활동제한이다.

6. 하나의 컨텐츠에 대해 여러개의 Report 가 만들어질 수 있다. 여러개의 ReportAction 이 생성되더라도 중첩되진 않는다. 단 하나의 ReportAction 만 있더라도 블라인드, 활동제한 등은 그대로 걸린다.

7. 컨텐츠 블라인드, 유저 활동제한 등은 어드민에서 ReportAction 의 validity 를 켜고 끄면서 컨트롤 가능하다.

8. 어드민에서도 임의의 컨텐츠를 블라인드하거나, 임의의 사용자에게 활동제한을 걸 수는 없다. 무조건 Report 기반 ReportAction 생성을 통해서만 제제액션을 할 수 있다.


더 고도화된 동작은 (필요한 날이 올지는 모르겠지만...) 필요할때 고민하자. 일단 신고할 수 있고, 신고 처리할 수 있고, 컨텐츠 블라인드 할 수 있고, 사용자에게 처벌 먹일 수 있다.



댓글 0개