Closed celskeggs closed 1 year ago
Some things:
See: Maybe some branding? https://github.com/aaronraimist/element-themes
Just make it look more MIT and at least not green - because it looks very WhatsApp and also Apple uses green for SMS so it may be a bad idea because of that too
Flags (experimental features) and other options can be tweaked too, on the Element config file: I enabled LaTeX because we're MIT
Also the email/web templates could be edited too: https://github.com/matrix-org/synapse/tree/master/synapse/res/templates Maybe make the templates use dark theme instead of light theme, or add some branding (SIPB logo and MIT logo —if permission)
If so, then on logging in, you could get a welcome DM from (instead of Clyde or Slackbot) Fuzzball? welcoming you to the app and for instance letting you know you can change your name, and how to do other things. (This can be done with the system alerts Synapse feature for instance)
https://chat.mozilla.org/ has a really nice screen and they also only use single-sign on like us
Their config.json can be a good starting point for how to setup this type of customization. Our current config immediately redirects you to sign-in which is okay but we currently can't add any welcome/other text/instructions
Also: we should customize the template for terms and conditions, and write some brief blurb saying
Welcome to Matrix. This is how Matrix works. This service is provided "as-is" with no warranty. We will try our best to keep it running smoothly and you should feel free to reach out if you have any issues. The maintainers plan to rely on it, so it should be available 24/7 or really close. However, we also can't legally guarantee there won't be hiccups. You agree that your username will be set to your kerberos/athena username (i.e. your email). If you wish to use a different username, please do not accept and instead email us at [insert email] here so we can manually create your account with the desired username. Your messages are only end-to-end encrypted, and hence protected, if they say so. Public channels are not end-to-end encrypted because it wouldn't make sense to do so (also clients expect only private channels to be so). If a conversation isn't end to end encrypted, just like Messenger and Discord ones, we can't guarantee it's private. We promise not to look at it, and we promise to have a good security that guarantees we won't get hacked. But we can't guarantee it won't get hacked or that someone won't break into the SIPB office and steal your non-end-to-end encrypted messages.
Actually that sounds slightly terrifying, I'm just brainstorming... This is why #6 is important too!
But the point is that the template should be customized you and ask you 3 things
But what if a user wants to join the rooms of only some of the classes they're in? We could DM them the list of rooms so they can join or give them invites... Hmm this is really why invites might work best. But invites are public so that doesn't work. Then maybe we can make those rooms public but enforce access control through user_may_join_room
Or worst case scenario/alternative (because it seems like the consent and auto join room feature might be mutually exclusive...), instead of doing the consent screen through Synapse, we can hook our fake Shibboleth to ask this and then add hidden form fields and then when you hit submit it takes you to the real SAML service provider endpoint.
And add a hook to Synapse as a plugin after account creation, and instantly do the adding (on_user_registration
). Try to implement it similarly to the auto join room feature, where you don't get asked if you want to join and instead get auto joined.
This is where the auto join feature was implemented in Synapse: https://github.com/matrix-org/synapse/blob/b5b5f6608462a988b05502a3b70b6a57ca3846d2/synapse/handlers/register.py
(as far as I know, Python doesn't do private methods and the underscores are just convention, so we can import RegistrationHandler
and call its _join_rooms
method (rather than reimplementing the add logic)
Alternatively, for the mailing list consent, if we can figure out a way for Synapse to hide invite rooms and only show them if someone has joined, then having people accept invitations also acts as consent to be in the groups. Basically, maybe what makes most sense is something like WhatsApp and Messenger and Signal do: if you get added to a gc and the person who adds you is not trusted tm, you get it as an invite request, but if the person is trusted tm, you're automatically in. But Matrix adding works as invite then join as opposed to just add.
To customize the Synapse pages, two templates to edit are definitely:
https://github.com/matrix-org/synapse/blob/master/synapse/res/templates/_base.html
https://github.com/matrix-org/synapse/blob/master/synapse/res/templates/sso_footer.html
Another thing we should customize is the "you have a new message" emails
If you click on "view" it takes you to https://app.element.io instead of our own hosted Element client
We could also add the logo (or any other custom HTML) on the Element home once people are signed in
This is customized enough, I think we can close this issue.
We aren't allowed to -- and don't want to -- have the name "Mattermost" all over everything; let's fix that.