Skip to content

credentials

Kitsu credentials functions.

clear_credentials()

Clear credentials in Secure Registry.

Source code in client/ayon_kitsu/credentials.py
68
69
70
71
72
73
74
75
76
77
78
79
80
81
def clear_credentials():
    """Clear credentials in Secure Registry."""
    (login, passsword) = load_credentials()
    if login is None and passsword is None:
        return

    # Get user registry
    user_registry = AYONSecureRegistry("kitsu_user")

    # Set local settings
    if login is not None:
        user_registry.delete_item("login")
    if passsword is not None:
        user_registry.delete_item("password")

load_credentials()

Load registered credentials.

Returns:

Type Description
Tuple[Union[object, None], Union[object, None]]

Tuple[str, str]: (Login, Password)

Source code in client/ayon_kitsu/credentials.py
 99
100
101
102
103
104
105
106
107
108
109
110
111
def load_credentials() -> Tuple[Union[object, None], Union[object, None]]:
    """Load registered credentials.

    Returns:
        Tuple[str, str]: (Login, Password)
    """
    # Get user registry
    user_registry = AYONSecureRegistry("kitsu_user")

    return (
        user_registry.get_item("login", None),
        user_registry.get_item("password", None),
    )

save_credentials(login, password)

Save credentials in Secure Registry.

Parameters:

Name Type Description Default
login str

Kitsu user login

required
password str

Kitsu user password

required
Source code in client/ayon_kitsu/credentials.py
84
85
86
87
88
89
90
91
92
93
94
95
96
def save_credentials(login: str, password: str):
    """Save credentials in Secure Registry.

    Args:
        login (str): Kitsu user login
        password (str): Kitsu user password
    """
    # Get user registry
    user_registry = AYONSecureRegistry("kitsu_user")

    # Set local settings
    user_registry.set_item("login", login)
    user_registry.set_item("password", password)

set_credentials_envs(login, password)

Set environment variables with Kitsu login and password.

Parameters:

Name Type Description Default
login str

Kitsu user login

required
password str

Kitsu user password

required
Source code in client/ayon_kitsu/credentials.py
114
115
116
117
118
119
120
121
122
def set_credentials_envs(login: str, password: str):
    """Set environment variables with Kitsu login and password.

    Args:
        login (str): Kitsu user login
        password (str): Kitsu user password
    """
    os.environ["KITSU_LOGIN"] = login
    os.environ["KITSU_PWD"] = password

validate_credentials(login, password, kitsu_url=None)

Validate credentials by trying to connect to Kitsu host URL.

Parameters:

Name Type Description Default
login str

Kitsu user login

required
password str

Kitsu user password

required
kitsu_url str

Kitsu host URL. Defaults to None.

None

Returns:

Name Type Description
bool bool

Are credentials valid?

Source code in client/ayon_kitsu/credentials.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
def validate_credentials(
    login: str,
    password: str,
    kitsu_url: Optional[str] = None,
) -> bool:
    """Validate credentials by trying to connect to Kitsu host URL.

    Args:
        login (str): Kitsu user login
        password (str): Kitsu user password
        kitsu_url (str, optional): Kitsu host URL. Defaults to None.

    Returns:
        bool: Are credentials valid?
    """

    if kitsu_url is None:
        if os.environ.get("KITSU_SERVER") is None:
            # TODO raise correct type
            raise
        else:
            kitsu_url = str(os.environ.get("KITSU_SERVER"))

    # Connect to server
    validate_host(kitsu_url)

    # Authenticate
    try:
        gazu.log_in(login, password)
    except gazu.exception.AuthFailedException:
        return False

    # TODO remove this event trigger
    # - for what is this used?
    emit_event("kitsu.user.logged", data={"username": login}, source="kitsu")

    return True

validate_host(kitsu_url)

Validate credentials by trying to connect to Kitsu host URL.

Parameters:

Name Type Description Default
kitsu_url str

Kitsu host URL.

required

Returns:

Name Type Description
bool bool

Is host valid?

Source code in client/ayon_kitsu/credentials.py
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
def validate_host(kitsu_url: str) -> bool:
    """Validate credentials by trying to connect to Kitsu host URL.

    Args:
        kitsu_url (str, optional): Kitsu host URL.

    Returns:
        bool: Is host valid?
    """
    # Connect to server
    gazu.set_host(kitsu_url)

    # Test host
    if gazu.client.host_is_valid():
        return True
    else:
        raise gazu.exception.HostException(f"Host '{kitsu_url}' is invalid.")