sipb / uplink

SIPB's integrated chatroom project
GNU Affero General Public License v3.0
6 stars 1 forks source link

Rebranding/Customizing #7

Closed celskeggs closed 1 year ago

celskeggs commented 4 years ago

We aren't allowed to -- and don't want to -- have the name "Mattermost" all over everything; let's fix that.

origamisaturn commented 4 years ago

https://github.com/mattermost/docs/issues/1006

gabrc52 commented 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

gabrc52 commented 1 year ago

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)

gabrc52 commented 1 year ago

https://chat.mozilla.org/ has a really nice screen and they also only use single-sign on like us

image

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

gabrc52 commented 1 year ago

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.

gabrc52 commented 1 year ago

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

gabrc52 commented 1 year ago

Another thing we should customize is the "you have a new message" emails

image

If you click on "view" it takes you to https://app.element.io instead of our own hosted Element client

gabrc52 commented 1 year ago
gabrc52 commented 1 year ago

image

gabrc52 commented 1 year ago

image

We could also add the logo (or any other custom HTML) on the Element home once people are signed in

gabrc52 commented 1 year ago

This is customized enough, I think we can close this issue.