openSUSE / osem

Open Source Event Manager. An event management tool tailored to Free and Open Source Software conferences.
http://osem.io
MIT License
878 stars 494 forks source link

Support of Custom Domains for conferences #1599

Open shlok007 opened 7 years ago

shlok007 commented 7 years ago

The idea is to allow an organizer of a conference to add his own domain name to the conference.

Summary of changes to be required when using a custom domain :

Future Improvements:

lagartoflojo commented 7 years ago

Find conference by the domain name and not by short title

Can the domain name be a domain with sub-domain? What about redirecting www.myconference.com to myconference.com or vice-versa?

Redirect user to the hosted version tenant for the routes with admin namespace

What do you mean by that?

shlok007 commented 7 years ago

What about redirecting www.myconference.com to myconference.com or vice-versa?

Thanks, If the domain name added is osem.com then we can redirect www.osem.com to the former and vice versa.

Can the domain name be a domain with sub-domain?

Currently we can focus on adding apex domains or just www subdomains by adding CNAME record with their domain registrar and providing documentation for the same. Maybe work with extending support for subdomains later when this gets ready and working. Does this sound possible?

Redirect user to the hosted version tenant for the routes with admin namespace

Since, we will be sharing the user session in both the hosted version ( hosted-version.com ) and the custom domain ( myconference.com ) I thought we can keep the custom domain for only those views that can be accessed by users with no role in the non-admin namespace for that particular conference. Any action that routes to the admin namespace myconference.com/admin/ can be redirected to the hosted version domain hosted-version.com/admin/conferences/myconference/admin

@lagartoflojo Please do let me know your suggestions.

EDIT:

Can the domain name be a domain with sub-domain?

A root domain or 'naked' domain should not be added as a CNAME record therefore the custom domain should be a domain with third-level domain label present. Be it www or any other subdomain. I'll create a card to add the same in the written instructions for the custom domain.

lagartoflojo commented 7 years ago

Sure, that sounds perfectly reasonable. Let's implement the simplest version first, and then we can look into the details. Another subject we have to look into is SSL. For example, we don't want to login through a non-encrypted endpoint and send our password in plain text. Could you add a card for that in the project?

shlok007 commented 7 years ago

Yes, sure, I will create a card for this.

Maintain user session in between both the tenants.

I was thinking, one way to maintain session can be to manually configure devise to pass a session token in the header while redirecting back to myconference.com after login in from hosted-version.com . This can be tricky but sounds possible. This can however cause security vulnerabilities which might be covered by using SSL . I'll dig into this more and we can then talk over other different ways too. :)

shlok007 commented 7 years ago