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()
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
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 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)
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
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
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()