Home Assistant Unofficial Reference 2024.12.1
homeassistant.auth.AuthManager Class Reference

Public Member Functions

None __init__ (self, HomeAssistant hass, auth_store.AuthStore store, _ProviderDict providers, _MfaModuleDict mfa_modules)
 
None async_activate_user (self, models.User user)
 
str async_create_access_token (self, models.RefreshToken refresh_token, str|None remote_ip=None)
 
models.RefreshToken async_create_refresh_token (self, models.User user, str|None client_id=None, str|None client_name=None, str|None client_icon=None, str|None token_type=None, timedelta access_token_expiration=ACCESS_TOKEN_EXPIRATION, models.Credentials|None credential=None)
 
models.User async_create_system_user (self, str name, *list[str]|None group_ids=None, bool|None local_only=None)
 
models.User async_create_user (self, str name, *list[str]|None group_ids=None, bool|None local_only=None)
 
None async_deactivate_user (self, models.User user)
 
None async_disable_user_mfa (self, models.User user, str mfa_module_id)
 
None async_enable_user_mfa (self, models.User user, str mfa_module_id, Any data)
 
dict[str, str] async_get_enabled_mfa (self, models.User user)
 
models.Group|None async_get_group (self, str group_id)
 
models.User async_get_or_create_user (self, models.Credentials credentials)
 
models.User|None async_get_owner (self)
 
models.RefreshToken|None async_get_refresh_token (self, str token_id)
 
models.RefreshToken|None async_get_refresh_token_by_token (self, str token)
 
models.User|None async_get_user (self, str user_id)
 
models.User|None async_get_user_by_credentials (self, models.Credentials credentials)
 
