Ejemplo n.º 1
0
def start_raster_import(id):
    proj = g.db.query(model.ImportProject).get(id)
    if not proj:
        abort(404)
    form = forms.SetGBIServerForm(request.form)
    del form.url
    source = proj.import_raster_layers[0].source
    gbi_server = source.gbi_server
    if source.is_public or gbi_server is None or not gbi_server.auth:
        create_raster_import_task(proj)
        return redirect(url_for('tasks.list'))

    if form.validate_on_submit():
        try:
            context.test_context_document(gbi_server.url, form.username.data,
                                          form.password.data)
        except context.AuthenticationError:
            flash(_('username or password not correct'), 'error')
        except ValueError:
            flash(_('unable to fetch context document'), 'error')
        else:
            create_raster_import_task(proj)
            return redirect(url_for('tasks.list'))

    return render_template('projects/verify_import_auth.html',
                           form=form,
                           server_title=gbi_server.title)
Ejemplo n.º 2
0
def start_raster_import(id):
    proj = g.db.query(model.ImportProject).get(id)
    if not proj:
        abort(404)
    form = forms.SetGBIServerForm(request.form)
    del form.url
    source = proj.import_raster_layers[0].source
    gbi_server = source.gbi_server
    if source.is_public or gbi_server is None or not gbi_server.auth:
        create_raster_import_task(proj)
        return redirect(url_for('tasks.list'))

    if form.validate_on_submit():
        try:
            context.test_context_document(gbi_server.url,
                                          form.username.data,
                                          form.password.data)
        except context.AuthenticationError:
            flash(_('username or password not correct'), 'error')
        except ValueError:
            flash(_('unable to fetch context document'), 'error')
        else:
            create_raster_import_task(proj)
            return redirect(url_for('tasks.list'))

    return render_template('projects/verify_import_auth.html', form=form,
                           server_title=gbi_server.title)
Ejemplo n.º 3
0
def add_server():
    form, add_server_form, auth_server = prepare_set_server()
    if request.method == 'GET':
        add_server_form.next.data = 'admin.add_server'
        form.next.data = 'admin.server_list'

    app_state = current_app.config.geobox_state

    if add_server_form.validate_on_submit():
        auth = False
        try:
            context.test_context_document(add_server_form.url.data)
        except (NotFound, MissingSchema, ContextError):
            flash(_('unable to fetch context document'), 'error')
            return redirect(url_for(add_server_form.next.data))
        except context.AuthenticationError:
            auth = True

        gbi_server = GBIServer(title=add_server_form.title.data,
                               url=add_server_form.url.data,
                               auth=auth)
        db_session = app_state.user_db_session()
        db_session.add(gbi_server)
        try:
            db_session.commit()
        except IntegrityError:
            flash(_('server already exists'), 'error')
        else:
            flash(_('server added'), 'info')
        return redirect(url_for(add_server_form.next.data))
    elif request.method == 'POST':
        flash(_('server could not added'), 'error')
        return redirect(request.referrer)
    return render_template('admin/add_server.html',
                           form=form,
                           add_server_form=add_server_form,
                           auth_server=json.dumps(auth_server))