Beispiel #1
0
    def activate(self):
        code = self.request.matchdict.get('code', None)
        user_pk = self.request.matchdict.get('user_pk', None)
        act_mgr = ActivationManager(self.request)
        user_mgr = UserManager(self.request)

        activation = act_mgr.get_by_code(code)

        if activation:
            user = user_mgr.get_by_pk(user_pk)

            if user.activation != activation:
                return HTTPNotFound()

            if user:
                self.db.delete(activation)
                user.activated = True
                self.db.add(user)
                self.db.flush()

                self.request.registry.notify(
                    RegistrationActivatedEvent(self.request, user, activation)
                )

                self.request.session.flash(_('Your e-mail address has been verified.'), 'success')
                return HTTPFound(location=self.activate_redirect_view)

        return HTTPNotFound()
Beispiel #2
0
    def test_get_user_activation(self):
        from pyramid_signup.models import Activation
        from pyramid_signup.managers import ActivationManager
        from pyramid_signup.managers import UserManager
        from pyramid_signup.models import User

        user1 = User(username='******',
                     password='******',
                     email='*****@*****.**')
        user2 = User(username='******',
                     password='******',
                     email='*****@*****.**')

        activation = Activation()
        user2.activation = activation

        self.session.add(user1)
        self.session.add(user2)
        self.session.commit()

        request = testing.DummyRequest()
        mgr = ActivationManager(request)
        user_mgr = UserManager(request)

        new_user = user_mgr.get_by_username('sontek2')

        new_activation = mgr.get_by_code(activation.code)

        assert activation == new_activation
        assert new_user.activation == new_activation
    def test_get_user_activation(self):
        from pyramid_signup.models import Activation
        from pyramid_signup.managers import ActivationManager
        from pyramid_signup.managers import UserManager
        from pyramid_signup.models import User

        user1 = User(username="******", password="******", email="*****@*****.**")
        user2 = User(username="******", password="******", email="*****@*****.**")

        activation = Activation()
        user2.activation = activation

        self.session.add(user1)
        self.session.add(user2)
        self.session.commit()

        request = testing.DummyRequest()
        mgr = ActivationManager(request)
        user_mgr = UserManager(request)

        new_user = user_mgr.get_by_username("sontek2")

        new_activation = mgr.get_by_code(activation.code)

        assert activation == new_activation
        assert new_user.activation == new_activation
Beispiel #4
0
    def test_get_activation(self):
        from pyramid_signup.models import Activation
        from pyramid_signup.managers import ActivationManager

        activation = Activation()
        self.session.add(activation)
        self.session.commit()

        request = testing.DummyRequest()
        mgr = ActivationManager(request)

        new_activation = mgr.get_by_code(activation.code)

        assert activation == new_activation
    def test_get_activation(self):
        from pyramid_signup.models import Activation
        from pyramid_signup.managers import ActivationManager

        activation = Activation()
        self.session.add(activation)
        self.session.commit()

        request = testing.DummyRequest()
        mgr = ActivationManager(request)

        new_activation = mgr.get_by_code(activation.code)

        assert activation == new_activation
Beispiel #6
0
    def reset_password(self):
        schema = self.request.registry.getUtility(ISUResetPasswordSchema)
        schema = schema().bind(request=self.request)

        form = self.request.registry.getUtility(ISUResetPasswordForm)
        form = form(schema)

        code = self.request.matchdict.get('code', None)
        act_mgr = ActivationManager(self.request)
        user_mgr = UserManager(self.request)

        activation = act_mgr.get_by_code(code)

        if activation:
            user = user_mgr.get_by_activation(activation)

            if user:
                if self.request.method == 'GET':
                        return {
                            'form': form.render(
                                appstruct=dict(
                                    Username=user.username
                                )
                            )
                        }

                elif self.request.method == 'POST':
                    try:
                        controls = self.request.POST.items()
                        captured = form.validate(controls)
                    except deform.ValidationFailure, e:
                        return {'form': e.render(), 'errors': e.error.children}

                    password = captured['Password']

                    user.password = password
                    self.db.add(user)
                    self.db.delete(activation)

                    self.request.registry.notify(
                        PasswordResetEvent(self.request, user, password)
                    )

                    self.request.session.flash(_('Your password has been reset!'), 'success')

                    return HTTPFound(location=self.reset_password_redirect_view)
Beispiel #7
0
    def test_activate_multiple_users(self):
        from pyramid_signup.views import RegisterController
        from pyramid_signup.models import User
        from pyramid_signup.models import Activation
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer
        from pyramid_signup.managers import UserManager
        from pyramid_signup.managers import ActivationManager
        self.config.include('pyramid_signup')
        self.config.add_route('index', '/')

        self.config.registry.registerUtility(DummyMailer(), IMailer)

        user = User(username='******', password='******')
        user.activation = Activation()
        user1 = User(username='******', password='******')
        user1.activation = Activation()

        self.session.add(user)
        self.session.add(user1)
        self.session.flush()

        request = testing.DummyRequest()
        request.matchdict = Mock()

        def get(key, default):
            if key == 'code':
                return user1.activation.code
            else:
                return user1.pk

        request.matchdict.get = get

        controller = RegisterController(request)
        response = controller.activate()
        mgr = UserManager(request)
        user = mgr.get_by_username('sontek1')

        act_mgr = ActivationManager(request)
        activations = act_mgr.get_all()

        assert len(activations) == 1
        assert user.activated
        assert response.status_int == 302
Beispiel #8
0
    def test_activate_multiple_users(self):
        from pyramid_signup.views import RegisterController
        from pyramid_signup.models import User
        from pyramid_signup.models import Activation
        from pyramid_mailer.interfaces import IMailer
        from pyramid_mailer.mailer import DummyMailer
        from pyramid_signup.managers import UserManager
        from pyramid_signup.managers import ActivationManager
        self.config.include('pyramid_signup')
        self.config.add_route('index', '/')

        self.config.registry.registerUtility(DummyMailer(), IMailer)

        user = User(username='******', password='******')
        user.activation = Activation()
        user1 = User(username='******', password='******')
        user1.activation = Activation()

        self.session.add(user)
        self.session.add(user1)
        self.session.flush()

        request = testing.DummyRequest()
        request.matchdict = Mock()
        get = Mock()
        get.return_value = user1.activation.code
        request.matchdict.get = get

        controller = RegisterController(request)
        response = controller.activate()
        mgr = UserManager(request)
        user = mgr.get_by_username('sontek1')

        act_mgr = ActivationManager(request)
        activations = act_mgr.get_all()

        assert len(activations) == 1
        assert user.activated
        assert response.status_int == 302
Beispiel #9
0
    def activate(self):
        code = self.request.matchdict.get('code', None)
        act_mgr = ActivationManager(self.request)
        user_mgr = UserManager(self.request)

        activation = act_mgr.get_by_code(code)

        if activation:
            user = user_mgr.get_by_activation(activation)

            if user:
                self.db.delete(activation)
                user.activated = True
                self.db.add(user)
                self.db.flush()

                self.request.registry.notify(
                    RegistrationActivatedEvent(self.request, user, activation))

                self.request.session.flash(
                    _('Your e-mail address has been verified.'), 'success')
                return HTTPFound(location=self.activate_redirect_view)

        return HTTPNotFound()