mirror of
https://github.com/home-assistant/core.git
synced 2025-07-16 09:47:13 +00:00
Unifiprotect: add error message if the get_user_keyring_info permissions are not sufficient (#133841)
This commit is contained in:
parent
8ab936b87c
commit
df26166047
@ -236,6 +236,9 @@ async def get_user_keyring_info(call: ServiceCall) -> ServiceResponse:
|
|||||||
"""Get the user keyring info."""
|
"""Get the user keyring info."""
|
||||||
camera = _async_get_ufp_camera(call)
|
camera = _async_get_ufp_camera(call)
|
||||||
ulp_users = camera.api.bootstrap.ulp_users.as_list()
|
ulp_users = camera.api.bootstrap.ulp_users.as_list()
|
||||||
|
if not ulp_users:
|
||||||
|
raise HomeAssistantError("No users found, please check Protect permissions.")
|
||||||
|
|
||||||
user_keyrings: list[JsonValueType] = [
|
user_keyrings: list[JsonValueType] = [
|
||||||
{
|
{
|
||||||
KEYRINGS_USER_FULL_NAME: user.full_name,
|
KEYRINGS_USER_FULL_NAME: user.full_name,
|
||||||
|
@ -262,13 +262,13 @@ async def test_remove_privacy_zone(
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_get_doorbell_user(
|
async def get_user_keyring_info(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entity_registry: er.EntityRegistry,
|
entity_registry: er.EntityRegistry,
|
||||||
ufp: MockUFPFixture,
|
ufp: MockUFPFixture,
|
||||||
doorbell: Camera,
|
doorbell: Camera,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test get_doorbell_user service."""
|
"""Test get_user_keyring_info service."""
|
||||||
|
|
||||||
ulp_user = Mock(full_name="Test User", status="active", ulp_id="user_ulp_id")
|
ulp_user = Mock(full_name="Test User", status="active", ulp_id="user_ulp_id")
|
||||||
keyring = Mock(
|
keyring = Mock(
|
||||||
@ -315,3 +315,30 @@ async def test_get_doorbell_user(
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async def test_get_user_keyring_info_no_users(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
entity_registry: er.EntityRegistry,
|
||||||
|
ufp: MockUFPFixture,
|
||||||
|
doorbell: Camera,
|
||||||
|
) -> None:
|
||||||
|
"""Test get_user_keyring_info service with no users."""
|
||||||
|
|
||||||
|
ufp.api.bootstrap.ulp_users.as_list = Mock(return_value=[])
|
||||||
|
ufp.api.bootstrap.keyrings.as_list = Mock(return_value=[])
|
||||||
|
|
||||||
|
await init_entry(hass, ufp, [doorbell])
|
||||||
|
|
||||||
|
camera_entry = entity_registry.async_get("binary_sensor.test_camera_doorbell")
|
||||||
|
|
||||||
|
with pytest.raises(
|
||||||
|
HomeAssistantError, match="No users found, please check Protect permissions."
|
||||||
|
):
|
||||||
|
await hass.services.async_call(
|
||||||
|
DOMAIN,
|
||||||
|
SERVICE_GET_USER_KEYRING_INFO,
|
||||||
|
{ATTR_DEVICE_ID: camera_entry.device_id},
|
||||||
|
blocking=True,
|
||||||
|
return_response=True,
|
||||||
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user