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_profile_update_password(self):
        from pyramid_signup.views import ProfileController
        from pyramid_signup.managers import UserManager
        from pyramid_signup.interfaces import ISUSession
        from pyramid_signup.events import ProfileUpdatedEvent
        from pyramid_signup.models import crypt

        self.config.add_route('index', '/')
        self.config.include('pyramid_signup')

        from pyramid_signup.models import User

        user = User(username='******', password='******', email='*****@*****.**',
            activated=True)

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

        def handle_profile_updated(event):
            request = event.request
            session = request.registry.getUtility(ISUSession)
            session.commit()

        self.config.add_subscriber(handle_profile_updated, ProfileUpdatedEvent)


        request = self.get_csrf_request(post={
            'First_Name': 'John',
            'Last_Name': 'Anderson',
            'Email': '*****@*****.**',
            'Password': {
                'value': 'test123',
                'confirm': 'test123',
            },
        }, request_method='POST')

        request.user = user

        request.matchdict = Mock()
        get = Mock()
        get.return_value = user.pk
        request.matchdict.get = get


        flash = Mock()
        request.session.flash = flash

        view = ProfileController(request)

        view.profile()
        mgr = UserManager(request)
        new_user = mgr.get_by_pk(user.pk)

        assert new_user.first_name == 'John'
        assert new_user.last_name == 'Anderson'
        assert new_user.email == '*****@*****.**'
        assert not crypt.check(user.password, 'temp' + user.salt)
Beispiel #3
0
    def __getitem__(self, key):
        mgr = UserManager(self.request)

        user = mgr.get_by_pk(key)

        if user:
            user.__parent__ = self
            user.__name__ = key

        return user
Beispiel #4
0
    def profile(self):
        pk = self.request.matchdict.get('user_pk', None)

        mgr = UserManager(self.request)

        user = mgr.get_by_pk(pk)

        if not user:
            return HTTPNotFound()

        return {'user': user}
Beispiel #5
0
    def edit_profile(self):
        pk = self.request.matchdict.get('user_pk', None)

        mgr = UserManager(self.request)

        user = mgr.get_by_pk(pk)

        if not user:
            return HTTPNotFound()

        if self.request.method == 'GET':
            username = user.username
            first_name = user.first_name
            last_name = user.last_name
            email = user.email

            return {
                    'form': self.form.render(
                        appstruct= dict(
                            Username=username,
                            First_Name=first_name if first_name else '',
                            Last_Name=last_name if last_name else '',
                            Email=email if email else '',
                        )
                    )
                }
        elif self.request.method == 'POST':
            try:
                controls = self.request.POST.items()
                captured = self.form.validate(controls)
            except deform.ValidationFailure, e:
                # We pre-populate username
                e.cstruct['Username'] = user.username
                return {'form': e.render(), 'errors': e.error.children}

            user.first_name = captured.get('First_Name', '')
            user.last_name = captured.get('Last_Name', '')
            user.email = captured.get('Email', '')

            password = captured.get('Password')

            if password:
                user.password = password

            self.request.session.flash(_('Profile successfully updated.'), 'success')

            self.db.add(user)

            self.request.registry.notify(
                ProfileUpdatedEvent(self.request, user, captured)
            )

            return HTTPFound(location=self.request.url)
Beispiel #6
0
    def test_get_user_by_invalid_pk(self):
        from pyramid_signup.models import User
        from pyramid_signup.managers import UserManager

        user = User(username='******', password='******')
        self.session.add(user)
        self.session.commit()

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

        new_user = mgr.get_by_pk(2)

        assert new_user == None
    def test_get_user_by_invalid_pk(self):
        from pyramid_signup.models import User
        from pyramid_signup.managers import UserManager

        user = User(username="******", password="******")
        self.session.add(user)
        self.session.commit()

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

        new_user = mgr.get_by_pk(2)

        assert new_user == None
Beispiel #8
0
    def test_get_user_by_pk(self):
        from pyramid_signup.models import User
        from pyramid_signup.managers import UserManager

        user = User(username='******', password='******')
        self.session.add(user)
        self.session.commit()

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

        new_user = mgr.get_by_pk(user.pk)

        assert new_user == user
Beispiel #9
0
    def user(self):
        pk = unauthenticated_userid(self)

        if pk is not None:
            mgr = UserManager(self)
            return mgr.get_by_pk(pk)
Beispiel #10
0
    def user(self):
        pk = unauthenticated_userid(self)

        if pk is not None:
            mgr = UserManager(self)
            return mgr.get_by_pk(pk)