def save(self, domain_override=None, subject_template_name='registration/password_reset_subject.txt', email_template_name='registration/password_reset_email.html', use_https=False, token_generator=default_token_generator, from_email=None, request=None, html_email_template_name=None, extra_email_context=None): """ Generate a one-use only link for resetting password and send it to the user. """ person_number = self.cleaned_data['person_number'] user, _ = Member.find_by_ssn(person_number) if not domain_override: current_site = get_current_site(request) site_name = current_site.name domain = current_site.domain else: site_name = domain = domain_override context = { 'email': user.email, 'domain': domain, 'site_name': site_name, 'uid': urlsafe_base64_encode(force_bytes(user.pk)), 'user': user, 'token': token_generator.make_token(user), 'protocol': 'https' if use_https else 'http', **(extra_email_context or {}), } self.send_mail( subject_template_name, email_template_name, context, from_email, user.email, html_email_template_name=html_email_template_name, )
def get_input_data(self, field, message, default=None): """ Extends get_input_data from the build in createsuperuser so that we can get a melos id for the superuser to be created. """ if field.name == "melos_id": melos_id = None while melos_id is None: ssn = input("Personnummer: ") found_user, found_melos_id = Member.find_by_ssn(ssn) if found_user is None: melos_id = found_melos_id else: self.stderr.write( "An account with that personnummer already exists") melos_id = None return melos_id else: return super().get_input_data(field, message, default)