discourse/app/models/sidebar_url.rb
Krzysztof Kotlarek 84a87a703c
DEV: configurable custom sidebar sections (#20057)
Allows users to configure their own custom sidebar sections with links withing Discourse instance. Links can be passed as relative path, for example "/tags" or full URL.

Only path is saved in DB, so when Discourse domain is changed, links will be still valid.

Feature is hidden behind SiteSetting.enable_custom_sidebar_sections. This hidden setting determines the group which members have access to this new feature.
2023-02-03 14:44:40 +11:00

28 lines
698 B
Ruby

# frozen_string_literal: true
class SidebarUrl < ActiveRecord::Base
validates :name, presence: true
validates :value, presence: true
validate :path_validator
def path_validator
Rails.application.routes.recognize_path(value)
rescue ActionController::RoutingError
errors.add(
:value,
I18n.t("activerecord.errors.models.sidebar_section_link.attributes.linkable_type.invalid"),
)
end
end
# == Schema Information
#
# Table name: sidebar_urls
#
# id :bigint not null, primary key
# name :string not null
# value :string not null
# created_at :datetime not null
# updated_at :datetime not null
#