Skip to content

Commit

Permalink
Improve onboarding provider call (#107864)
Browse files Browse the repository at this point in the history
  • Loading branch information
cdce8p committed Jan 12, 2024
1 parent 7023ac7 commit e36141a
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions homeassistant/components/onboarding/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,20 @@

import asyncio
from http import HTTPStatus
from typing import cast

from aiohttp import web
from aiohttp.web_exceptions import HTTPUnauthorized
import voluptuous as vol

from homeassistant.auth.const import GROUP_ID_ADMIN
from homeassistant.auth.providers.homeassistant import HassAuthProvider
from homeassistant.components import person
from homeassistant.components.auth import indieauth
from homeassistant.components.http import KEY_HASS_REFRESH_TOKEN_ID
from homeassistant.components.http.data_validator import RequestDataValidator
from homeassistant.components.http.view import HomeAssistantView
from homeassistant.core import callback
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import area_registry as ar
from homeassistant.helpers.system_info import async_get_system_info
from homeassistant.helpers.translation import async_get_translations
Expand Down Expand Up @@ -123,9 +126,9 @@ class UserOnboardingView(_BaseOnboardingView):
}
)
)
async def post(self, request, data):
async def post(self, request: web.Request, data: dict[str, str]) -> web.Response:
"""Handle user creation, area creation."""
hass = request.app["hass"]
hass: HomeAssistant = request.app["hass"]

async with self._lock:
if self._async_is_done():
Expand All @@ -137,13 +140,10 @@ async def post(self, request, data):
user = await hass.auth.async_create_user(
data["name"], group_ids=[GROUP_ID_ADMIN]
)
await hass.async_add_executor_job(
provider.data.add_auth, data["username"], data["password"]
)
await provider.async_add_auth(data["username"], data["password"])
credentials = await provider.async_get_or_create_credentials(
{"username": data["username"]}
)
await provider.data.async_save()
await hass.auth.async_link_user(user, credentials)
if "person" in hass.config.components:
await person.async_create_person(hass, data["name"], user_id=user.id)
Expand Down Expand Up @@ -292,10 +292,10 @@ async def post(self, request):


@callback
def _async_get_hass_provider(hass):
def _async_get_hass_provider(hass: HomeAssistant) -> HassAuthProvider:
"""Get the Home Assistant auth provider."""
for prv in hass.auth.auth_providers:
if prv.type == "homeassistant":
return prv
return cast(HassAuthProvider, prv)

raise RuntimeError("No Home Assistant provider found")

0 comments on commit e36141a

Please sign in to comment.