forked from fedi/mastodon
Fix admin validation being too strict about usernames (#10449)
* Fix admin validation being too strict about usernames Fix #10446 * Strip Setting.site_contact_username consistently throughout the codebase
This commit is contained in:
parent
78a8a99b0b
commit
2c63e0292a
|
@ -50,7 +50,7 @@ class HomeController < ApplicationController
|
||||||
push_subscription: current_account.user.web_push_subscription(current_session),
|
push_subscription: current_account.user.web_push_subscription(current_session),
|
||||||
current_account: current_account,
|
current_account: current_account,
|
||||||
token: current_session.token,
|
token: current_session.token,
|
||||||
admin: Account.find_local(Setting.site_contact_username),
|
admin: Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, '')),
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ class SharesController < ApplicationController
|
||||||
push_subscription: current_account.user.web_push_subscription(current_session),
|
push_subscription: current_account.user.web_push_subscription(current_session),
|
||||||
current_account: current_account,
|
current_account: current_account,
|
||||||
token: current_session.token,
|
token: current_session.token,
|
||||||
admin: Account.find_local(Setting.site_contact_username),
|
admin: Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, '')),
|
||||||
text: text,
|
text: text,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
|
@ -13,7 +13,7 @@ module AccountFinderConcern
|
||||||
end
|
end
|
||||||
|
|
||||||
def representative
|
def representative
|
||||||
find_local(Setting.site_contact_username.gsub(/\A@/, '')) || Account.local.find_by(suspended: false)
|
find_local(Setting.site_contact_username.strip.gsub(/\A@/, '')) || Account.local.find_by(suspended: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_local(username)
|
def find_local(username)
|
||||||
|
|
|
@ -13,7 +13,7 @@ class InstancePresenter
|
||||||
)
|
)
|
||||||
|
|
||||||
def contact_account
|
def contact_account
|
||||||
Account.find_local(Setting.site_contact_username.gsub(/\A@/, ''))
|
Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, ''))
|
||||||
end
|
end
|
||||||
|
|
||||||
def user_count
|
def user_count
|
||||||
|
|
|
@ -5,16 +5,10 @@ class ExistingUsernameValidator < ActiveModel::EachValidator
|
||||||
return if value.blank?
|
return if value.blank?
|
||||||
|
|
||||||
if options[:multiple]
|
if options[:multiple]
|
||||||
missing_usernames = value.split(',').map { |username| username unless Account.find_local(username) }.compact
|
missing_usernames = value.split(',').map { |username| username.strip.gsub(/\A@/, '') }.map { |username| username unless Account.find_local(username) }.compact
|
||||||
record.errors.add(attribute, I18n.t('existing_username_validator.not_found_multiple', usernames: missing_usernames.join(', '))) if missing_usernames.any?
|
record.errors.add(attribute, I18n.t('existing_username_validator.not_found_multiple', usernames: missing_usernames.join(', '))) if missing_usernames.any?
|
||||||
else
|
else
|
||||||
record.errors.add(attribute, I18n.t('existing_username_validator.not_found')) unless Account.find_local(value)
|
record.errors.add(attribute, I18n.t('existing_username_validator.not_found')) unless Account.find_local(value.strip.gsub(/\A@/, ''))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def valid_html?(str)
|
|
||||||
Nokogiri::HTML.fragment(str).to_s == str
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue