mirror of
https://github.com/mastodon/mastodon.git
synced 2024-11-28 16:07:51 +00:00
Bind oauth applications to users
This commit is contained in:
parent
25d7c1b6ea
commit
6fec8afc3f
3
app/assets/javascripts/oauth/applications.coffee
Normal file
3
app/assets/javascripts/oauth/applications.coffee
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Place all the behaviors and hooks related to the matching controller here.
|
||||||
|
# All this logic will automatically be available in application.js.
|
||||||
|
# You can use CoffeeScript in this file: http://coffeescript.org/
|
|
@ -247,6 +247,12 @@
|
||||||
input[type=file] {
|
input[type=file] {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hint {
|
||||||
|
display: block;
|
||||||
|
margin-top: 5px;
|
||||||
|
color: lighten(#282c37, 25%);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
3
app/assets/stylesheets/oauth/applications.scss
Normal file
3
app/assets/stylesheets/oauth/applications.scss
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
// Place all the styles related to the oauth::applications controller here.
|
||||||
|
// They will automatically be included in application.css.
|
||||||
|
// You can use Sass (SCSS) here: http://sass-lang.com/
|
18
app/controllers/oauth/applications_controller.rb
Normal file
18
app/controllers/oauth/applications_controller.rb
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
class Oauth::ApplicationsController < Doorkeeper::ApplicationsController
|
||||||
|
before_filter :authenticate_user!
|
||||||
|
|
||||||
|
def index
|
||||||
|
@applications = current_user.oauth_applications
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
@application = Doorkeeper::Application.new(application_params)
|
||||||
|
@application.owner = current_user
|
||||||
|
|
||||||
|
if @application.save
|
||||||
|
redirect_to oauth_application_url(@application)
|
||||||
|
else
|
||||||
|
render :new
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
2
app/helpers/oauth/applications_helper.rb
Normal file
2
app/helpers/oauth/applications_helper.rb
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
module Oauth::ApplicationsHelper
|
||||||
|
end
|
|
@ -5,4 +5,6 @@ class User < ActiveRecord::Base
|
||||||
accepts_nested_attributes_for :account
|
accepts_nested_attributes_for :account
|
||||||
|
|
||||||
validates :account, presence: true
|
validates :account, presence: true
|
||||||
|
|
||||||
|
has_many :oauth_applications, class_name: 'Doorkeeper::Application', as: :owner
|
||||||
end
|
end
|
||||||
|
|
|
@ -45,7 +45,7 @@ Doorkeeper.configure do
|
||||||
# Optional parameter :confirmation => true (default false) if you want to enforce ownership of
|
# Optional parameter :confirmation => true (default false) if you want to enforce ownership of
|
||||||
# a registered application
|
# a registered application
|
||||||
# Note: you must also run the rails g doorkeeper:application_owner generator to provide the necessary support
|
# Note: you must also run the rails g doorkeeper:application_owner generator to provide the necessary support
|
||||||
# enable_application_owner :confirmation => false
|
enable_application_owner :confirmation => true
|
||||||
|
|
||||||
# Define access token scopes for your provider
|
# Define access token scopes for your provider
|
||||||
# For more information go to
|
# For more information go to
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
use_doorkeeper
|
use_doorkeeper do
|
||||||
|
controllers applications: 'oauth/applications'
|
||||||
|
end
|
||||||
|
|
||||||
get '.well-known/host-meta', to: 'xrd#host_meta', as: :host_meta
|
get '.well-known/host-meta', to: 'xrd#host_meta', as: :host_meta
|
||||||
get '.well-known/webfinger', to: 'xrd#webfinger', as: :webfinger
|
get '.well-known/webfinger', to: 'xrd#webfinger', as: :webfinger
|
||||||
|
|
7
db/migrate/20160314164231_add_owner_to_application.rb
Normal file
7
db/migrate/20160314164231_add_owner_to_application.rb
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
class AddOwnerToApplication < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :oauth_applications, :owner_id, :integer, null: true
|
||||||
|
add_column :oauth_applications, :owner_type, :string, null: true
|
||||||
|
add_index :oauth_applications, [:owner_id, :owner_type]
|
||||||
|
end
|
||||||
|
end
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20160312193225) do
|
ActiveRecord::Schema.define(version: 20160314164231) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -107,8 +107,11 @@ ActiveRecord::Schema.define(version: 20160312193225) do
|
||||||
t.string "scopes", default: "", null: false
|
t.string "scopes", default: "", null: false
|
||||||
t.datetime "created_at"
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
|
t.integer "owner_id"
|
||||||
|
t.string "owner_type"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
add_index "oauth_applications", ["owner_id", "owner_type"], name: "index_oauth_applications_on_owner_id_and_owner_type", using: :btree
|
||||||
add_index "oauth_applications", ["uid"], name: "index_oauth_applications_on_uid", unique: true, using: :btree
|
add_index "oauth_applications", ["uid"], name: "index_oauth_applications_on_uid", unique: true, using: :btree
|
||||||
|
|
||||||
create_table "statuses", force: :cascade do |t|
|
create_table "statuses", force: :cascade do |t|
|
||||||
|
|
5
spec/controllers/oauth/applications_controller_spec.rb
Normal file
5
spec/controllers/oauth/applications_controller_spec.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe Oauth::ApplicationsController, type: :controller do
|
||||||
|
|
||||||
|
end
|
15
spec/helpers/oauth/applications_helper_spec.rb
Normal file
15
spec/helpers/oauth/applications_helper_spec.rb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
# Specs in this file have access to a helper object that includes
|
||||||
|
# the Oauth::ApplicationsHelper. For example:
|
||||||
|
#
|
||||||
|
# describe Oauth::ApplicationsHelper do
|
||||||
|
# describe "string concat" do
|
||||||
|
# it "concats two strings with spaces" do
|
||||||
|
# expect(helper.concat_strings("this","that")).to eq("this that")
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
RSpec.describe Oauth::ApplicationsHelper, type: :helper do
|
||||||
|
pending "add some examples to (or delete) #{__FILE__}"
|
||||||
|
end
|
Loading…
Reference in a new issue