from flask import g, session from werkzeug.security import generate_password_hash from app import webapp from app.config import Defaults from app.homeassistant import HomeAssistant from app.models.settings import Setting @webapp.before_first_request def connect_to_homeassistant(): session.clear() # Setup connection to Home Assistant hass_url = Setting.get_value(Setting.Keys.HASS_URL) hass_token = Setting.get_value(Setting.Keys.HASS_TOKEN) validConnection = HomeAssistant.testConnection(hass_url, hass_token) if validConnection: HomeAssistant.initialize(url=hass_url, token=hass_token) # Create defaults in the database Setting.get_value(Setting.Keys.HASSCALL_LOGIN_REQUIRED, Defaults.login_enabled) Setting.get_value(Setting.Keys.HASSCALL_USERNAME, Defaults.username) Setting.get_value(Setting.Keys.HASSCALL_PASSWORD, generate_password_hash(Defaults.password)) @webapp.context_processor def inject_user(): data = {'loggedin': False, 'user': None} login_required = Setting.get_value(Setting.Keys.HASSCALL_LOGIN_REQUIRED) if login_required == 'true': if g.user is not None: data['loggedin'] = True data['user'] = g.user return data