diaspora_federation 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +0,0 @@
1
- module DiasporaFederation
2
- ##
3
- # Base-Controller for all DiasporaFederation-Controller
4
- class ApplicationController < ActionController::Base
5
- end
6
- end
@@ -1,20 +0,0 @@
1
- require_dependency "diaspora_federation/application_controller"
2
-
3
- module DiasporaFederation
4
- ##
5
- # this controller generates the hcard
6
- class HCardController < ApplicationController
7
- ##
8
- # returns the hcard of the user
9
- #
10
- # GET /hcard/users/:guid
11
- def hcard
12
- person = DiasporaFederation.person_class.find_local_by_guid(params[:guid])
13
-
14
- return render nothing: true, status: 404 if person.nil?
15
-
16
- logger.info "hcard profile request for: #{person.diaspora_handle}"
17
- render html: WebFinger::HCard.from_profile(person.hcard_profile_hash).to_html.html_safe
18
- end
19
- end
20
- end
@@ -1,35 +0,0 @@
1
- require_dependency "diaspora_federation/application_controller"
2
-
3
- module DiasporaFederation
4
- ##
5
- # this controller processes receiving messages
6
- class ReceiveController < ApplicationController
7
- before_action :check_for_xml
8
-
9
- ##
10
- # receives public messages
11
- #
12
- # POST /receive/public
13
- def public
14
- logger.info "received a public message"
15
- logger.debug CGI.unescape(params[:xml])
16
- render nothing: true, status: :ok
17
- end
18
-
19
- ##
20
- # receives private messages for a user
21
- #
22
- # POST /receive/users/:guid
23
- def private
24
- logger.info "received a private message for #{params[:guid]}"
25
- logger.debug CGI.unescape(params[:xml])
26
- render nothing: true, status: :ok
27
- end
28
-
29
- private
30
-
31
- def check_for_xml
32
- render nothing: true, status: 422 if params[:xml].nil?
33
- end
34
- end
35
- end
@@ -1,60 +0,0 @@
1
- require_dependency "diaspora_federation/application_controller"
2
-
3
- module DiasporaFederation
4
- ##
5
- # this controller handles all webfinger-specific requests
6
- class WebfingerController < ApplicationController
7
- ##
8
- # returns the host-meta xml
9
- #
10
- # example:
11
- # <?xml version="1.0" encoding="UTF-8"?>
12
- # <XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
13
- # <Link rel="lrdd" type="application/xrd+xml" template="https://server.example/webfinger?q={uri}"/>
14
- # </XRD>
15
- #
16
- # GET /.well-known/host-meta
17
- def host_meta
18
- render body: WebfingerController.host_meta_xml, content_type: "application/xrd+xml"
19
- end
20
-
21
- ##
22
- # @deprecated this is the pre RFC 7033 webfinger
23
- #
24
- # example:
25
- # <?xml version="1.0" encoding="UTF-8"?>
26
- # <XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
27
- # <Subject>acct:alice@localhost:3000</Subject>
28
- # <Alias>http://localhost:3000/people/c8e87290f6a20132963908fbffceb188</Alias>
29
- # <Link rel="http://microformats.org/profile/hcard" type="text/html" href="http://localhost:3000/hcard/users/c8e87290f6a20132963908fbffceb188"/>
30
- # <Link rel="http://joindiaspora.com/seed_location" type="text/html" href="http://localhost:3000/"/>
31
- # <Link rel="http://joindiaspora.com/guid" type="text/html" href="c8e87290f6a20132963908fbffceb188"/>
32
- # <Link rel="http://webfinger.net/rel/profile-page" type="text/html" href="http://localhost:3000/u/alice"/>
33
- # <Link rel="http://schemas.google.com/g/2010#updates-from" type="application/atom+xml" href="http://localhost:3000/public/alice.atom"/>
34
- # <Link rel="salmon" href="http://localhost:3000/receive/users/c8e87290f6a20132963908fbffceb188"/>
35
- # <Link rel="diaspora-public-key" type="RSA" href="LS0tLS1CRU......"/>
36
- # </XRD>
37
- # GET /webfinger?q=<uri>
38
- def legacy_webfinger
39
- person = find_person(params[:q]) if params[:q]
40
-
41
- return render nothing: true, status: 404 if person.nil?
42
-
43
- logger.info "webfinger profile request for: #{person.diaspora_handle}"
44
- render body: WebFinger::WebFinger.from_person(person.webfinger_hash).to_xml, content_type: "application/xrd+xml"
45
- end
46
-
47
- private
48
-
49
- ##
50
- # creates the host-meta xml with the configured server_uri and caches it
51
- # @return [String] XML string
52
- def self.host_meta_xml
53
- @host_meta_xml ||= WebFinger::HostMeta.from_base_url(DiasporaFederation.server_uri.to_s).to_xml
54
- end
55
-
56
- def find_person(query)
57
- DiasporaFederation.person_class.find_local_by_diaspora_handle(query.strip.downcase.gsub("acct:", ""))
58
- end
59
- end
60
- end
data/config/routes.rb DELETED
@@ -1,15 +0,0 @@
1
- DiasporaFederation::Engine.routes.draw do
2
- controller :receive do
3
- post "receive-new/public" => :public, :as => "receive_public"
4
- post "receive-new/users/:guid" => :private, :as => "receive_private"
5
- end
6
-
7
- controller :webfinger do
8
- get ".well-known/host-meta" => :host_meta, :as => "host_meta"
9
- get "webfinger" => :legacy_webfinger, :as => "legacy_webfinger"
10
- end
11
-
12
- controller :h_card do
13
- get "hcard/users/:guid" => :hcard, :as => "hcard"
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- module DiasporaFederation
2
- ##
3
- # diaspora* federation rails engine
4
- class Engine < ::Rails::Engine
5
- isolate_namespace DiasporaFederation
6
-
7
- config.generators do |g|
8
- g.test_framework :rspec
9
- end
10
-
11
- config.after_initialize do
12
- DiasporaFederation.validate_config
13
- end
14
- end
15
- end