Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)