일시중단을 원하시는 회원님을 위한 최선의 전략은? 정지 기능이 적합하지 않을 수 있습니다

안녕하세요, 저는 SSO를 통해 Discourse를 포럼으로 사용하는 멤버십 사이트를 운영하고 있습니다. 메인 사이트에서는 회원들이 각자의 계정, 프로필 등을 가지고 있습니다.

현재 회원들은 메인 프로필을 일시적으로 정지할 수 있으며, 이는 문제가 없습니다. 이 경우 저는 Discourse 프로필도 다음과 같은 메시지와 함께 ‘정지(suspend)’ 처리합니다: “이 회원은 프로필을 일시적으로 정지하기로 선택했습니다.”

질문: 이것이 이 상황을 처리하는 가장 좋은 방법인가요? 회원이 일시적으로 활동하지 않기를 선택했기 때문에, Discourse 계정을 '일시 중지(pause)'할 수 있는 다른 메커니즘이 있을까요? 현재 정지 메시지는 Discourse에서 큰 빨간색 경고 표시로 나타나는데, 이 경우라면 절대 그렇게 보여서는 안 됩니다. 분명히 정지(Suspension)는 처벌을 위한 Discourse 기능으로 설계되었지만, 이 상황은 부정적인 것이 아니기 때문입니다.

여러분의 의견, 일반적인 생각, 아이디어를 듣고 싶습니다. 귀여운 고양이 GIF도 보여주세요…

2개의 좋아요

대신 비활성화할까요? 그렇게 하면 이메일을 더 이상 받지 않게 됩니다. 포럼 사용을 재개하려면 이메일을 다시 인증해야 합니다. 단, 유예 기간이 지나면 계정이 삭제되지만, 게시글이 전혀 없는 경우에만 해당됩니다.

4개의 좋아요

그건 괜찮아 – '비활성화’가 어떻게 작동하는지 조사해 봐야 할 것 같아. 그 기능에 익숙하지 않아서. 힌트 줘서 고마워!

(무시, 음소거, 정지, 비활성화를 비교한 간단한 표가 있으면 좋겠어. 전부 '사용자 x의 콘텐츠를 덜 보고 싶다’는 정도의 차이인데, 세부적인 차이점이 좀 있거든…)

2개의 좋아요

@merefield님, "Deactivate"라고 하셨을 때 단순히 “Active” 값을 false로 바꾸는 것을 의미하시나요? 정확히 이해가 잘 안 됩니다. @sam님이 작성하신 이 게시글에는 “Deactivated” 상태가 포함되어 있지 않네요. :man_shrugging:t2:

그렇습니다, 비활성화하는 것 말입니다:

(이것은 사용자의 관리자 페이지에서 가져온 스니펫으로, 관리자만 접근할 수 있는 것 같습니다.)

2개의 좋아요

자, 사용자가 활성화되어 있는지 아닌지 어떻게 확인해야 할지 모르겠어요. API에서 사용자 객체(/users/와 /admin/users/ 버전 모두)를 가져올 수 있거든요… 그래서 사용자를 비활성화하기 전과 후에 각각 가져와서 두 JSON 덤프를 비교해 봤는데, 사용자의 “활성화” 상태를 나타내는 필드에 차이가 있는 것 같지가 않아요! 제가 뭔가 놓치고 있는 건가요?!

rails 콘솔을 사용하세요. 코드로 작업을 수행하는 경우 변경 사항을 저장했는지 꼭 확인하세요.

이 답변에 감사드립니다…

…하지만 이 말이 정확히 무슨 뜻인지 잘 모르겠습니다. :slight_smile:

현재 저는 관리자 계정으로 로그인하여 사용자 프로필에서 직접 사용자를 활성화/비활성화하고(버튼을 클릭하는 것만으로 가능), Insomnia(Postman과 유사한 API 탐색 도구)로 /admin/users/ 전체 기록을 가져오고 있습니다. 즉, API가 반환하는 원본 JSON 사용자 기록을 보고 있는 상태입니다.

Rails 콘솔을 사용하는 것이 저에게 어떤 도움이 되는지, 혹은 변경 사항을 어떻게 '저장’해야 하는지 잘 모르겠습니다. 사용자 관리 화면의 ‘이 사용자 비활성화’ 버튼을 클릭하면 즉시 처리되거든요.

이 사이트를 한번 둘러보세요 :slight_smile:

https://meta.discourse.org/search?q=rails%20console

물론 터미널 접근 권한이 있으실 거라고 가정하고 말씀드리는 건데요…

아, 이제 이해했어요. 네, 저도 그렇게 하고 있긴 한데… Rails 콘솔을 사용해서 이걸 이것저것 테스트해 보는 게(이걸 위해 쓰는 건데?) 여기서 제가 어떻게 도움이 될 수 있는 건지 아직 잘 모르겠어요. 더 찾아보겠습니다…

try:

rails c

myUser = User.find_by(username_lower:"---their username---")

discourse 디렉터리에서 실행하세요.

exit를 입력하면 … 음 … 종료됩니다 :slight_smile:

다만 프로덕션 환경에서는 주의하세요.

아래 방법으로 더 안전하게 연습해 볼 수 있습니다 :slight_smile:

rails c --sandbox
1개의 좋아요