示例#1
0
def set_home_server():
    app_state = current_app.config.geobox_state
    if app_state.new_home_server is None:
        flash(_('unable to set homeserver'), 'error')

    db_session = app_state.user_db_session()
    gbi_server = db_session.query(GBIServer).filter_by(
        id=app_state.new_home_server.id).first()

    if gbi_server is None:
        flash(_('unable to set homeserver'), 'error')
    gbi_server.context = app_state.new_home_server.context

    gbi_server.active_home_server = True
    db_session.commit()

    context.update_couchdb_sources(gbi_server, app_state)

    context_user = gbi_server.context.user()
    if context_user:
        app_state.config.set('user', 'type', str(context_user['type']))
    else:
        app_state.config.set('user', 'type', '0')  # set default to 0

    app_state.config.write()

    flash(
        _('assigned %(homeserver)s as homeserver',
          homeserver=gbi_server.title))
    app_state.new_home_server = None

    if app_state.user.is_customer:
        return redirect(url_for('admin.upload_gml'))
    return redirect(url_for('main.index'))
示例#2
0
def load_context(gbi_server, db_session, form, app_state):
    try:
        context.load_context_document(gbi_server, db_session,
                                      form.username.data, form.password.data)
    except context.AuthenticationError:
        flash(_('username or password not correct'), 'error')
        return False
    except (ValueError, NotFound):
        flash(_('unable to fetch context document'), 'error')
        return False
    else:
        flash(_('load context document successful'), 'sucess')
        context.update_raster_sources(gbi_server, db_session)
        context.update_wfs_sources(gbi_server, db_session)
        context.update_parcel_search_source(gbi_server, db_session)

        db_session.commit()

        if gbi_server.home_server and app_state.home_server is None:
            app_state.new_home_server = gbi_server
        elif gbi_server.home_server and gbi_server.active_home_server:
            context.update_couchdb_sources(gbi_server, app_state)
        return True