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.")
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)
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
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))
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("")
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
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
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.")
def _get_current_profile_name(): try: profile = get_profile() return profile.name except Code42CLIError: return None
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)
def profile(self): if self._profile is None: self._profile = get_profile() return self._profile
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")
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"