diff --git a/API.md b/API.md index f5c596f42..854fd9271 100644 --- a/API.md +++ b/API.md @@ -488,6 +488,7 @@ Get all available addons. "hassio_api": "bool", "hassio_role": "default|homeassistant|manager|admin", "homeassistant_api": "bool", + "auth_api": "bool", "full_access": "bool", "protected": "bool", "rating": "1-6", diff --git a/hassio/addons/addon.py b/hassio/addons/addon.py index 5d9b9f1c9..78723574d 100644 --- a/hassio/addons/addon.py +++ b/hassio/addons/addon.py @@ -28,7 +28,7 @@ from ..const import ( ATTR_HOST_DBUS, ATTR_AUTO_UART, ATTR_DISCOVERY, ATTR_SERVICES, ATTR_APPARMOR, ATTR_DEVICETREE, ATTR_DOCKER_API, ATTR_FULL_ACCESS, ATTR_PROTECTED, ATTR_ACCESS_TOKEN, ATTR_HOST_PID, ATTR_HASSIO_ROLE, - ATTR_MACHINE, ATTR_LOGIN_BACKEND, + ATTR_MACHINE, ATTR_AUTH_API, SECURITY_PROFILE, SECURITY_DISABLE, SECURITY_DEFAULT) from ..coresys import CoreSysAttributes from ..docker.addon import DockerAddon @@ -412,9 +412,9 @@ class Addon(CoreSysAttributes): return self._mesh[ATTR_DEVICETREE] @property - def with_login_backend(self): + def access_auth_api(self): """Return True if the add-on access to login/auth backend.""" - return self._mesh[ATTR_LOGIN_BACKEND] + return self._mesh[ATTR_AUTH_API] @property def with_audio(self): diff --git a/hassio/addons/validate.py b/hassio/addons/validate.py index f9335f7c3..946b07d25 100644 --- a/hassio/addons/validate.py +++ b/hassio/addons/validate.py @@ -20,7 +20,7 @@ from ..const import ( ATTR_HOST_DBUS, ATTR_AUTO_UART, ATTR_SERVICES, ATTR_DISCOVERY, ATTR_APPARMOR, ATTR_DEVICETREE, ATTR_DOCKER_API, ATTR_PROTECTED, ATTR_FULL_ACCESS, ATTR_ACCESS_TOKEN, ATTR_HOST_PID, ATTR_HASSIO_ROLE, - ATTR_MACHINE, ATTR_LOGIN_BACKEND, + ATTR_MACHINE, ATTR_AUTH_API, PRIVILEGED_NET_ADMIN, PRIVILEGED_SYS_ADMIN, PRIVILEGED_SYS_RAWIO, PRIVILEGED_IPC_LOCK, PRIVILEGED_SYS_TIME, PRIVILEGED_SYS_NICE, PRIVILEGED_SYS_RESOURCE, PRIVILEGED_SYS_PTRACE, PRIVILEGED_DAC_READ_SEARCH, @@ -145,7 +145,7 @@ SCHEMA_ADDON_CONFIG = vol.Schema({ vol.Optional(ATTR_STDIN, default=False): vol.Boolean(), vol.Optional(ATTR_LEGACY, default=False): vol.Boolean(), vol.Optional(ATTR_DOCKER_API, default=False): vol.Boolean(), - vol.Optional(ATTR_LOGIN_BACKEND, default=False): vol.Boolean(), + vol.Optional(ATTR_AUTH_API, default=False): vol.Boolean(), vol.Optional(ATTR_SERVICES): [vol.Match(RE_SERVICE)], vol.Optional(ATTR_DISCOVERY): [vol.In(DISCOVERY_SERVICES)], vol.Required(ATTR_OPTIONS): dict, diff --git a/hassio/api/addons.py b/hassio/api/addons.py index 2e7994ef0..000ff9d24 100644 --- a/hassio/api/addons.py +++ b/hassio/api/addons.py @@ -20,7 +20,7 @@ from ..const import ( ATTR_NETWORK_RX, ATTR_BLK_READ, ATTR_BLK_WRITE, ATTR_ICON, ATTR_SERVICES, ATTR_DISCOVERY, ATTR_APPARMOR, ATTR_DEVICETREE, ATTR_DOCKER_API, ATTR_FULL_ACCESS, ATTR_PROTECTED, ATTR_RATING, ATTR_HOST_PID, - ATTR_HASSIO_ROLE, ATTR_MACHINE, ATTR_AVAILABLE, + ATTR_HASSIO_ROLE, ATTR_MACHINE, ATTR_AVAILABLE, ATTR_AUTH_API, CONTENT_TYPE_PNG, CONTENT_TYPE_BINARY, CONTENT_TYPE_TEXT, REQUEST_FROM) from ..coresys import CoreSysAttributes from ..validate import DOCKER_PORTS, ALSA_DEVICE @@ -149,6 +149,7 @@ class APIAddons(CoreSysAttributes): ATTR_STDIN: addon.with_stdin, ATTR_HASSIO_API: addon.access_hassio_api, ATTR_HASSIO_ROLE: addon.hassio_role, + ATTR_AUTH_API: addon.access_auth_api, ATTR_HOMEASSISTANT_API: addon.access_homeassistant_api, ATTR_GPIO: addon.with_gpio, ATTR_DEVICETREE: addon.with_devicetree, diff --git a/hassio/api/auth.py b/hassio/api/auth.py index 8c9254fb8..bb03cea87 100644 --- a/hassio/api/auth.py +++ b/hassio/api/auth.py @@ -38,7 +38,7 @@ class APIAuth(CoreSysAttributes): """Process login request.""" addon = request[REQUEST_FROM] - if not addon.with_login_backend: + if not addon.access_auth_api: raise APIForbidden("Can't use Home Assistant auth!") # BasicAuth diff --git a/hassio/const.py b/hassio/const.py index 8d9aa6876..7bb2bfcfa 100644 --- a/hassio/const.py +++ b/hassio/const.py @@ -186,7 +186,7 @@ ATTR_PROTECTED = 'protected' ATTR_RATING = 'rating' ATTR_HASSIO_ROLE = 'hassio_role' ATTR_SUPERVISOR = 'supervisor' -ATTR_LOGIN_BACKEND = 'login_backend' +ATTR_AUTH_API = 'auth_api' SERVICE_MQTT = 'mqtt' PROVIDE_SERVICE = 'provide'