def add_user(request, name, username, verification, redir_location=None): if username != verification: raise HTTPBadRequest('email and verification do not match') # Set the password to blank new_user = User(name=name, username=username, password='', is_admin=False) Session.add(new_user) try: Session.flush() except IntegrityError: raise HTTPConflict('User \'{0}\' already exists'.format(username)) password_reset = PasswordReset.generate(new_user) Session.add(password_reset) try: Session.flush() except IntegrityError: raise HTTPConflict('Error creating password reset.') site_name = request.registry.settings['site_name'] reset_url = request.route_url('password_reset_item', token=password_reset.get_token()) body = ('Please visit the following link to complete your account ' 'creation:\n\n{0}'.format(reset_url)) send_email(request, recipients=username, body=body, subject='{0} password reset email'.format(site_name)) request.session.flash('Account creation initiated. Instructions for ' 'completion have been emailed to {0}.' .format(username), 'successes') redir_location = redir_location or request.route_path( 'session', _query={'username': username}) return http_created(request, redir_location=redir_location)
def add_user(request, name, username, verification, redir_location=None): if username != verification: raise HTTPBadRequest('email and verification do not match') # Set the password to blank new_user = User(name=name, username=username, password='', is_admin=False) Session.add(new_user) try: Session.flush() except IntegrityError: raise HTTPConflict('User \'{0}\' already exists'.format(username)) password_reset = PasswordReset.generate(new_user) Session.add(password_reset) try: Session.flush() except IntegrityError: raise HTTPConflict('Error creating password reset.') site_name = request.registry.settings['site_name'] reset_url = request.route_url('password_reset_item', token=password_reset.get_token()) body = ('Please visit the following link to complete your account ' 'creation:\n\n{0}'.format(reset_url)) send_email(request, recipients=username, body=body, subject='{0} password reset email'.format(site_name)) request.session.flash( 'Account creation initiated. Instructions for ' 'completion have been emailed to {0}.'.format(username), 'successes') redir_location = redir_location or request.route_path( 'session', _query={'username': username}) return http_created(request, redir_location=redir_location)
def project_file_create(request, file_, filename, project, cls): # Check for BuildFile and FileVerifier conflict if cls == BuildFile and FileVerifier.fetch_by( project_id=project.id, filename=filename, optional=False): msg = 'A required expected file already exists with that name.' raise HTTPBadRequest(msg) cls_file = cls(file=file_, filename=filename, project=project) Session.add(cls_file) try: Session.flush() except IntegrityError: raise HTTPConflict('That filename already exists for the project') redir_location = request.route_path('project_edit', project_id=project.id) request.session.flash('Added {0} {1}.'.format(cls.__name__, filename), 'successes') return http_created(request, redir_location=redir_location)
def project_file_create(request, file_, filename, project, cls): # Check for BuildFile and FileVerifier conflict if cls == BuildFile and FileVerifier.fetch_by(project_id=project.id, filename=filename, optional=False): msg = 'A required expected file already exists with that name.' raise HTTPBadRequest(msg) cls_file = cls(file=file_, filename=filename, project=project) Session.add(cls_file) try: Session.flush() except IntegrityError: raise HTTPConflict('That filename already exists for the project') redir_location = request.route_path('project_edit', project_id=project.id) request.session.flash('Added {0} {1}.'.format(cls.__name__, filename), 'successes') return http_created(request, redir_location=redir_location)
def item_create(request, name, value): item = Item(name, value) url = request.route_url('item_item', item_id=item.id) return http_created(request, redir_location=url)