mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
- Default admin_only on; config/get returns can_write; card editors follow it and fail closed without hass.user (P0-4). - README EN/RU differentiation vs GUI draw cards / easy-floorplan (P0-3). - Tighten marker binding, ripple_color, decor extents, space id (P3-4). - quality_scale test path + deprecated card tap_action note (P3-5). - Demo hass.user + can_write; unique marker id in upload overwrite test. Co-authored-by: Matysh <Matysh@users.noreply.github.com>
41 lines
1.3 KiB
Python
Executable File
41 lines
1.3 KiB
Python
Executable File
"""Config flow: a single entry with no parameters."""
|
|
from __future__ import annotations
|
|
|
|
import voluptuous as vol
|
|
|
|
from homeassistant import config_entries
|
|
|
|
from .const import CONF_ADMIN_ONLY, DOMAIN
|
|
|
|
|
|
class HouseplanConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|
"""One-step setup."""
|
|
|
|
VERSION = 1
|
|
|
|
async def async_step_user(self, user_input=None):
|
|
if user_input is not None:
|
|
return self.async_create_entry(title="House Plan", data={}, options=user_input)
|
|
return self.async_show_form(
|
|
step_id="user",
|
|
data_schema=vol.Schema({vol.Optional(CONF_ADMIN_ONLY, default=True): bool}),
|
|
)
|
|
|
|
@staticmethod
|
|
def async_get_options_flow(config_entry):
|
|
return HouseplanOptionsFlow()
|
|
|
|
|
|
class HouseplanOptionsFlow(config_entries.OptionsFlow):
|
|
"""Option: layout editing by administrators only."""
|
|
|
|
async def async_step_init(self, user_input=None):
|
|
if user_input is not None:
|
|
return self.async_create_entry(title="", data=user_input)
|
|
# Match auth.may_write: missing key ⇒ admin-only (audit P0-4).
|
|
current = self.config_entry.options.get(CONF_ADMIN_ONLY, True)
|
|
return self.async_show_form(
|
|
step_id="init",
|
|
data_schema=vol.Schema({vol.Optional(CONF_ADMIN_ONLY, default=current): bool}),
|
|
)
|