Add verify ssl option to nextcloud (#90462)

add verify sssl option to config flow
This commit is contained in:
Michael 2023-03-29 19:36:42 +02:00 committed by GitHub
parent a33c70e595
commit b881995efc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 22 additions and 6 deletions

View File

@ -10,6 +10,7 @@ from homeassistant.const import (
CONF_SCAN_INTERVAL, CONF_SCAN_INTERVAL,
CONF_URL, CONF_URL,
CONF_USERNAME, CONF_USERNAME,
CONF_VERIFY_SSL,
Platform, Platform,
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
@ -73,7 +74,10 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
def _connect_nc(): def _connect_nc():
return NextcloudMonitor( 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: try:

View File

@ -8,16 +8,17 @@ from nextcloudmonitor import NextcloudMonitor, NextcloudMonitorError
import voluptuous as vol import voluptuous as vol
from homeassistant.config_entries import ConfigFlow 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 homeassistant.data_entry_flow import FlowResult
from .const import DOMAIN from .const import DEFAULT_VERIFY_SSL, DOMAIN
DATA_SCHEMA_USER = vol.Schema( DATA_SCHEMA_USER = vol.Schema(
{ {
vol.Required(CONF_URL): str, vol.Required(CONF_URL): str,
vol.Required(CONF_USERNAME): str, vol.Required(CONF_USERNAME): str,
vol.Required(CONF_PASSWORD): str, vol.Required(CONF_PASSWORD): str,
vol.Required(CONF_VERIFY_SSL, default=DEFAULT_VERIFY_SSL): bool,
} }
) )
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -34,6 +35,7 @@ class NextcloudConfigFlow(ConfigFlow, domain=DOMAIN):
user_input[CONF_URL], user_input[CONF_URL],
user_input[CONF_USERNAME], user_input[CONF_USERNAME],
user_input[CONF_PASSWORD], 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: 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_URL: user_input[CONF_URL],
CONF_PASSWORD: user_input[CONF_PASSWORD], CONF_PASSWORD: user_input[CONF_PASSWORD],
CONF_USERNAME: user_input[CONF_USERNAME], CONF_USERNAME: user_input[CONF_USERNAME],
CONF_VERIFY_SSL: DEFAULT_VERIFY_SSL,
} }
) )

View File

@ -3,3 +3,4 @@ from datetime import timedelta
DOMAIN = "nextcloud" DOMAIN = "nextcloud"
DEFAULT_SCAN_INTERVAL = timedelta(seconds=60) DEFAULT_SCAN_INTERVAL = timedelta(seconds=60)
DEFAULT_VERIFY_SSL = True

View File

@ -7,7 +7,8 @@
"data": { "data": {
"url": "[%key:common::config_flow::data::url%]", "url": "[%key:common::config_flow::data::url%]",
"username": "[%key:common::config_flow::data::username%]", "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%]"
} }
} }
}, },

View File

@ -4,6 +4,7 @@
'password': 'nc_pass', 'password': 'nc_pass',
'url': 'nc_url', 'url': 'nc_url',
'username': 'nc_user', 'username': 'nc_user',
'verify_ssl': True,
}) })
# --- # ---
# name: test_user_create_entry # name: test_user_create_entry
@ -11,5 +12,6 @@
'password': 'nc_pass', 'password': 'nc_pass',
'url': 'nc_url', 'url': 'nc_url',
'username': 'nc_user', 'username': 'nc_user',
'verify_ssl': True,
}) })
# --- # ---

View File

@ -7,7 +7,7 @@ from syrupy.assertion import SnapshotAssertion
from homeassistant.components.nextcloud import DOMAIN from homeassistant.components.nextcloud import DOMAIN
from homeassistant.config_entries import SOURCE_IMPORT, SOURCE_USER 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.core import HomeAssistant
from homeassistant.data_entry_flow import FlowResultType from homeassistant.data_entry_flow import FlowResultType
@ -15,7 +15,12 @@ from tests.common import MockConfigEntry
pytestmark = pytest.mark.usefixtures("mock_setup_entry") 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( async def test_user_create_entry(