* Implement Discord OAuth
- extend group caching to Discord
- use bot token to manipulate api
- migrate to official API
Addresses #419
* Remove virtualenv wrapper
* Discord OAuth integration playtest corrections
Closes#419
* Initial work on Discourse integration
* Views for discourse
* Discourse group updates
Correct password display
* Removed password functions
Changed delete to suspend user forever
Added unsuspend check to add_user
- prevents exploit of another user entering incorrect password for email yet passing validation using existing token mentioned in #146
- does not protect against same user entering wrong password (I can live with this.)
Periodic task to remove invalid token every 2 hours
I forgot to adjust the class names in admin.py after changing the first
characters to caps.
There was also a little shuffling of code to make the definitions work.