From b881995efc82fbe71fecfdb8af7b87ab2e868436 Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Wed, 29 Mar 2023 19:36:42 +0200 Subject: [PATCH] Add verify ssl option to nextcloud (#90462) add verify sssl option to config flow --- homeassistant/components/nextcloud/__init__.py | 6 +++++- homeassistant/components/nextcloud/config_flow.py | 7 +++++-- homeassistant/components/nextcloud/const.py | 1 + homeassistant/components/nextcloud/strings.json | 3 ++- .../components/nextcloud/snapshots/test_config_flow.ambr | 2 ++ tests/components/nextcloud/test_config_flow.py | 9 +++++++-- 6 files changed, 22 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/nextcloud/__init__.py b/homeassistant/components/nextcloud/__init__.py index d2514b9091d..60489b3e30d 100644 --- a/homeassistant/components/nextcloud/__init__.py +++ b/homeassistant/components/nextcloud/__init__.py @@ -10,6 +10,7 @@ from homeassistant.const import ( CONF_SCAN_INTERVAL, CONF_URL, CONF_USERNAME, + CONF_VERIFY_SSL, Platform, ) from homeassistant.core import HomeAssistant @@ -73,7 +74,10 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: def _connect_nc(): return NextcloudMonitor( - entry.data[CONF_URL], entry.data[CONF_USERNAME], entry.data[CONF_PASSWORD] + entry.data[CONF_URL], + entry.data[CONF_USERNAME], + entry.data[CONF_PASSWORD], + entry.data[CONF_VERIFY_SSL], ) try: diff --git a/homeassistant/components/nextcloud/config_flow.py b/homeassistant/components/nextcloud/config_flow.py index e297a6893a7..f22d0a01a55 100644 --- a/homeassistant/components/nextcloud/config_flow.py +++ b/homeassistant/components/nextcloud/config_flow.py @@ -8,16 +8,17 @@ from nextcloudmonitor import NextcloudMonitor, NextcloudMonitorError import voluptuous as vol from homeassistant.config_entries import ConfigFlow -from homeassistant.const import CONF_PASSWORD, CONF_URL, CONF_USERNAME +from homeassistant.const import CONF_PASSWORD, CONF_URL, CONF_USERNAME, CONF_VERIFY_SSL from homeassistant.data_entry_flow import FlowResult -from .const import DOMAIN +from .const import DEFAULT_VERIFY_SSL, DOMAIN DATA_SCHEMA_USER = vol.Schema( { vol.Required(CONF_URL): str, vol.Required(CONF_USERNAME): str, vol.Required(CONF_PASSWORD): str, + vol.Required(CONF_VERIFY_SSL, default=DEFAULT_VERIFY_SSL): bool, } ) _LOGGER = logging.getLogger(__name__) @@ -34,6 +35,7 @@ class NextcloudConfigFlow(ConfigFlow, domain=DOMAIN): user_input[CONF_URL], user_input[CONF_USERNAME], user_input[CONF_PASSWORD], + user_input.get(CONF_VERIFY_SSL, DEFAULT_VERIFY_SSL), ) async def async_step_import(self, user_input: dict[str, Any]) -> FlowResult: @@ -51,6 +53,7 @@ class NextcloudConfigFlow(ConfigFlow, domain=DOMAIN): CONF_URL: user_input[CONF_URL], CONF_PASSWORD: user_input[CONF_PASSWORD], CONF_USERNAME: user_input[CONF_USERNAME], + CONF_VERIFY_SSL: DEFAULT_VERIFY_SSL, } ) diff --git a/homeassistant/components/nextcloud/const.py b/homeassistant/components/nextcloud/const.py index 223d21771be..248128dd538 100644 --- a/homeassistant/components/nextcloud/const.py +++ b/homeassistant/components/nextcloud/const.py @@ -3,3 +3,4 @@ from datetime import timedelta DOMAIN = "nextcloud" DEFAULT_SCAN_INTERVAL = timedelta(seconds=60) +DEFAULT_VERIFY_SSL = True diff --git a/homeassistant/components/nextcloud/strings.json b/homeassistant/components/nextcloud/strings.json index 9ae7ed24a60..dc0175ea8e8 100644 --- a/homeassistant/components/nextcloud/strings.json +++ b/homeassistant/components/nextcloud/strings.json @@ -7,7 +7,8 @@ "data": { "url": "[%key:common::config_flow::data::url%]", "username": "[%key:common::config_flow::data::username%]", - "password": "[%key:common::config_flow::data::password%]" + "password": "[%key:common::config_flow::data::password%]", + "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" } } }, diff --git a/tests/components/nextcloud/snapshots/test_config_flow.ambr b/tests/components/nextcloud/snapshots/test_config_flow.ambr index 0c9df1238cf..caa95285074 100644 --- a/tests/components/nextcloud/snapshots/test_config_flow.ambr +++ b/tests/components/nextcloud/snapshots/test_config_flow.ambr @@ -4,6 +4,7 @@ 'password': 'nc_pass', 'url': 'nc_url', 'username': 'nc_user', + 'verify_ssl': True, }) # --- # name: test_user_create_entry @@ -11,5 +12,6 @@ 'password': 'nc_pass', 'url': 'nc_url', 'username': 'nc_user', + 'verify_ssl': True, }) # --- diff --git a/tests/components/nextcloud/test_config_flow.py b/tests/components/nextcloud/test_config_flow.py index 118d8fef0da..582ad3e77a3 100644 --- a/tests/components/nextcloud/test_config_flow.py +++ b/tests/components/nextcloud/test_config_flow.py @@ -7,7 +7,7 @@ from syrupy.assertion import SnapshotAssertion from homeassistant.components.nextcloud import DOMAIN from homeassistant.config_entries import SOURCE_IMPORT, SOURCE_USER -from homeassistant.const import CONF_PASSWORD, CONF_URL, CONF_USERNAME +from homeassistant.const import CONF_PASSWORD, CONF_URL, CONF_USERNAME, CONF_VERIFY_SSL from homeassistant.core import HomeAssistant from homeassistant.data_entry_flow import FlowResultType @@ -15,7 +15,12 @@ from tests.common import MockConfigEntry pytestmark = pytest.mark.usefixtures("mock_setup_entry") -VALID_CONFIG = {CONF_URL: "nc_url", CONF_USERNAME: "nc_user", CONF_PASSWORD: "nc_pass"} +VALID_CONFIG = { + CONF_URL: "nc_url", + CONF_USERNAME: "nc_user", + CONF_PASSWORD: "nc_pass", + CONF_VERIFY_SSL: True, +} async def test_user_create_entry(