about summary refs log tree commit diff
path: root/app/lib/proof_provider
diff options
context:
space:
mode:
authorReverite <github@reverite.sh>2019-03-30 23:42:55 -0700
committerReverite <github@reverite.sh>2019-03-30 23:42:55 -0700
commit4d77314005483e53e320a82c87805c6bcca1c463 (patch)
tree99f5b05bcbb1e8278517bf9a8f9ab114ab2dec45 /app/lib/proof_provider
parente356a902d23a0ed87c62717085a37d34550c8464 (diff)
parent925830d11bb5c132e282f82bdb2ca893d87c9c24 (diff)
Merge branch 'glitch' into production
Diffstat (limited to 'app/lib/proof_provider')
-rw-r--r--app/lib/proof_provider/keybase.rb6
-rw-r--r--app/lib/proof_provider/keybase/config_serializer.rb9
-rw-r--r--app/lib/proof_provider/keybase/verifier.rb6
3 files changed, 10 insertions, 11 deletions
diff --git a/app/lib/proof_provider/keybase.rb b/app/lib/proof_provider/keybase.rb
index 96322a265..628972e9d 100644
--- a/app/lib/proof_provider/keybase.rb
+++ b/app/lib/proof_provider/keybase.rb
@@ -1,7 +1,8 @@
 # frozen_string_literal: true
 
 class ProofProvider::Keybase
-  BASE_URL = 'https://keybase.io'
+  BASE_URL = ENV.fetch('KEYBASE_BASE_URL', 'https://keybase.io')
+  DOMAIN = ENV.fetch('KEYBASE_DOMAIN', Rails.configuration.x.local_domain)
 
   class Error < StandardError; end
 
@@ -27,7 +28,8 @@ class ProofProvider::Keybase
       return
     end
 
-    return if @proof.provider_username.blank?
+    # Do not perform synchronous validation for remote accounts
+    return if @proof.provider_username.blank? || !@proof.account.local?
 
     if verifier.valid?
       @proof.verified = true
diff --git a/app/lib/proof_provider/keybase/config_serializer.rb b/app/lib/proof_provider/keybase/config_serializer.rb
index 474ea74e2..5241d201f 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,
@@ -13,7 +14,7 @@ class ProofProvider::Keybase::ConfigSerializer < ActiveModel::Serializer
   end
 
   def domain
-    Rails.configuration.x.local_domain
+    ProofProvider::Keybase::DOMAIN
   end
 
   def display_name
@@ -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
@@ -65,6 +66,6 @@ class ProofProvider::Keybase::ConfigSerializer < ActiveModel::Serializer
   end
 
   def contact
-    [Setting.site_contact_email.presence].compact
+    [Setting.site_contact_email.presence || 'unknown'].compact
   end
 end
diff --git a/app/lib/proof_provider/keybase/verifier.rb b/app/lib/proof_provider/keybase/verifier.rb
index 86f249dd7..ab1422323 100644
--- a/app/lib/proof_provider/keybase/verifier.rb
+++ b/app/lib/proof_provider/keybase/verifier.rb
@@ -49,14 +49,10 @@ class ProofProvider::Keybase::Verifier
 
   def query_params
     {
-      domain: domain,
+      domain: ProofProvider::Keybase::DOMAIN,
       kb_username: @provider_username,
       username: @local_username,
       sig_hash: @token,
     }
   end
-
-  def domain
-    Rails.configuration.x.local_domain
-  end
 end