37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
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 |