HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vmi1674223.contaboserver.net 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64
User: root (0)
PHP: 7.4.3-4ubuntu2.22
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/openproject/app/validators/url_validator.rb
# Borrows from http://gist.github.com/bf4/5320847
# without addressable requirement
# Accepts options[:allowed_protocols]
class UrlValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    url = parse(value)

    if url.nil?
      record.errors.add(attribute, :invalid_url)
    elsif !allowed_protocols.include?(url.scheme)
      record.errors.add(attribute, :invalid_url_scheme, allowed_schemes: allowed_protocols.join(', '))
    end
  end

  def parse(value)
    url = URI.parse(value)
  rescue => e
    nil
  end
  def allowed_protocols
    options.fetch(:allowed_protocols, %w(http https))
  end
end