debian-mirror-gitlab/app/validators/zoom_url_validator.rb

19 lines
485 B
Ruby
Raw Normal View History

2019-12-26 22:10:19 +05:30
# frozen_string_literal: true
# ZoomUrlValidator
#
# Custom validator for zoom urls
#
class ZoomUrlValidator < ActiveModel::EachValidator
2020-12-08 15:28:05 +05:30
ALLOWED_SCHEMES = %w(https).freeze
2019-12-26 22:10:19 +05:30
def validate_each(record, attribute, value)
2020-12-08 15:28:05 +05:30
links_count = Gitlab::ZoomLinkExtractor.new(value).links.size
valid = Gitlab::UrlSanitizer.valid?(value, allowed_schemes: ALLOWED_SCHEMES)
return if links_count == 1 && valid
2019-12-26 22:10:19 +05:30
record.errors.add(:url, 'must contain one valid Zoom URL')
end
end