Sha256: a952204e271a311f052f8a4af89b2cfcdf10e4dc9a88b41b885c7c2e825a3c5c
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true module Decidim class InvalidUrlError < StandardError; end class LinksController < Decidim::ApplicationController skip_before_action :store_current_location helper Decidim::ExternalDomainHelper helper_method :external_url before_action :parse_url rescue_from Decidim::InvalidUrlError, with: :invalid_url rescue_from URI::InvalidURIError, with: :invalid_url def new headers["X-Robots-Tag"] = "noindex" end private def invalid_url flash[:alert] = I18n.t("decidim.links.invalid_url") redirect_to decidim.root_path end def parse_url raise Decidim::InvalidUrlError unless external_url parts = external_url.match %r{\A(([a-z]+):)?//([^/]+)(/.*)?\z} raise Decidim::InvalidUrlError unless parts @url_parts = { protocol: parts[1], domain: parts[3], path: parts[4] } end def external_url @external_url ||= URI.parse(params[:external_url]).to_s end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
decidim-core-0.26.5 | app/controllers/decidim/links_controller.rb |
decidim-core-0.27.2 | app/controllers/decidim/links_controller.rb |