2017-08-07 09:43:09 +08:00
|
|
|
module SiteSettings; end
|
2015-08-21 09:27:19 +08:00
|
|
|
|
2017-08-07 09:43:09 +08:00
|
|
|
module SiteSettings::Validations
|
2018-10-15 09:43:31 +08:00
|
|
|
def validate_error(key, opts = {})
|
|
|
|
raise Discourse::InvalidParameters.new(I18n.t("errors.site_settings.#{key}", opts))
|
2015-08-21 09:27:19 +08:00
|
|
|
end
|
|
|
|
|
2015-08-27 04:40:16 +08:00
|
|
|
def validate_default_categories(new_val, default_categories_selected)
|
|
|
|
validate_error :default_categories_already_selected if (new_val.split("|").to_set & default_categories_selected).size > 0
|
2015-08-22 02:39:21 +08:00
|
|
|
end
|
|
|
|
|
2015-08-27 04:40:16 +08:00
|
|
|
def validate_default_categories_watching(new_val)
|
|
|
|
default_categories_selected = [
|
|
|
|
SiteSetting.default_categories_tracking.split("|"),
|
|
|
|
SiteSetting.default_categories_muted.split("|"),
|
2016-11-10 02:45:14 +08:00
|
|
|
SiteSetting.default_categories_watching_first_post.split("|")
|
2015-08-27 04:40:16 +08:00
|
|
|
].flatten.to_set
|
|
|
|
|
|
|
|
validate_default_categories(new_val, default_categories_selected)
|
|
|
|
end
|
|
|
|
|
|
|
|
def validate_default_categories_tracking(new_val)
|
|
|
|
default_categories_selected = [
|
|
|
|
SiteSetting.default_categories_watching.split("|"),
|
|
|
|
SiteSetting.default_categories_muted.split("|"),
|
2016-11-10 02:45:14 +08:00
|
|
|
SiteSetting.default_categories_watching_first_post.split("|")
|
2015-08-27 04:40:16 +08:00
|
|
|
].flatten.to_set
|
|
|
|
|
|
|
|
validate_default_categories(new_val, default_categories_selected)
|
|
|
|
end
|
|
|
|
|
|
|
|
def validate_default_categories_muted(new_val)
|
|
|
|
default_categories_selected = [
|
|
|
|
SiteSetting.default_categories_watching.split("|"),
|
|
|
|
SiteSetting.default_categories_tracking.split("|"),
|
2016-11-10 02:45:14 +08:00
|
|
|
SiteSetting.default_categories_watching_first_post.split("|")
|
2015-08-27 04:40:16 +08:00
|
|
|
].flatten.to_set
|
|
|
|
|
|
|
|
validate_default_categories(new_val, default_categories_selected)
|
|
|
|
end
|
2015-08-22 02:39:21 +08:00
|
|
|
|
2016-11-10 02:37:54 +08:00
|
|
|
def validate_default_categories_watching_first_post(new_val)
|
|
|
|
default_categories_selected = [
|
|
|
|
SiteSetting.default_categories_watching.split("|"),
|
|
|
|
SiteSetting.default_categories_tracking.split("|"),
|
2016-11-10 02:45:14 +08:00
|
|
|
SiteSetting.default_categories_muted.split("|")
|
2016-11-10 02:37:54 +08:00
|
|
|
].flatten.to_set
|
|
|
|
|
|
|
|
validate_default_categories(new_val, default_categories_selected)
|
|
|
|
end
|
|
|
|
|
2015-09-16 21:55:26 +08:00
|
|
|
def validate_enable_s3_uploads(new_val)
|
|
|
|
validate_error :s3_upload_bucket_is_required if new_val == "t" && SiteSetting.s3_upload_bucket.blank?
|
|
|
|
end
|
|
|
|
|
2018-10-15 09:43:31 +08:00
|
|
|
def validate_backup_location(new_val)
|
|
|
|
return unless new_val == BackupLocationSiteSetting::S3
|
|
|
|
validate_error(:s3_backup_requires_s3_settings, setting_name: "s3_backup_bucket") if SiteSetting.s3_backup_bucket.blank?
|
|
|
|
|
|
|
|
unless SiteSetting.s3_use_iam_profile
|
|
|
|
validate_error(:s3_backup_requires_s3_settings, setting_name: "s3_access_key_id") if SiteSetting.s3_access_key_id.blank?
|
|
|
|
validate_error(:s3_backup_requires_s3_settings, setting_name: "s3_secret_access_key") if SiteSetting.s3_secret_access_key.blank?
|
|
|
|
end
|
|
|
|
end
|
2015-08-21 09:27:19 +08:00
|
|
|
end
|