Python-Practice-Discord / template_python_discord_bot

MIT License
2 stars 3 forks source link

Change the way TOS changes are handled #10

Open peterHoburg opened 3 years ago

peterHoburg commented 3 years ago

Right now, when there is a new version of a TOS ALL USER DATA WILL BE DELETE!

This is not ideal.

What we want; When a new TOS comes out, block all access for the user until they have agreed to the new TOS. Do not delete any user data unless they click the red button below the TOS. Have the bot check the hash vs the db when putting in a new message.

Morpheus636 commented 3 years ago

When a new TOS comes out, block all access for the user until they have agreed to the new TOS.

This is a HORRIBLE user experience. Have the bot post a notification, pinging users if they want to, and then let them remove their reaction if they want, or not, if they don't. Maybe also give them a DM the first time they use the bot after the change, letting them know of the change.

It would be one thing if we could give the user a popup that they have to see and acknowledge before continuing with the server, but can you imagine the frustration of being offline for a few weeks, coming back, and having to figure out why the bot isn't working?

MAYBE make this an option for the ultra-privacy-conscious, but it should absolutely not be forced on people, or even be the default option. Having opt-out as the default is already close to the line, but I'd consider it acceptable since it's more positive for privacy than it is negative UX. That's the balance that needs to be weighed. This isn't SSNs, it's discord messages. Yes, both are bad in the wrong hands, but pushing privacy over EVERYTHING else is a good way to make a niche product that nobody uses because it's too hard to use. It's an important factor to weigh, but it's still a factor to weigh in the grand scheme of the project.

Morpheus636 commented 3 years ago

Can you also explain how TOS is handled right now? For sake of simplicity, one channel with all the bot's TOS opt-in messages would be optimal, so users can just go down the list adding their reactions to each one. Simple for the user and the user isn't getting a message from every bot when they join.

Also, why is the bot using a database for this? Discord roles assigned when the user agrees would be perfect for it. If the user doesn't have the role, the bot ignores them, if they do have the role, the bot acknowledges them. It would also let admins limit access/visibility of the bot channels until the user agrees, which is good from a UX perspective.