def finalize_validate(): config_file = os.path.join(current_app.instance_path, 'config.py') logging_file = os.path.join(current_app.instance_path, 'logging.yml') assert not os.path.exists(config_file) config = cmd_config.DefaultConfig(logging_file='logging.yml') config.SQLALCHEMY_DATABASE_URI = session_get('db')['uri'] redis_uri = session_get('redis')['uri'] config.REDIS_URI = redis_uri config.BROKER_URL = redis_uri config.CELERY_RESULT_BACKEND = redis_uri d = session_get('site_info') config.SITE_NAME = d['sitename'] config.MAIL_SENDER = d['mailsender'] is_production = d['server_mode'] == u'production' config.PRODUCTION = is_production config.DEBUG = not is_production config.DEBUG_TB_ENABLED = config.DEBUG config.CELERY_ALWAYS_EAGER = not is_production cmd_config.write_config(config_file, config) cmd_config.maybe_write_logging(logging_file) admin_account = session_get('admin_account') # create a new app that will be configured with new config, to create database # and admin_user setup_app = current_app._get_current_object() app = setup_app.__class__( setup_app.import_name, static_url_path=setup_app.static_url_path, static_folder=setup_app.static_folder, template_folder=setup_app.template_folder, instance_path=setup_app.instance_path, ) with app.test_request_context('/setup/finalize'): app.create_db() db_session = app.db.session() admin = User(email=admin_account['email'], password=admin_account['password'], last_name=admin_account['name'], first_name=admin_account['firstname'], can_login=True) db_session.add(admin) security = get_service('security') security.grant_role(admin, Admin) db_session.commit() session_clear() response = make_response( render_template('setupwizard/done.html', config_file=config_file, logging_file=logging_file), 200) return response
def finalize_validate(): config_file = Path(current_app.instance_path) / "config.py" logging_file = Path(current_app.instance_path) / "logging.yml" assert not config_file.exists() config = cmd_config.DefaultConfig(logging_file="logging.yml") config.SQLALCHEMY_DATABASE_URI = session_get("db")["uri"] redis_uri = session_get("redis")["uri"] config.REDIS_URI = redis_uri config.BROKER_URL = redis_uri config.CELERY_RESULT_BACKEND = redis_uri d = session_get("site_info") config.SITE_NAME = d["sitename"] config.MAIL_SENDER = d["mailsender"] is_production = d["server_mode"] == "production" config.PRODUCTION = is_production config.DEBUG = not is_production config.DEBUG_TB_ENABLED = config.DEBUG config.CELERY_ALWAYS_EAGER = not is_production cmd_config.write_config(config_file, config) cmd_config.maybe_write_logging(logging_file) admin_account = session_get("admin_account") # create a new app that will be configured with new config, # to create database and admin_user setup_app = unwrap(current_app) app = setup_app.__class__( setup_app.import_name, static_url_path=setup_app.static_url_path, static_folder=setup_app.static_folder, template_folder=setup_app.template_folder, instance_path=setup_app.instance_path, ) with app.test_request_context("/setup/finalize"): app.create_db() db_session = db.session() admin = User( email=admin_account["email"], password=admin_account["password"], last_name=admin_account["name"], first_name=admin_account["firstname"], can_login=True, ) db_session.add(admin) security = get_service("security") security.grant_role(admin, Admin) db_session.commit() session_clear() return render_template("setupwizard/done.html", config_file=config_file, logging_file=logging_file)
def finalize_validate(): config_file = Path(current_app.instance_path) / "config.py" logging_file = Path(current_app.instance_path) / "logging.yml" assert not config_file.exists() config = cmd_config.DefaultConfig(logging_file="logging.yml") config.SQLALCHEMY_DATABASE_URI = session_get("db")["uri"] redis_uri = session_get("redis")["uri"] config.REDIS_URI = redis_uri config.BROKER_URL = redis_uri config.CELERY_RESULT_BACKEND = redis_uri d = session_get("site_info") config.SITE_NAME = d["sitename"] config.MAIL_SENDER = d["mailsender"] is_production = d["server_mode"] == "production" config.PRODUCTION = is_production config.DEBUG = not is_production config.DEBUG_TB_ENABLED = config.DEBUG config.CELERY_ALWAYS_EAGER = not is_production cmd_config.write_config(config_file, config) cmd_config.maybe_write_logging(logging_file) admin_account = session_get("admin_account") # create a new app that will be configured with new config, # to create database and admin_user setup_app = unwrap(current_app) app = setup_app.__class__( setup_app.import_name, static_url_path=setup_app.static_url_path, static_folder=setup_app.static_folder, template_folder=setup_app.template_folder, instance_path=setup_app.instance_path, ) with app.test_request_context("/setup/finalize"): app.create_db() db_session = db.session() admin = User( email=admin_account["email"], password=admin_account["password"], last_name=admin_account["name"], first_name=admin_account["firstname"], can_login=True, ) db_session.add(admin) security = get_service("security") security.grant_role(admin, Admin) db_session.commit() session_clear() return render_template( "setupwizard/done.html", config_file=config_file, logging_file=logging_file )
def finalize_validate(): config_file = os.path.join(current_app.instance_path, 'config.py') logging_file = os.path.join(current_app.instance_path, 'logging.yml') assert not os.path.exists(config_file) config = cmd_config.DefaultConfig(logging_file='logging.yml') config.SQLALCHEMY_DATABASE_URI = session_get('db')['uri'] redis_uri = session_get('redis')['uri'] config.BROKER_URL = redis_uri config.CELERY_RESULT_BACKEND = redis_uri d = session_get('site_info') config.SITE_NAME = d['sitename'] config.MAIL_SENDER = d['mailsender'] is_production = d['server_mode'] == u'production' config.PRODUCTION = is_production config.DEBUG = not is_production config.DEBUG_TB_ENABLED = config.DEBUG config.CELERY_ALWAYS_EAGER = not is_production cmd_config.write_config(config_file, config) cmd_config.maybe_write_logging(logging_file) response = make_response( render_template('setupwizard/done.html', config_file=config_file, logging_file=logging_file), 200) # secret key changes with new config, and maybe cookie name, so we clear # session made with temporary key with current cookie name # # FIXME: this is not working actually. The session stuff sets the cookie durint after_request response.delete_cookie(current_app.session_cookie_name) return response