Skip to content

user

Commmon user info logic.

ask_for_users(group_name=None)

Ask for user name.

Source code in dapla_team_cli/user.py
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
def ask_for_users(group_name: Optional[str] = None) -> List[str]:
    """Ask for user name."""
    if group_name is None:
        endpoint = DAPLA_TEAM_API_BASE
    else:
        endpoint = f"{DAPLA_TEAM_API_BASE}/groups/{group_name}"
    users: Result[List[User], str] = flow(
        DaplaTeamApiRequest(endpoint=f"{endpoint}/users", body=None), get_resource, map_(parse_users)
    )
    if not is_successful(users):
        if "401 Unauthorized" in users.failure():
            print("Autocomplete unavailable due to authentication failure.")
            if os.getenv("NB_USER") != "jovyan":
                print("You may need to run `dpteam auth login` to fix it.")
        logger.debug("failure getting list of teams: %s", users.failure())
        user_choices = [f"Autocomplete unavailable due to: {users.failure()}"]
    else:
        user_choices = [user.email_short for user in users.unwrap()]

    chosen_users: List[str] = []
    while True:
        user = q.autocomplete(
            message="Short-form username (e.g. abc@ssb.no) (Enter to skip)", choices=user_choices, style=prompt_custom_style
        ).ask()
        if user != "":
            chosen_users.append(user)

        if not confirm("Do you want to keep adding users?").ask():
            break

    return chosen_users