Source code for q2_sdk.hq.models.external_auth.create_login

from __future__ import annotations
from dataclasses import dataclass

from lxml import objectify  # type: ignore
from q2_sdk.tools.utils import to_bool
from .base import BaseAuthRequest, BaseAuthResponse, Password


[docs] @dataclass class Request(BaseAuthRequest): """ Shape that comes in from HQ when creating a login. This can be invoked in a sandbox with ``q2 db create_online_user`` .. code-block:: xml <HQ request="CreateLogin" messageID="{0}"> <UserId>2</UserId> <LoginId>3</LoginId> <Login>LoginName</Login> <CSRLogin>CSRLoginName</CSRLogin> <Password Encrypted="true">tJ6HqNzIZH0iGVdmH5t6Tw==</Password> <isLogon>True</isLogon> </HQ> """ raw: objectify.Element user_id: int login_id: int login_name: str password: Password is_logon: bool @staticmethod def from_xml(xml: objectify.Element) -> Request: user_id = int(xml.UserId.text) login_id = int(xml.LoginId.text) login_name = xml.Login.text password = Password(xml.Password.text, to_bool(xml.Password.get("Encrypted"))) is_logon = to_bool(getattr(xml, "isLogon", False)) return Request( xml, user_id, login_id, login_name, password, is_logon, )
[docs] @dataclass class Response(BaseAuthResponse): ...