Пример #1
0
 def input_data(self, user):
     return {
         'uid': encode_uid(user.pk),
         'token': default_token_generator.make_token(user),
         'new_password': '******',
         're_new_password': '******',
     }
Пример #2
0
 def get_context_data(self):
     context = super().get_context_data()
     user = context.get("user")
     context["uid"] = utils.encode_uid(user.pk)
     context["token"] = account_activation_token.make_token(user)
     context["url"] = settings.ACTIVATION_URL.format(**context)
     return context
Пример #3
0
 def get_context_data(self):
     context = super().get_context_data()
     user = context.get("user")
     context["uid"] = utils.encode_uid(user.pk)
     context["token"] = default_token_generator.make_token(user)
     context["url"] = settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
     return context
Пример #4
0
    def test_reset_password_confirm_password_error(self):
        """
        confirm password reset error password missmatch
        """

        uid = utils.encode_uid(self.user.pk)
        token = default_token_generator.make_token(self.user)

        query = """
        mutation {
            resetPasswordConfirm(
                email: "*****@*****.**"
                uid: "%s"
                token: "%s"
                newPassword: "******"
                reNewPassword: "******"
            ) {
                success
            }
        }
        """ % (uid, token)
        query = "/graphql?query=%s" % query
        response = self.client.post(query)
        result = response.json()
        assert not result['data']['resetPasswordConfirm']['success']
Пример #5
0
 def send_password_reset_sms(self, user):
     url = settings.URL_PREFIX + '/' + djoser_settings.PASSWORD_RESET_CONFIRM_URL.format(
         token=default_token_generator.make_token(user),
         uid=encode_uid(user.pk))
     settings.SEND_SMS_HANDLER(to=user.phone_number, body=url)
     user.last_password_reset_sms_sent_at = timezone.now()
     user.save()
Пример #6
0
def test_reset_password_confirm_success(client, user):
    """
    successfully confirm a password reset
    """

    uid = utils.encode_uid(user.pk)
    token = default_token_generator.make_token(user)

    query = """
    mutation {
        resetPasswordConfirm(
            input: {
                email: "*****@*****.**"
                uid: "%s"
                token: "%s"
                newPassword: "******"
                reNewPassword: "******"
            }
        ) {
            success
        }
    }
    """ % (uid, token)
    query = "/graphql?query=%s" % query
    response = client.post(query)
    result = response.json()
    assert type(result['data']['resetPasswordConfirm']['success'])
Пример #7
0
    def set_context_data(self):
        super(PasswordResetEmail, self).set_context_data()

        user = self.context.get('user')
        self.context['uid'] = utils.encode_uid(user.pk)
        self.context['token'] = default_token_generator.make_token(user)
        self.context['url'] = settings.ACTIVATION_URL.format(**self.context)
Пример #8
0
def test_reset_password_confirm_token_error(client, user):
    """
    confirm password reset token error
    """

    uid = utils.encode_uid(user.pk)
    token = "Angela Merkel"

    query = """
    mutation {
        resetPasswordConfirm(
            input: {
                email: "*****@*****.**"
                uid: "%s"
                token: "%s"
                newPassword: "******"
                reNewPassword: "******"
            }
        ) {
            success
        }
    }
    """ % (uid, token)
    query = "/graphql?query=%s" % query
    response = client.post(query)
    result = response.json()
    assert not result['data']['resetPasswordConfirm']['success']
Пример #9
0
 def get_context_data(self):
     context = super().get_context_data()
     user = context.get('user')
     context['uid'] = utils.encode_uid(user.pk)
     context['token'] = default_token_generator.make_token(user)
     context['language'] = get_language()
     context['url'] = user.organization.password_reset_url.format(**context)
     return context
Пример #10
0
    def get_context_data(self):
        context = super(ActivationEmail, self).get_context_data()

        user = context.get('user')
        context['uid'] = utils.encode_uid(user.pk)
        context['token'] = default_token_generator.make_token(user)
        context['url'] = settings.ACTIVATION_URL.format(**context)
        return context
Пример #11
0
    def get_context_data(self):
        context = super(PasswordResetEmail, self).get_context_data()

        user = context.get('user')
        context['uid'] = utils.encode_uid(user.pk)
        context['token'] = default_token_generator.make_token(user)
        context['url'] = settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
        return context
Пример #12
0
 def get_context_data(self):
     context = super().get_context_data()
     context.update({"domain": "127.0.0.1:3000"})
     user = context.get("user")
     context["uid"] = utils.encode_uid(user.pk)
     context["token"] = default_token_generator.make_token(user)
     context["url"] = settings.ACTIVATION_URL.format(**context)
     return context
Пример #13
0
    def get_context_data(self):
        # ActivationEmail can be deleted
        context = super().get_context_data()

        user = context.get("user")
        context["uid"] = utils.encode_uid(user.pk)
        context["token"] = default_token_generator.make_token(user)
        context["url"] = settings.ACTIVATION_URL.format(**context)
        return context
Пример #14
0
 def get_context_data(self):
     context = super().get_context_data()
     user = context.get('user')
     context['uid'] = utils.encode_uid(user.pk)
     context['token'] = default_token_generator.make_token(user)
     context['url'] = settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
     context['protocol'] = settings.DJOSER_GEEKPLANNER.get('protocol')
     context['domain'] = settings.DJOSER_GEEKPLANNER.get('domain_address')
     context['site_name'] = settings.DJOSER_GEEKPLANNER.get('domain_name')
     return context
Пример #15
0
    def get_context_data(self):
        context = super(ActivationEmail, self).get_context_data()

        user = context.get('user')
        context['uid'] = utils.encode_uid(user.pk)
        context['token'] = default_token_generator.make_token(user)
        context['url'] = djoser_conf.settings.ACTIVATION_URL.format(**context)
        context['protocol'] = ponera.settings.EMAIL_URL_SCHEMA
        context['domain'] = 'activation'
        return context
Пример #16
0
    def get_context_data(self):
        context = super(ActivationEmail, self).get_context_data()
        user = context.get('user')
        context['uid'] = utils.encode_uid(user.pk)
        context['token'] = default_token_generator.make_token(user)
        context['url'] = djoser_settings.ACTIVATION_URL.format(**context)
        context['domain'] = settings.DJOSER_EMAIL.get('DOMAIN')
        context['site_name'] = settings.DJOSER_EMAIL.get('SITE_NAME')

        return context
Пример #17
0
    def get_context_data(self):
        context = super(PasswordResetEmail, self).get_context_data()

        user = context.get('user')
        context['uid'] = utils.encode_uid(user.pk)
        context['token'] = default_token_generator.make_token(user)
        context['url'] = djoser_conf.settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
        context['protocol'] = ponera.settings.EMAIL_URL_SCHEMA
        context['domain'] = 'password-reset'
        return context
Пример #18
0
    def get_context_data(self):
        context = super(PasswordResetEmail, self).get_context_data()
        user = context.get('user')
        context['uid'] = utils.encode_uid(user.pk)
        context['token'] = default_token_generator.make_token(user)
        context['url'] = djoser_settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
        context['domain'] = settings.DJOSER_EMAIL.get('DOMAIN')
        context['site_name'] = settings.DJOSER_EMAIL.get('SITE_NAME')

        return context
Пример #19
0
    def get_context_data(self):
        # PasswordResetEmail can be deleted
        context = super().get_context_data()

        user = context.get("user")
        context["uid"] = utils.encode_uid(user.pk)
        context["token"] = default_token_generator.make_token(user)
        context["url"] = settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
        context["protocol"] = django_settings.URL_PROTOCOL
        return context
Пример #20
0
    def get_context_data(self):
        print("AwesomeActivationEmail")
        # PasswordResetEmail can be deleted
        context = super().get_context_data()

        user = context.get("user")
        context["uid"] = utils.encode_uid(user.pk)
        context["token"] = default_token_generator.make_token(user)
        context["url"] = settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
        return context
Пример #21
0
    def get_context_data(self):
        context = super().get_context_data()

        user = context.get("user")
        # raw_password = context.get("view").request.data.get("password")
        # context["initial_password"] = raw_password
        context["uid"] = utils.encode_uid(user.pk)
        context["token"] = default_token_generator.make_token(user)
        context["url"] = settings.ACTIVATION_URL.format(**context)
        return context
Пример #22
0
    def get_context_data(self):
        context = super().get_context_data()

        user = context.get("user")
        context["uid"] = utils.encode_uid(user.pk)
        context["token"] = default_token_generator.make_token(user)
        context["url"] = settings.ACTIVATION_URL.format(**context)
        activation_email_sent.send(sender=self.__class__,
                                   uid=context['uid'],
                                   token=context['token'])
        return context
Пример #23
0
    def test_successfully_activation(self, anonymous_client, url):
        user = mixer.blend(User, is_active=False)
        data = {
            'uid': encode_uid(user.pk),
            'token': default_token_generator.make_token(user),
        }
        response = anonymous_client.post(path=url, data=data)
        user.refresh_from_db()

        assert response.status_code == status.HTTP_204_NO_CONTENT
        assert user.is_active
Пример #24
0
    def get_context_data(self):
        # PasswordResetEmail can be deleted
        context = super().get_context_data()

        user = context.get("user")
        context["uid"] = utils.encode_uid(user.pk)
        context["token"] = default_token_generator.make_token(user)
        context["url"] = settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
        context["base_url"] = base_settings.BASE_URL
        context["murren_name"] = user.username
        context["murren_email"] = user.email
        return context
Пример #25
0
    def get_context_data(self):
        # ActivationEmail can be deleted
        context = super().get_context_data()

        user = context.get("user")
        context["uid"] = utils.encode_uid(user.pk)
        context["token"] = default_token_generator.make_token(user)
        context["url"] = settings.ACTIVATION_URL.format(**context)
        context["base_url"] = base_settings.FRONTEND_URL
        context["murren_name"] = user.username
        context["murren_email"] = user.email
        return context
Пример #26
0
def get_activation_uid_and_token(client, userData):
    """
    Creates a new user using the Djoser create user endpoint and returns a Djoser uid and token.
    The uid and token are part of the Djoser user account email activation link (i.e. https://domain/uid/token/).
    This method creates uid and token the same way as Djoser (`source`_).

    .. _source: https://github.com/sunscrapers/djoser/blob/b648b07dc2da7dab4c00c1c39af3d6ec53f58eb6/djoser/email.py#L16
    """
    response = client.post('/api/v1/auth/users/', userData)
    user = User.objects.get(UserID=response.data['UserID'])
    token = default_token_generator.make_token(user)
    uid = utils.encode_uid(user.UserID)
    return token, uid
Пример #27
0
    def test_activate_account(self):
        user = UserFactory.create()

        token = cadastaTokenGenerator.make_token(user)

        user.last_login = datetime.now()
        user.save()

        data = {'uid': encode_uid(user.pk), 'token': token}
        response = self.request(method='POST', post_data=data)

        user.refresh_from_db()
        assert response.status_code == 200
        assert user.email_verified is True
Пример #28
0
    def post(self, request):
        email = request.data['email']
        user = User.objects.get(email=email)

        return Response({
            'data': {
                'resetPasswordUrl':
                settings.DJOSER['PASSWORD_RESET_CONFIRM_URL'].format(
                    email=user.email,
                    uid=encode_uid(user.pk),
                    token=default_token_generator.make_token(user),
                )
            }
        })
Пример #29
0
    def test_activate_account(self):
        user = UserFactory.create()

        token = cadastaTokenGenerator.make_token(user)

        user.last_login = datetime.now()
        user.save()

        data = {'uid': encode_uid(user.pk), 'token': token}
        response = self.request(method='POST', post_data=data)

        user.refresh_from_db()
        assert response.status_code == 200
        assert user.email_verified is True
Пример #30
0
 def get_context_data(self, **kwargs):
     """
     Overrides context data.
     :param kwargs: additional key-value arguments.
     :return: renewed context.
     """
     context = super(ActivationEmailView, self).get_context_data()
     user = context.get('user')
     context['uid'] = utils.encode_uid(user.pk)
     context['token'] = default_token_generator.make_token(user)
     context['url'] = djoser_settings.ACTIVATION_URL.format(**context)
     context['protocol'] = settings.DJOSER_GEEKPLANNER.get('protocol')
     context['domain'] = settings.DJOSER_GEEKPLANNER.get('domain_address')
     context['site_name'] = settings.DJOSER_GEEKPLANNER.get('domain_name')
     return context
Пример #31
0
 def setUp(self) -> None:
     self.user = self.create_user()
     self.activate = '''
         mutation Activate ($input: ActivateMutationInput!) {
             activate(input: $input) {
                 errors {
                     field
                     messages
                 }
             }
         }
     '''
     self.input = {
         'uid': encode_uid(self.user.pk),
         'token': default_token_generator.make_token(self.user)
     }
Пример #32
0
 def mutate_and_get_payload(cls, input, context, info):
     email = input.get('email')
     password = input.get('password')
     password_repeat = input.get('password_repeat')
     if password == password_repeat:
         try:
             user = UserModel.objects.create(
                 email=email,
                 username=email,
                 is_active=True
             )
             user.set_password(password)
             user.save()
             if djoser_settings.get('SEND_ACTIVATION_EMAIL'):
                 send_activation_email(user, context)
             return Register(success=bool(user.id),uid=encode_uid(user.pk))
         except IntegrityError:
             errors = ["email", "Email already registered."]
             return Register(success=False, errors=errors, uid='')
         except Exception as e:
             errors = [str(e)]
             return Register(success=False, errors=errors, uid='')
     errors = ["password", "Passwords don't match."]
     return Register(success=False, errors=errors, uid='')