def activate(request, activation_key): """ Activates a user's account, if their key is valid and hasn't expired. """ from registration.models import RegistrationProfile activation_key = activation_key.lower() account = RegistrationProfile.objects.activate_user(activation_key) if account: # ** hack for logging in the user ** # when the login form is posted, user = authenticate(username=data['username'], password=data['password']) # ...but we cannot authenticate without password... so we work-around authentication account.backend = settings.AUTHENTICATION_BACKENDS[0] _login(request, account) try: contact = Contact.objects.get(user=account) request.session[CUSTOMER_ID] = contact.id send_welcome_email(contact.email, contact.first_name, contact.last_name) signals.satchmo_registration_verified.send(contact, contact=contact) except Contact.DoesNotExist: # Treated for better compatibility with registation tests without error pass context = RequestContext(request, { 'account': account, 'expiration_days': config_value('SHOP', 'ACCOUNT_ACTIVATION_DAYS'), }) return render_to_response('registration/activate.html', context_instance=context)
def save_contact(self, request): log.debug("Saving contact") data = self.cleaned_data password = data['password1'] email = data['email'] username = data['username'] verify = (config_value('SHOP', 'ACCOUNT_VERIFICATION') == 'EMAIL') if verify: site = Site.objects.get_current() from registration.models import RegistrationProfile # TODO: # In django-registration trunk this signature has changed. # Satchmo is going to stick with the latest release so I'm changing # this to work with 0.7 # When 0.8 comes out we're going to have to refactor to this: #user = RegistrationProfile.objects.create_inactive_user( # username, email, password, site) # See ticket #1028 where we checked in the above line prematurely user = RegistrationProfile.objects.create_inactive_user(username, '', password, email) else: user = User.objects.create_user(username, email, password) user.save() # If the user already has a contact, retrieve it. # Otherwise, create a new one. try: contact = Contact.objects.from_request(request, create=False) except Contact.DoesNotExist: contact = Contact() contact.user = user contact.name = username contact.email = email contact.title = data.get('title', '') contact.save() if 'newsletter' not in data: subscribed = False else: subscribed = data['newsletter'] signals.satchmo_registration.send(self, contact=contact, subscribed=subscribed, data=data) if not verify: user = authenticate(username=username, password=password) login(request, user) send_welcome_email(email, username, '') signals.satchmo_registration_verified.send(self, contact=contact) self.contact = contact return contact
def save_contact(self, request): log.debug("Saving contact") data = self.cleaned_data password = data['password1'] email = data['email'] first_name = data['first_name'] last_name = data['last_name'] username = generate_id(first_name, last_name, email) verify = (config_value('SHOP', 'ACCOUNT_VERIFICATION') == 'EMAIL') if verify: from registration.models import RegistrationProfile user = RegistrationProfile.objects.create_inactive_user( username, password, email, send_email=True) else: user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name user.save() # If the user already has a contact, retrieve it. # Otherwise, create a new one. try: contact = Contact.objects.from_request(request, create=False) except Contact.DoesNotExist: contact = Contact() contact.user = user contact.first_name = first_name contact.last_name = last_name contact.email = email contact.role = 'Customer' contact.title = data.get('title', '') contact.save() if 'newsletter' not in data: subscribed = False else: subscribed = data['newsletter'] signals.satchmo_registration.send(self, contact=contact, subscribed=subscribed, data=data) if not verify: user = authenticate(username=username, password=password) login(request, user) send_welcome_email(email, first_name, last_name) signals.satchmo_registration_verified.send(self, contact=contact) self.contact = contact return contact
def save_contact(self, request, force_new_contact = False): log.debug("Saving contact") data = self.cleaned_data password = data['password1'] email = data['email'] first_name = data['first_name'] last_name = data['last_name'] allow_nickname = config_value('SHOP', 'ALLOW_NICKNAME_USERNAME') if allow_nickname and data['username']: username = data['username'] else: username = generate_id(first_name, last_name, email) verify = (config_value('SHOP', 'ACCOUNT_VERIFICATION') == 'EMAIL') if verify: site = Site.objects.get_current() from registration.models import RegistrationProfile user = RegistrationProfile.objects.create_inactive_user( username, email, password, site) else: user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name user.save() # If the user already has a contact, retrieve it. # Otherwise, create a new one. contact = None if not force_new_contact: try: contact = Contact.objects.from_request(request, create=False) except Contact.DoesNotExist: pass if contact is None: contact = Contact() contact.user = user contact.first_name = first_name contact.last_name = last_name contact.email = email contact.role = ContactRole.objects.get(pk='Customer') contact.title = data.get('title', '') contact.save() if 'newsletter' not in data: subscribed = False else: subscribed = data['newsletter'] signals.satchmo_registration.send(self, contact=contact, subscribed=subscribed, data=data) if not verify: username_field = getattr(User, "USERNAME_FIELD", 'username') if username_field == 'username': user = authenticate(username=username, password=password) else: user = authenticate(username=email, password=password) login(request, user) send_welcome_email(email, first_name, last_name) signals.satchmo_registration_verified.send(self, contact=contact) self.contact = contact return contact
def save_contact(self, request): log.debug("Saving contact") data = self.cleaned_data password = data['password1'] email = data['email'] first_name = data['first_name'] last_name = data['last_name'] username = generate_id(first_name, last_name, email) verify = (config_value('SHOP', 'ACCOUNT_VERIFICATION') == 'EMAIL') if verify: site = Site.objects.get_current() from registration.models import RegistrationProfile # TODO: # In django-registration trunk this signature has changed. # Satchmo is going to stick with the latest release so I'm changing # this to work with 0.7 # When 0.8 comes out we're going to have to refactor to this: #user = RegistrationProfile.objects.create_inactive_user( # username, email, password, site) # See ticket #1028 where we checked in the above line prematurely user = RegistrationProfile.objects.create_inactive_user( username, password, email) else: user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name user.save() # If the user already has a contact, retrieve it. # Otherwise, create a new one. try: contact = Contact.objects.from_request(request, create=False) except Contact.DoesNotExist: contact = Contact() contact.user = user contact.first_name = first_name contact.last_name = last_name contact.email = email contact.role = ContactRole.objects.get(pk='Customer') contact.title = data.get('title', '') contact.save() if 'newsletter' not in data: subscribed = False else: subscribed = data['newsletter'] signals.satchmo_registration.send(self, contact=contact, subscribed=subscribed, data=data) if not verify: user = authenticate(username=username, password=password) login(request, user) send_welcome_email(email, first_name, last_name) signals.satchmo_registration_verified.send(self, contact=contact) self.contact = contact return contact
def save_contact(self, request, force_new_contact = False): log.debug("Saving contact") data = self.cleaned_data password = data['password1'] email = data['email'] first_name = data['first_name'] last_name = data['last_name'] allow_nickname = config_value('SHOP', 'ALLOW_NICKNAME_USERNAME') if allow_nickname and data['username']: username = data['username'] else: username = generate_id(first_name, last_name, email) verify = (config_value('SHOP', 'ACCOUNT_VERIFICATION') == 'EMAIL') if verify: site = Site.objects.get_current() from registration.models import RegistrationProfile user = RegistrationProfile.objects.create_inactive_user( username, email, password, site) else: user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name user.save() # If the user already has a contact, retrieve it. # Otherwise, create a new one. contact = None if not force_new_contact: try: contact = Contact.objects.from_request(request, create=False) except Contact.DoesNotExist: pass if contact is None: contact = Contact() contact.user = user contact.first_name = first_name contact.last_name = last_name contact.email = email contact.role = ContactRole.objects.get(pk='Customer') contact.title = data.get('title', '') contact.save() if 'newsletter' not in data: subscribed = False else: subscribed = data['newsletter'] signals.satchmo_registration.send(self, contact=contact, subscribed=subscribed, data=data) if not verify: user = authenticate(username=username, password=password) login(request, user) send_welcome_email(email, first_name, last_name) signals.satchmo_registration_verified.send(self, contact=contact) self.contact = contact return contact