Пример #1
0
    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,
        )
Пример #2
0
    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)