From db2fd45debe577f52be5c8f9688d1ad2cb8cf6ea Mon Sep 17 00:00:00 2001 From: Luke Faraone Date: Thu, 15 Aug 2013 12:44:08 -0400 Subject: [PATCH] Create MitUser objects in organic signups. This is the way we disambiguate MIT users from normal PreregistrationUsers. (imported from commit adfe781036f653ef2c15850100c7ea26332d9ef4) --- zerver/views.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/zerver/views.py b/zerver/views.py index c6170fe1d1..ac1d8767bb 100644 --- a/zerver/views.py +++ b/zerver/views.py @@ -248,7 +248,7 @@ def accounts_register(request): # MitUsers can't be referred and don't have a referred_by field. if not mit_beta_user and prereg_user.referred_by: domain = prereg_user.referred_by.realm.domain - elif prereg_user.realm: + elif not mit_beta_user and prereg_user.realm: # You have a realm set, even though nobody referred you. This # happens if you sign up through a special URL for an open # realm. @@ -512,8 +512,14 @@ def create_preregistration_user(email, request): domain = request.session.get("domain") if not completely_open(domain): domain = None - prereg_user = PreregistrationUser(email=email, realm=get_realm(domain)) - prereg_user.save() + # MIT users who are not explicitly signing up for an open realm + # require special handling (They may already have an (inactive) + # account, for example) + if email_to_domain(email) == "mit.edu" and not domain: + prereg_user, created = MitUser.objects.get_or_create(email=email) + else: + prereg_user = PreregistrationUser(email=email, realm=get_realm(domain)) + prereg_user.save() request.session["domain"] = None