def destroy(request): schema = AccountDestroySchema() button1 = Button('submit', _('Yes, I am sure. Destroy my account')) button1.css_class = 'btn-danger' button2 = Button('cancel', _('Cancel')) button2.css_class = '' form = Form(schema, buttons=(button1, button2)) passwords_manager = PasswordsManager(request.db) context = { 'passwords': passwords_manager.retrieve(request.user).count(), } if 'submit' in request.POST: controls = request.POST.items() try: appstruct = form.validate(controls) except ValidationFailure as e: context['form'] = e.render() return context reason = appstruct['reason'] admin_emails = request.registry.settings['admin_emails'] if admin_emails: notify_admins_of_account_removal(request, request.user, reason, admin_emails) passwords_manager.delete(request.user) # TODO: remove user's applications delete_user(request.db, request.user) request.session.flash( _('Your account has been removed. Have a nice day!'), 'success', ) return logout(request) elif 'cancel' in request.POST: request.session.flash( _('Thanks for reconsidering removing your account!'), 'info', ) return HTTPFound(location=request.route_path('user_information')) context['form'] = form.render() return context
def test_delete_user(self): user_id = self.db.users.insert({"screen_name": "John Doe", "first_name": "John", "last_name": ""}, safe=True) user = self.db.users.find_one({"_id": user_id}, safe=True) n_users = self.db.users.count() self.assertTrue(delete_user(self.db, user)) refreshed_user = self.db.users.find_one({"_id": user_id}, safe=True) self.assertEqual(None, refreshed_user) self.assertEqual(n_users - 1, self.db.users.count())
def test_delete_user(self): user_id = self.db.users.insert({ 'screen_name': 'John Doe', 'first_name': 'John', 'last_name': '', }, safe=True) user = self.db.users.find_one({'_id': user_id}, safe=True) n_users = self.db.users.count() self.assertTrue(delete_user(self.db, user)) refreshed_user = self.db.users.find_one({'_id': user_id}, safe=True) self.assertEqual(None, refreshed_user) self.assertEqual(n_users - 1, self.db.users.count())