diff --git a/Gemfile b/Gemfile index 7f90ab5aa..088e25eea 100644 --- a/Gemfile +++ b/Gemfile @@ -108,7 +108,7 @@ group :production, :test do end group :test do - gem 'capybara', '~> 3.14' + gem 'capybara', '~> 3.15' gem 'climate_control', '~> 0.2' gem 'faker', '~> 1.9' gem 'microformats', '~> 4.1' diff --git a/Gemfile.lock b/Gemfile.lock index 5df1dc0ad..572a454ea 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -127,7 +127,7 @@ GEM sshkit (~> 1.3) capistrano-yarn (2.0.2) capistrano (~> 3.0) - capybara (3.14.0) + capybara (3.15.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) @@ -366,7 +366,7 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.2) sidekiq (>= 3.5) statsd-ruby (~> 1.4, >= 1.4.0) - oj (3.7.10) + oj (3.7.11) omniauth (1.9.0) hashie (>= 3.4.6, < 3.7.0) rack (>= 1.6.2, < 3) @@ -422,7 +422,7 @@ GEM pry (>= 0.10.4) psych (3.1.0) public_suffix (3.0.3) - puma (3.12.0) + puma (3.12.1) pundit (2.0.1) activesupport (>= 3.0.0) raabro (1.1.6) @@ -672,7 +672,7 @@ DEPENDENCIES capistrano-rails (~> 1.4) capistrano-rbenv (~> 2.1) capistrano-yarn (~> 2.0) - capybara (~> 3.14) + capybara (~> 3.15) charlock_holmes (~> 0.7.6) chewy (~> 5.0) cld3 (~> 3.2.3) diff --git a/app/controllers/concerns/account_controller_concern.rb b/app/controllers/concerns/account_controller_concern.rb index 8817fd7de..4f28941ae 100644 --- a/app/controllers/concerns/account_controller_concern.rb +++ b/app/controllers/concerns/account_controller_concern.rb @@ -69,6 +69,10 @@ module AccountControllerConcern end def check_account_suspension - gone if @account.suspended? + if @account.suspended? + skip_session! + expires_in(3.minutes, public: true) + gone + end end end diff --git a/app/lib/proof_provider/keybase/config_serializer.rb b/app/lib/proof_provider/keybase/config_serializer.rb index 474ea74e2..557bafe84 100644 --- a/app/lib/proof_provider/keybase/config_serializer.rb +++ b/app/lib/proof_provider/keybase/config_serializer.rb @@ -2,6 +2,7 @@ class ProofProvider::Keybase::ConfigSerializer < ActiveModel::Serializer include RoutingHelper + include ActionView::Helpers::TextHelper attributes :version, :domain, :display_name, :username, :brand_color, :logo, :description, :prefill_url, @@ -29,11 +30,11 @@ class ProofProvider::Keybase::ConfigSerializer < ActiveModel::Serializer end def description - Setting.site_short_description.presence || Setting.site_description.presence || I18n.t('about.about_mastodon_html') + strip_tags(Setting.site_short_description.presence || I18n.t('about.about_mastodon_html')) end def username - { min: 1, max: 30, re: Account::USERNAME_RE.inspect } + { min: 1, max: 30, re: '[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?' } end def prefill_url diff --git a/app/serializers/manifest_serializer.rb b/app/serializers/manifest_serializer.rb index cc8b9a4d4..28127437d 100644 --- a/app/serializers/manifest_serializer.rb +++ b/app/serializers/manifest_serializer.rb @@ -18,7 +18,7 @@ class ManifestSerializer < ActiveModel::Serializer end def description - strip_tags(object.site_description.presence || I18n.t('about.about_mastodon_html')) + strip_tags(object.site_short_description.presence || I18n.t('about.about_mastodon_html')) end def icons diff --git a/app/services/activitypub/fetch_remote_poll_service.rb b/app/services/activitypub/fetch_remote_poll_service.rb index 44a23712c..854a32d05 100644 --- a/app/services/activitypub/fetch_remote_poll_service.rb +++ b/app/services/activitypub/fetch_remote_poll_service.rb @@ -5,6 +5,7 @@ class ActivityPub::FetchRemotePollService < BaseService def call(poll, on_behalf_of = nil) json = fetch_resource(poll.status.uri, true, on_behalf_of) + return unless supported_context?(json) ActivityPub::ProcessPollService.new.call(poll, json) end end diff --git a/app/services/activitypub/process_poll_service.rb b/app/services/activitypub/process_poll_service.rb index ee248169d..61357abd3 100644 --- a/app/services/activitypub/process_poll_service.rb +++ b/app/services/activitypub/process_poll_service.rb @@ -5,7 +5,7 @@ class ActivityPub::ProcessPollService < BaseService def call(poll, json) @json = json - return unless supported_context? && expected_type? + return unless expected_type? previous_expires_at = poll.expires_at @@ -54,10 +54,6 @@ class ActivityPub::ProcessPollService < BaseService private - def supported_context? - super(@json) - end - def expected_type? equals_or_includes_any?(@json['type'], %w(Question)) end diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb index 254e751d4..e8d7697a1 100644 --- a/config/initializers/omniauth.rb +++ b/config/initializers/omniauth.rb @@ -14,7 +14,7 @@ Devise.setup do |config| cas_options[:host] = ENV['CAS_HOST'] if ENV['CAS_HOST'] cas_options[:port] = ENV['CAS_PORT'] if ENV['CAS_PORT'] cas_options[:ssl] = ENV['CAS_SSL'] == 'true' if ENV['CAS_SSL'] - cas_options[:validate_url] = ENV['CAS_VALIDATE_URL'] if ENV['CAS_VALIDATE_URL'] + cas_options[:service_validate_url] = ENV['CAS_VALIDATE_URL'] if ENV['CAS_VALIDATE_URL'] cas_options[:callback_url] = ENV['CAS_CALLBACK_URL'] if ENV['CAS_CALLBACK_URL'] cas_options[:logout_url] = ENV['CAS_LOGOUT_URL'] if ENV['CAS_LOGOUT_URL'] cas_options[:login_url] = ENV['CAS_LOGIN_URL'] if ENV['CAS_LOGIN_URL']