':param value: The value parameter is set by the user interface, which
for example sends "w3af/plugins/audit/ssl_certificate/ca.pem" or
"%ROOT_PATH%/plugins/audit/ssl_certificate/ca.pem".
If required we replace the %ROOT_PATH% with the right value for this
platform.
Something else we support is the base64:// data handler, which allows
us to have self-contained profiles as described in [0]. When a value
like that is set, we decode+unzip, save the data to a temp file and
set that file path as value.
[0] https://github.com/andresriancho/w3af/issues/10949'

def set_value(self, value):

    if (value == ''):
        self._value = value
        return
    validated_value = self.validate(value)
    current_dir = os.path.abspath(os.curdir)
    configured_value_dir = os.path.abspath(os.path.dirname(validated_value))
    if configured_value_dir.startswith(current_dir):
        self._value = os.path.relpath(validated_value)
    else:
        self._value = validated_value
