/**
  * Validate data.
  *
  * This ensures that key file is provided if URL is provided.
  *
  * @param string $data
  * @return mixed True on success, else error message.
  */
 public function validate($data)
 {
     $result = parent::validate($data);
     if ($result !== true) {
         return $result;
     }
     $usercontext = context_user::instance($USER->id);
     $url = get_config('filter_cloudfront_signurl', 'distributionurl');
     $fs = get_file_storage();
     if ($url != '' && empty($data)) {
         return get_string('errornoprivatekey', 'filter_cloudfront_signurl');
     }
     return true;
 }