76 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
class ProofProvider::Keybase::ConfigSerializer < ActiveModel::Serializer
 | 
						|
  include RoutingHelper
 | 
						|
  include ActionView::Helpers::TextHelper
 | 
						|
 | 
						|
  attributes :version, :domain, :display_name, :username,
 | 
						|
             :brand_color, :logo, :description, :prefill_url,
 | 
						|
             :profile_url, :check_url, :check_path, :avatar_path,
 | 
						|
             :contact
 | 
						|
 | 
						|
  def version
 | 
						|
    1
 | 
						|
  end
 | 
						|
 | 
						|
  def domain
 | 
						|
    ProofProvider::Keybase::DOMAIN
 | 
						|
  end
 | 
						|
 | 
						|
  def display_name
 | 
						|
    Setting.site_title
 | 
						|
  end
 | 
						|
 | 
						|
  def logo
 | 
						|
    {
 | 
						|
      svg_black: full_asset_url(asset_pack_path('media/images/logo_transparent_black.svg')),
 | 
						|
      svg_white: full_asset_url(asset_pack_path('media/images/logo_transparent_white.svg')),
 | 
						|
      svg_full: full_asset_url(asset_pack_path('media/images/logo.svg')),
 | 
						|
      svg_full_darkmode: full_asset_url(asset_pack_path('media/images/logo.svg')),
 | 
						|
    }
 | 
						|
  end
 | 
						|
 | 
						|
  def brand_color
 | 
						|
    '#282c37'
 | 
						|
  end
 | 
						|
 | 
						|
  def description
 | 
						|
    strip_tags(Setting.site_short_description.presence || I18n.t('about.about_mastodon_html'))
 | 
						|
  end
 | 
						|
 | 
						|
  def username
 | 
						|
    { min: 1, max: 30, re: '[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?' }
 | 
						|
  end
 | 
						|
 | 
						|
  def prefill_url
 | 
						|
    params = {
 | 
						|
      provider: 'keybase',
 | 
						|
      token: '%{sig_hash}',
 | 
						|
      provider_username: '%{kb_username}',
 | 
						|
      username: '%{username}',
 | 
						|
      user_agent: '%{kb_ua}',
 | 
						|
    }
 | 
						|
 | 
						|
    CGI.unescape(new_settings_identity_proof_url(params))
 | 
						|
  end
 | 
						|
 | 
						|
  def profile_url
 | 
						|
    CGI.unescape(short_account_url('%{username}'))
 | 
						|
  end
 | 
						|
 | 
						|
  def check_url
 | 
						|
    CGI.unescape(api_proofs_url(username: '%{username}', provider: 'keybase'))
 | 
						|
  end
 | 
						|
 | 
						|
  def check_path
 | 
						|
    ['signatures']
 | 
						|
  end
 | 
						|
 | 
						|
  def avatar_path
 | 
						|
    ['avatar']
 | 
						|
  end
 | 
						|
 | 
						|
  def contact
 | 
						|
    [Setting.site_contact_email.presence || 'unknown'].compact
 | 
						|
  end
 | 
						|
end
 |