유저가 그룹을 나갔을 때 카테고리를 자동으로 음소거하는 방법?

Hi Discourse Team & Community,

I’m looking for a way to automatically mute a category when a user leaves a group.

:rocket: What I Want to Achieve

  • When a user joins a group, they track the group’s related category (this works via Group Category Notification Default). [:white_check_mark: I already did it with Custom Wizard plugin]
  • When a user leaves a group, their related category should be muted automatically, so they stop receiving notifications and email digests.
  • Ideally, this should be fully automated without manual intervention.

:red_question_mark: My Questions

:one: Is there a built-in way (without coding or API calls) to mute a category when a user leaves a group?
:two: Would it be possible to add “User Leaves Group” as a trigger in the Discourse Automations Plugin?
:three: Any workarounds that don’t require manual admin intervention?

I’d love to hear how others have handled this scenario or if there’s any feature request in progress to add this capability.

Thanks in advance! :raising_hands:

If a category is allowed to that group there is no need to mute anything, because there is no access after leaving that group.

Thanks @Jagster.
Yes, I noticed it that there is no access after leaving the group.
But still the category appearing in user side. And latest posts also appearing in latest tab.

I just want to mute the related category to not show it there.
I am looking for a automated process for this scenario.

That shouldn’t be happening. Is the category a secure category which only the group has access to?

No, category has access to be seen by everyone.
I wanted to do this on Public groups.

I think you might need maybe a Custom Automation maybe.

Though this type of idea would be a nice addition to group settings maybe as a toggle when one leaves group. To undo/mute certain things originally changed)granted when added to a group

Not sure but you might also either be able to use custom wizard if it can be auto triggered or maybe paired with an automation. I would check with Pavilion.

I don’t understand the logic behind this.

  • a random visitor sees category X and sees it , even in /latest
  • a user logs in, isn’t member of group X, sees cat X and it is on /latest
  • a user joins to group X and gets all rights (that is point of the group?)
  • a user leaves group X, can still see cat X, but it doesn’t show up in /latest

Why :thinking:

정말 카테고리를 *음소거(mute)*하고 싶은 건지, 아니면 단순히 알림을 “정상(normal)” 상태로 되돌리고 싶은 건가요?

후자라면, 이는 실제로 Contribute > Bug(또는 더 정확히 말하면, 이 사용 사례에는 적합하지 않지만 그럴 것 같다는 직감이 드는 구현 문제)라고 할 수 있습니다.

그룹 X를 카테고리 Y를 감시(watch)하도록 설정하고 해당 그룹의 멤버가 되면, 실제로 자동으로 카테고리 Y를 감시하게 됩니다. 카테고리 Y는 제 “감시 중(watching)” 카테고리에 복사됩니다. 어떻게 그렇게 되었는지에 대한 흔적은 없으며, 제가 이전에 직접 추가한 것인지, 아니면 그룹 멤버십 때문에 추가된 것인지 알 수 없습니다.

그룹 X에서 탈퇴하면 여전히 카테고리 Y를 감시하게 됩니다. 예상과 달리, 해당 카테고리는 제 “감시 중” 카테고리에서 제거되지 않습니다.

이 구현 방식을 변경하는 것은 상당한 노력이 필요하므로, 현재로서는 플러그인으로 해결하는 것이 적절할 것 같습니다. 그룹에서 제거될 때 :user_removed_from_group 이벤트를 트리거로 사용하여, 해당 카테고리를 가져온 후 사용자 설정에서 제거하는 로직을 구현하면 됩니다.

Do you see any chance that this could be implemented without core support?

Is there already a machinery implemented which could be used to track user interventions on notification levels?

Not as far as I am aware.

Thanks @Jagster
actually I would like to implement it for large forum, I just want to keep the place clean and everyone should see topics according their group selection.

Okay, I will try to check it with Pavilion.

I wanted to mute it but normal also okay for this case.

I agree with this approach - one that this less rigid than the traditional binary access / no access.

It is often useful to have things freely accessible to those that dig for it, but only highly visible / notifying to a select group of people. This is pretty easy to initiate in Discourse, but hard to retract - I believe that this is what you are looking to do.

Users can of course do this themselves, but are generally pretty useless on that front.

Unfortunately, the Custom Wizard Plugin 🧙 requires user interaction to initiate stuff like that. An automation (likely bespoke) would be needed to remove the watching status of those that are no longer in a group.

Or this needs to be a feature request to alter the core behaviour. There are a few feature requests along these lines already.

Hi everyone,

Thanks so much to everyone who replied, especially @Jagster, @NateDhaliwal, @Heliosurge, @thoka, and @nathank for the helpful insights! After thinking it through, I’d really like to see an option for automatically muting categories when a user leaves a group.

I was wondering, what would be the best way to formally request this feature for Discourse? Is there a place where we can submit feature requests, or would it be more of a discussion to get the ball rolling?

Looking forward to hearing your thoughts!

네, Contribute > Feature 채널입니다 :slightly_smiling_face:

Special thanks to @Canapin and everyone who contributed to the discussion and provided insights! :raising_hands: