synac-chat / server

The synac official server side application
MIT License
3 stars 0 forks source link

Use IRC-like modes instead of Discord-like roles ("groups") #1

Closed jD91mZM2 closed 6 years ago

jD91mZM2 commented 6 years ago

Motivation: I found a bug and it was really frustrating to fix. I don't want that to happen again.

Roles/Groups are epic. Totally customizable. Yay. But let's face it, they're often just used for setting status, like having a "developer" role without any actual permission differences. Synac's role system is powerful. Sadly that is also what makes it complicated. There's a lot of code involved to make role positions not contain gaps or such. There's a lot of code to actually calculate the final role score. There's a lot of code for channel overrides. It's all a big unfixable mess. And not to mention every single client got to have an interface for roles.

Idea: We use modes. Every user has a mode, like +rw. Then you can change this mode per channel.

Problem: What if a channel is supposed to be completely silent? Do you have to edit the modes for every user?

Solution: We make every channel have a default mode, which is used when a user's mode isn't set (a mode would be optional)

Please react with :+1: or :-1:

jD91mZM2 commented 6 years ago

If it becomes apparent modes are lacking support to update multiple users at once (like a role where you change the entire role and not every user individually), perhaps we could add some sort of labelling system. Like you specify the tag "developer", and then you bulk-update every deleloper to have a specific mode.

ttofis commented 6 years ago

I really like the current system way too much, but if it is a requirement to continue the health of synac, it can go.