From 3b4e04dc32eba0f5b1ac11e2db2edd7ca7351291 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 5 Mar 2016 12:50:59 +0100 Subject: Fixing some bugs, adding pending test examples --- app/controllers/accounts_controller.rb | 9 +++++++++ app/controllers/api/salmon_controller.rb | 2 +- app/controllers/api/subscriptions_controller.rb | 2 +- app/controllers/api_controller.rb | 3 +++ app/views/accounts/show.atom.ruby | 2 +- app/views/xrd/webfinger.xml.ruby | 2 +- 6 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 app/controllers/api_controller.rb (limited to 'app') diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index e96ef4a1c..2848ea62e 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -1,5 +1,6 @@ class AccountsController < ApplicationController before_action :set_account + before_action :set_webfinger_header def show respond_to do |format| @@ -13,4 +14,12 @@ class AccountsController < ApplicationController def set_account @account = Account.find_by!(username: params[:username], domain: nil) end + + def set_webfinger_header + response.headers['Link'] = "<#{webfinger_account_url}>; rel=\"lrdd\"; type=\"application/xrd+xml\"" + end + + def webfinger_account_url + webfinger_url(resource: "acct:#{@account.acct}@#{Rails.configuration.x.local_domain}") + end end diff --git a/app/controllers/api/salmon_controller.rb b/app/controllers/api/salmon_controller.rb index 99ec15bff..1df989700 100644 --- a/app/controllers/api/salmon_controller.rb +++ b/app/controllers/api/salmon_controller.rb @@ -1,4 +1,4 @@ -class Api::SalmonController < ApplicationController +class Api::SalmonController < ApiController before_action :set_account def update diff --git a/app/controllers/api/subscriptions_controller.rb b/app/controllers/api/subscriptions_controller.rb index 56deae10c..038d6c877 100644 --- a/app/controllers/api/subscriptions_controller.rb +++ b/app/controllers/api/subscriptions_controller.rb @@ -1,4 +1,4 @@ -class Api::SubscriptionsController < ApplicationController +class Api::SubscriptionsController < ApiController before_action :set_account def show diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb new file mode 100644 index 000000000..eb2e464eb --- /dev/null +++ b/app/controllers/api_controller.rb @@ -0,0 +1,3 @@ +class ApiController < ApplicationController + protect_from_forgery with: :null_session +end diff --git a/app/views/accounts/show.atom.ruby b/app/views/accounts/show.atom.ruby index 54f1185e4..eaa4c63b1 100644 --- a/app/views/accounts/show.atom.ruby +++ b/app/views/accounts/show.atom.ruby @@ -4,7 +4,7 @@ Nokogiri::XML::Builder.new do |xml| title xml, @account.display_name subtitle xml, @account.note updated_at xml, stream_updated_at - logo xml, asset_url(@account.avatar.url(:medium)) + logo xml, asset_url(@account.avatar.url(:medium, false)) author(xml) do include_author xml, @account diff --git a/app/views/xrd/webfinger.xml.ruby b/app/views/xrd/webfinger.xml.ruby index ac0fd3d0e..7c920b678 100644 --- a/app/views/xrd/webfinger.xml.ruby +++ b/app/views/xrd/webfinger.xml.ruby @@ -3,7 +3,7 @@ Nokogiri::XML::Builder.new do |xml| xml.Subject @canonical_account_uri xml.Alias url_for_target(@account) xml.Link(rel: 'http://webfinger.net/rel/profile-page', type: 'text/html', href: url_for_target(@account)) - xml.Link(rel: 'http://schemas.google.com/g/2010#updates-from', type: 'application/atom+xml', href: atom_user_stream_url(id: @account.id)) + xml.Link(rel: 'http://schemas.google.com/g/2010#updates-from', type: 'application/atom+xml', href: account_url(@account, format: 'atom')) xml.Link(rel: 'salmon', href: api_salmon_url(@account.id)) xml.Link(rel: 'magic-public-key', href: @magic_key) end -- cgit