mirror of
https://github.com/home-assistant/core.git
synced 2025-07-20 19:57:07 +00:00
Use reauth/reconfigure helpers in fritz config flow (#127990)
This commit is contained in:
parent
b8131cee2e
commit
253a5e3e4b
@ -58,8 +58,6 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
|
|
||||||
VERSION = 1
|
VERSION = 1
|
||||||
|
|
||||||
_entry: ConfigEntry
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@callback
|
@callback
|
||||||
def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow:
|
def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow:
|
||||||
@ -76,6 +74,10 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
self._username: str = ""
|
self._username: str = ""
|
||||||
self._model: str = ""
|
self._model: str = ""
|
||||||
|
|
||||||
|
async def async_fritz_tools_init(self) -> str | None:
|
||||||
|
"""Initialize FRITZ!Box Tools class."""
|
||||||
|
return await self.hass.async_add_executor_job(self.fritz_tools_init)
|
||||||
|
|
||||||
def fritz_tools_init(self) -> str | None:
|
def fritz_tools_init(self) -> str | None:
|
||||||
"""Initialize FRITZ!Box Tools class."""
|
"""Initialize FRITZ!Box Tools class."""
|
||||||
|
|
||||||
@ -201,7 +203,7 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
self._use_tls = user_input[CONF_SSL]
|
self._use_tls = user_input[CONF_SSL]
|
||||||
self._port = self._determine_port(user_input)
|
self._port = self._determine_port(user_input)
|
||||||
|
|
||||||
error = await self.hass.async_add_executor_job(self.fritz_tools_init)
|
error = await self.async_fritz_tools_init()
|
||||||
|
|
||||||
if error:
|
if error:
|
||||||
errors["base"] = error
|
errors["base"] = error
|
||||||
@ -264,7 +266,7 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
|
|
||||||
self._port = self._determine_port(user_input)
|
self._port = self._determine_port(user_input)
|
||||||
|
|
||||||
if not (error := await self.hass.async_add_executor_job(self.fritz_tools_init)):
|
if not (error := await self.async_fritz_tools_init()):
|
||||||
self._name = self._model
|
self._name = self._model
|
||||||
|
|
||||||
if await self.async_check_configured_entry():
|
if await self.async_check_configured_entry():
|
||||||
@ -279,7 +281,6 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
self, entry_data: Mapping[str, Any]
|
self, entry_data: Mapping[str, Any]
|
||||||
) -> ConfigFlowResult:
|
) -> ConfigFlowResult:
|
||||||
"""Handle flow upon an API authentication error."""
|
"""Handle flow upon an API authentication error."""
|
||||||
self._entry = self._get_reauth_entry()
|
|
||||||
self._host = entry_data[CONF_HOST]
|
self._host = entry_data[CONF_HOST]
|
||||||
self._port = entry_data[CONF_PORT]
|
self._port = entry_data[CONF_PORT]
|
||||||
self._username = entry_data[CONF_USERNAME]
|
self._username = entry_data[CONF_USERNAME]
|
||||||
@ -317,13 +318,13 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
self._username = user_input[CONF_USERNAME]
|
self._username = user_input[CONF_USERNAME]
|
||||||
self._password = user_input[CONF_PASSWORD]
|
self._password = user_input[CONF_PASSWORD]
|
||||||
|
|
||||||
if error := await self.hass.async_add_executor_job(self.fritz_tools_init):
|
if error := await self.async_fritz_tools_init():
|
||||||
return self._show_setup_form_reauth_confirm(
|
return self._show_setup_form_reauth_confirm(
|
||||||
user_input=user_input, errors={"base": error}
|
user_input=user_input, errors={"base": error}
|
||||||
)
|
)
|
||||||
|
|
||||||
self.hass.config_entries.async_update_entry(
|
return self.async_update_reload_and_abort(
|
||||||
self._entry,
|
self._get_reauth_entry(),
|
||||||
data={
|
data={
|
||||||
CONF_HOST: self._host,
|
CONF_HOST: self._host,
|
||||||
CONF_PASSWORD: self._password,
|
CONF_PASSWORD: self._password,
|
||||||
@ -332,19 +333,17 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
CONF_SSL: self._use_tls,
|
CONF_SSL: self._use_tls,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
await self.hass.config_entries.async_reload(self._entry.entry_id)
|
|
||||||
return self.async_abort(reason="reauth_successful")
|
|
||||||
|
|
||||||
async def async_step_reconfigure(
|
async def async_step_reconfigure(
|
||||||
self, user_input: dict[str, Any] | None = None
|
self, user_input: dict[str, Any] | None = None
|
||||||
) -> ConfigFlowResult:
|
) -> ConfigFlowResult:
|
||||||
"""Handle reconfigure flow ."""
|
"""Handle reconfigure flow ."""
|
||||||
self._entry = self._get_reconfigure_entry()
|
entry_data = self._get_reconfigure_entry().data
|
||||||
self._host = self._entry.data[CONF_HOST]
|
self._host = entry_data[CONF_HOST]
|
||||||
self._port = self._entry.data[CONF_PORT]
|
self._port = entry_data[CONF_PORT]
|
||||||
self._username = self._entry.data[CONF_USERNAME]
|
self._username = entry_data[CONF_USERNAME]
|
||||||
self._password = self._entry.data[CONF_PASSWORD]
|
self._password = entry_data[CONF_PASSWORD]
|
||||||
self._use_tls = self._entry.data.get(CONF_SSL, DEFAULT_SSL)
|
self._use_tls = entry_data.get(CONF_SSL, DEFAULT_SSL)
|
||||||
|
|
||||||
return await self.async_step_reconfigure_confirm()
|
return await self.async_step_reconfigure_confirm()
|
||||||
|
|
||||||
@ -388,13 +387,13 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
self._use_tls = user_input[CONF_SSL]
|
self._use_tls = user_input[CONF_SSL]
|
||||||
self._port = self._determine_port(user_input)
|
self._port = self._determine_port(user_input)
|
||||||
|
|
||||||
if error := await self.hass.async_add_executor_job(self.fritz_tools_init):
|
if error := await self.async_fritz_tools_init():
|
||||||
return self._show_setup_form_reconfigure_confirm(
|
return self._show_setup_form_reconfigure_confirm(
|
||||||
user_input={**user_input, CONF_PORT: self._port}, errors={"base": error}
|
user_input={**user_input, CONF_PORT: self._port}, errors={"base": error}
|
||||||
)
|
)
|
||||||
|
|
||||||
self.hass.config_entries.async_update_entry(
|
return self.async_update_reload_and_abort(
|
||||||
self._entry,
|
self._get_reconfigure_entry(),
|
||||||
data={
|
data={
|
||||||
CONF_HOST: self._host,
|
CONF_HOST: self._host,
|
||||||
CONF_PASSWORD: self._password,
|
CONF_PASSWORD: self._password,
|
||||||
@ -403,8 +402,6 @@ class FritzBoxToolsFlowHandler(ConfigFlow, domain=DOMAIN):
|
|||||||
CONF_SSL: self._use_tls,
|
CONF_SSL: self._use_tls,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
await self.hass.config_entries.async_reload(self._entry.entry_id)
|
|
||||||
return self.async_abort(reason="reconfigure_successful")
|
|
||||||
|
|
||||||
|
|
||||||
class FritzBoxToolsOptionsFlowHandler(OptionsFlowWithConfigEntry):
|
class FritzBoxToolsOptionsFlowHandler(OptionsFlowWithConfigEntry):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user