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_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)
def __getitem__(self, key): mgr = UserManager(self.request) user = mgr.get_by_pk(key) if user: user.__parent__ = self user.__name__ = key return user
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}
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)
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
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
def user(self): pk = unauthenticated_userid(self) if pk is not None: mgr = UserManager(self) return mgr.get_by_pk(pk)