Create MitUser objects in organic signups.

This is the way we disambiguate MIT users from normal PreregistrationUsers.

(imported from commit adfe781036f653ef2c15850100c7ea26332d9ef4)
This commit is contained in:
Luke Faraone
2013-08-15 12:44:08 -04:00
parent 12c7f276b7
commit db2fd45deb

View File

@@ -248,7 +248,7 @@ def accounts_register(request):
# MitUsers can't be referred and don't have a referred_by field. # MitUsers can't be referred and don't have a referred_by field.
if not mit_beta_user and prereg_user.referred_by: if not mit_beta_user and prereg_user.referred_by:
domain = prereg_user.referred_by.realm.domain 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 # You have a realm set, even though nobody referred you. This
# happens if you sign up through a special URL for an open # happens if you sign up through a special URL for an open
# realm. # realm.
@@ -512,8 +512,14 @@ def create_preregistration_user(email, request):
domain = request.session.get("domain") domain = request.session.get("domain")
if not completely_open(domain): if not completely_open(domain):
domain = None domain = None
prereg_user = PreregistrationUser(email=email, realm=get_realm(domain)) # MIT users who are not explicitly signing up for an open realm
prereg_user.save() # 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 request.session["domain"] = None