Example #1
0
def delete(profile_name):
    """Deletes a profile and its stored password (if any)."""
    try:
        cliprofile.get_profile(profile_name)
    except Code42CLIError:
        raise Code42CLIError(f"Profile '{profile_name}' does not exist.")
    message = (
        "\nDeleting this profile will also delete any stored passwords and checkpoints. "
        "Are you sure? (y/n): ")
    if cliprofile.is_default_profile(profile_name):
        message = f"\n'{profile_name}' is currently the default profile!\n{message}"
    if does_user_agree(message):
        cliprofile.delete_profile(profile_name)
        echo(f"Profile '{profile_name}' has been deleted.")
Example #2
0
def _set_pw(profile_name, password):
    c42profile = cliprofile.get_profile(profile_name)
    try:
        validate_connection(c42profile.authority_url, c42profile.username,
                            password)
    except Exception:
        secho("Password not stored!", bold=True)
        raise
    cliprofile.set_password(password, c42profile.name)
Example #3
0
 def __init__(self):
     try:
         self._profile = get_profile()
     except Code42CLIError:
         self._profile = None
     self.debug = False
     self._sdk = None
     self.search_filters = []
     self.assume_yes = False
Example #4
0
def update(name, server, username, password, disable_ssl_errors):
    """Update an existing profile."""
    c42profile = cliprofile.get_profile(name)
    cliprofile.update_profile(c42profile.name, server, username, disable_ssl_errors)
    if password:
        _set_pw(name, password)
    else:
        _prompt_for_allow_password_set(c42profile.name)
    echo("Profile '{}' has been updated.".format(c42profile.name))
Example #5
0
def show(profile_name):
    """Print the details of a profile."""
    c42profile = cliprofile.get_profile(profile_name)
    echo("\n{}:".format(c42profile.name))
    echo("\t* username = {}".format(c42profile.username))
    echo("\t* authority url = {}".format(c42profile.authority_url))
    echo("\t* ignore-ssl-errors = {}".format(c42profile.ignore_ssl_errors))
    if cliprofile.get_stored_password(c42profile.name) is not None:
        echo("\t* A password is set.")
    echo("")
    echo("")
Example #6
0
def _set_pw(profile_name, password, debug, totp=None):
    c42profile = cliprofile.get_profile(profile_name)
    try:
        create_sdk(c42profile,
                   is_debug_mode=debug,
                   password=password,
                   totp=totp)
    except Exception:
        secho("Password not stored!", bold=True)
        raise
    cliprofile.set_password(password, c42profile.name)
    return c42profile.name
Example #7
0
def _set_pw(profile_name, password):
    c42profile = cliprofile.get_profile(profile_name)
    try:
        create_sdk(c42profile, is_debug_mode=False, password=password)
    except Py42MFARequiredError:
        echo(
            "Multi-factor account detected. `--totp <token>` option will be required for all code42 invocations."
        )
    except Exception:
        secho("Password not stored!", bold=True)
        raise
    cliprofile.set_password(password, c42profile.name)
    return c42profile.name
Example #8
0
def update(name, server, username, password, disable_ssl_errors, debug, totp):
    """Update an existing profile."""
    c42profile = cliprofile.get_profile(name)

    if not server and not username and not password and disable_ssl_errors is None:
        raise click.UsageError(
            "Must provide at least one of `--username`, `--server`, `--password`, or "
            "`--disable-ssl-errors` when updating a profile.")

    cliprofile.update_profile(c42profile.name, server, username,
                              disable_ssl_errors)
    if not password and not c42profile.has_stored_password:
        password = _prompt_for_password(c42profile.name)
    if password:
        _set_pw(name, password, debug, totp=totp)

    echo(f"Profile '{c42profile.name}' has been updated.")
Example #9
0
def _get_current_profile_name():
    try:
        profile = get_profile()
        return profile.name
    except Code42CLIError:
        return None
Example #10
0
def set_profile(ctx, param, value):
    """Sets the profile on the global state object when --profile <name> is passed to commands
    decorated with @sdk_options."""
    if value:
        ctx.ensure_object(CLIState).profile = get_profile(value)
Example #11
0
 def profile(self):
     if self._profile is None:
         self._profile = get_profile()
     return self._profile
Example #12
0
def test_get_profile_when_config_accessor_raises_cli_error(config_accessor):
    config_accessor.get_profile.side_effect = NoConfigProfileError()
    with pytest.raises(Code42CLIError):
        cliprofile.get_profile("testprofilename")
Example #13
0
def test_get_profile_returns_expected_profile(config_accessor):
    mock_section = MockSection("testprofilename")
    config_accessor.get_profile.return_value = mock_section
    profile = cliprofile.get_profile("testprofilename")
    assert profile.name == "testprofilename"