list[models.Userasync_get_users (self)
 
None async_link_user (self, models.User user, models.Credentials credentials)
 
CALLBACK_TYPE async_register_revoke_token_callback (self, str refresh_token_id, CALLBACK_TYPE revoke_callback)
 
None async_remove_credentials (self, models.Credentials credentials)
 
None async_remove_refresh_token (self, models.RefreshToken refresh_token)
 
None async_remove_user (self, models.User user)
 
None async_set_expiry (self, models.RefreshToken refresh_token, *bool enable_expiry)
 
None async_setup (self)
 
None async_update_user (self, models.User user, str|None name=None, bool|None is_active=None, list[str]|None group_ids=None, bool|None local_only=None)
 
None async_update_user_credentials_data (self, models.Credentials credentials, dict[str, Any] data)
 
models.RefreshToken|None async_validate_access_token (self, str token)
 
None async_validate_refresh_token (self, models.RefreshToken refresh_token, str|None remote_ip=None)
 
list[MultiFactorAuthModuleauth_mfa_modules (self)
 
list[AuthProviderauth_providers (self)
 
MultiFactorAuthModule|None get_auth_mfa_module (self, str module_id)
 
AuthProvider|None get_auth_provider (self, str provider_type, str|None provider_id)
 
list[AuthProviderget_auth_providers (self, str provider_type)
 

Public Attributes

 hass
 
 login_flow
 

Private Member Functions

None _async_cancel_expiration_schedule (self)
 
AuthProvider|None _async_get_auth_provider (self, models.Credentials credentials)
 
None _async_remove_expired_refresh_tokens (self, datetime|None _=None)
 
AuthProvider|None _async_resolve_provider (self, models.RefreshToken refresh_token)
 
None _async_track_next_refresh_token_expiration (self)
 
None _async_unregister (self, set[CALLBACK_TYPE] callbacks, CALLBACK_TYPE callback_)
 
bool _user_should_be_owner (self)
 

Private Attributes

 _expire_callback
 
 _mfa_modules
 
 _providers
 
 _remove_expired_job
 
 _store
 

Detailed Description

Manage the authentication for Home Assistant.

Definition at line 174 of file __init__.py.

Constructor & Destructor Documentation

◆ __init__()

None homeassistant.auth.AuthManager.__init__ (   self,
HomeAssistant  hass,
auth_store.AuthStore  store,
_ProviderDict  providers,
_MfaModuleDict  mfa_modules 
)
Initialize the auth manager.

Definition at line 177 of file __init__.py.

Member Function Documentation

◆ _async_cancel_expiration_schedule()

None homeassistant.auth.AuthManager._async_cancel_expiration_schedule (   self)
private
Cancel tracking of expired refresh tokens.

Definition at line 571 of file __init__.py.

◆ _async_get_auth_provider()

AuthProvider | None homeassistant.auth.AuthManager._async_get_auth_provider (   self,
models.Credentials   credentials 
)
private
Get auth provider from a set of credentials.

Definition at line 683 of file __init__.py.

◆ _async_remove_expired_refresh_tokens()

None homeassistant.auth.AuthManager._async_remove_expired_refresh_tokens (   self,
datetime | None   _ = None 
)
private
Remove expired refresh tokens.

Definition at line 546 of file __init__.py.

◆ _async_resolve_provider()

AuthProvider | None homeassistant.auth.AuthManager._async_resolve_provider (   self,
models.RefreshToken   refresh_token 
)
private
Get the auth provider for the given refresh token.

Raises an exception if the expected provider is no longer available or return
None if no provider was expected for this refresh token.

Definition at line 618 of file __init__.py.

◆ _async_track_next_refresh_token_expiration()

None homeassistant.auth.AuthManager._async_track_next_refresh_token_expiration (   self)
private
Initialise all token expiration scheduled tasks.

Definition at line 555 of file __init__.py.

◆ _async_unregister()

None homeassistant.auth.AuthManager._async_unregister (   self,
set[CALLBACK_TYPE]  callbacks,
CALLBACK_TYPE   callback_ 
)
private
Unregister a callback.

Definition at line 578 of file __init__.py.

◆ _user_should_be_owner()

bool homeassistant.auth.AuthManager._user_should_be_owner (   self)
private
Determine if user should be owner.

A user should be an owner if it is the first non-system user that is
being created.

Definition at line 693 of file __init__.py.

◆ async_activate_user()

None homeassistant.auth.AuthManager.async_activate_user (   self,
models.User  user 
)
Activate a user.

Definition at line 396 of file __init__.py.

◆ async_create_access_token()

str homeassistant.auth.AuthManager.async_create_access_token (   self,
models.RefreshToken  refresh_token,
str | None   remote_ip = None 
)
Create a new access token.

Definition at line 597 of file __init__.py.

◆ async_create_refresh_token()

models.RefreshToken homeassistant.auth.AuthManager.async_create_refresh_token (   self,
models.User  user,
str | None   client_id = None,
str | None   client_name = None,
str | None   client_icon = None,
str | None   token_type = None,
timedelta   access_token_expiration = ACCESS_TOKEN_EXPIRATION,
models.Credentials | None   credential = None 
)
Create a new refresh token for a user.

Definition at line 451 of file __init__.py.

◆ async_create_system_user()

models.User homeassistant.auth.AuthManager.async_create_system_user (   self,
str  name,
*list[str] | None   group_ids = None,
bool | None   local_only = None 
)
Create a system user.

Definition at line 262 of file __init__.py.

◆ async_create_user()

models.User homeassistant.auth.AuthManager.async_create_user (   self,
str  name,
*list[str] | None   group_ids = None,
bool | None   local_only = None 
)
Create a user.

Definition at line 282 of file __init__.py.

◆ async_deactivate_user()

None homeassistant.auth.AuthManager.async_deactivate_user (   self,
models.User  user 
)
Deactivate a user.

Definition at line 400 of file __init__.py.

◆ async_disable_user_mfa()

None homeassistant.auth.AuthManager.async_disable_user_mfa (   self,
models.User  user,
str   mfa_module_id 
)
Disable a multi-factor auth module for user.

Definition at line 429 of file __init__.py.

◆ async_enable_user_mfa()

None homeassistant.auth.AuthManager.async_enable_user_mfa (   self,
models.User  user,
str  mfa_module_id,
Any   data 
)
Enable a multi-factor auth module for user.

Definition at line 415 of file __init__.py.

◆ async_get_enabled_mfa()

dict[str, str] homeassistant.auth.AuthManager.async_get_enabled_mfa (   self,
models.User  user 
)
List enabled mfa modules for user.

Definition at line 443 of file __init__.py.

◆ async_get_group()

models.Group | None homeassistant.auth.AuthManager.async_get_group (   self,
str  group_id 
)
Retrieve all groups.

Definition at line 247 of file __init__.py.

◆ async_get_or_create_user()

models.User homeassistant.auth.AuthManager.async_get_or_create_user (   self,
models.Credentials   credentials 
)
Get or create a user.

Definition at line 306 of file __init__.py.

◆ async_get_owner()

models.User | None homeassistant.auth.AuthManager.async_get_owner (   self)
Retrieve the owner.

Definition at line 242 of file __init__.py.

◆ async_get_refresh_token()

models.RefreshToken | None homeassistant.auth.AuthManager.async_get_refresh_token (   self,
str  token_id 
)
Get refresh token by id.

Definition at line 518 of file __init__.py.

◆ async_get_refresh_token_by_token()

models.RefreshToken | None homeassistant.auth.AuthManager.async_get_refresh_token_by_token (   self,
str   token 
)
Get refresh token by token.

Definition at line 523 of file __init__.py.

◆ async_get_user()

models.User | None homeassistant.auth.AuthManager.async_get_user (   self,
str  user_id 
)
Retrieve a user.

Definition at line 238 of file __init__.py.

◆ async_get_user_by_credentials()

models.User | None homeassistant.auth.AuthManager.async_get_user_by_credentials (   self,
models.Credentials   credentials 
)
Get a user by credential, return None if not found.

Definition at line 251 of file __init__.py.

◆ async_get_users()

list[models.User] homeassistant.auth.AuthManager.async_get_users (   self)
Retrieve all users.

Definition at line 234 of file __init__.py.

◆ async_link_user()

None homeassistant.auth.AuthManager.async_link_user (   self,
models.User  user,
models.Credentials   credentials 
)
Link credentials to an existing user.

Definition at line 335 of file __init__.py.

◆ async_register_revoke_token_callback()

CALLBACK_TYPE homeassistant.auth.AuthManager.async_register_revoke_token_callback (   self,
str  refresh_token_id,
CALLBACK_TYPE   revoke_callback 
)
Register a callback to be called when the refresh token id is revoked.

Definition at line 585 of file __init__.py.

◆ async_remove_credentials()

None homeassistant.auth.AuthManager.async_remove_credentials (   self,
models.Credentials  credentials 
)
Remove credentials.

Definition at line 406 of file __init__.py.

◆ async_remove_refresh_token()

None homeassistant.auth.AuthManager.async_remove_refresh_token (   self,
models.RefreshToken  refresh_token 
)
Delete a refresh token.

Definition at line 530 of file __init__.py.

◆ async_remove_user()

None homeassistant.auth.AuthManager.async_remove_user (   self,
models.User  user 
)
Remove a user.

Definition at line 347 of file __init__.py.

◆ async_set_expiry()

None homeassistant.auth.AuthManager.async_set_expiry (   self,
models.RefreshToken  refresh_token,
*bool   enable_expiry 
)
Enable or disable expiry of a refresh token.

Definition at line 539 of file __init__.py.

◆ async_setup()

None homeassistant.auth.AuthManager.async_setup (   self)
Set up the auth manager.

Definition at line 196 of file __init__.py.

◆ async_update_user()

None homeassistant.auth.AuthManager.async_update_user (   self,
models.User  user,
str | None   name = None,
bool | None   is_active = None,
list[str] | None   group_ids = None,
bool | None   local_only = None 
)
Update a user.

Definition at line 361 of file __init__.py.

◆ async_update_user_credentials_data()

None homeassistant.auth.AuthManager.async_update_user_credentials_data (   self,
models.Credentials  credentials,
dict[str, Any]   data 
)
Update credentials data.

Definition at line 390 of file __init__.py.

◆ async_validate_access_token()

models.RefreshToken | None homeassistant.auth.AuthManager.async_validate_access_token (   self,
str  token 
)
Return refresh token if an access token is valid.

Definition at line 652 of file __init__.py.

◆ async_validate_refresh_token()

None homeassistant.auth.AuthManager.async_validate_refresh_token (   self,
models.RefreshToken  refresh_token,
str | None   remote_ip = None 
)
Validate that a refresh token is usable.

Will raise InvalidAuthError on errors.

Definition at line 641 of file __init__.py.

◆ auth_mfa_modules()

list[MultiFactorAuthModule] homeassistant.auth.AuthManager.auth_mfa_modules (   self)
Return a list of available auth modules.

Definition at line 212 of file __init__.py.

◆ auth_providers()

list[AuthProvider] homeassistant.auth.AuthManager.auth_providers (   self)
Return a list of available auth providers.

Definition at line 207 of file __init__.py.

◆ get_auth_mfa_module()

MultiFactorAuthModule | None homeassistant.auth.AuthManager.get_auth_mfa_module (   self,
str  module_id 
)
Return a multi-factor auth module, None if not found.

Definition at line 230 of file __init__.py.

◆ get_auth_provider()

AuthProvider | None homeassistant.auth.AuthManager.get_auth_provider (   self,
str  provider_type,
str | None   provider_id 
)
Return an auth provider, None if not found.

Definition at line 216 of file __init__.py.

◆ get_auth_providers()

list[AuthProvider] homeassistant.auth.AuthManager.get_auth_providers (   self,
str  provider_type 
)
Return a List of auth provider of one type, Empty if not found.

Definition at line 222 of file __init__.py.

Member Data Documentation

◆ _expire_callback

homeassistant.auth.AuthManager._expire_callback
private

Definition at line 564 of file __init__.py.

◆ _mfa_modules

homeassistant.auth.AuthManager._mfa_modules
private

Definition at line 188 of file __init__.py.

◆ _providers

homeassistant.auth.AuthManager._providers
private

Definition at line 187 of file __init__.py.

◆ _remove_expired_job

homeassistant.auth.AuthManager._remove_expired_job
private

Definition at line 192 of file __init__.py.

◆ _store

homeassistant.auth.AuthManager._store
private

Definition at line 186 of file __init__.py.

◆ hass

homeassistant.auth.AuthManager.hass

Definition at line 185 of file __init__.py.

◆ login_flow

homeassistant.auth.AuthManager.login_flow

Definition at line 189 of file __init__.py.


The documentation for this class was generated from the following file: