Bind oauth applications to users
This commit is contained in:
		
							
								
								
									
										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] { | ||||
|       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 | ||||
|  | ||||
|   validates :account, presence: true | ||||
|  | ||||
|   has_many :oauth_applications, class_name: 'Doorkeeper::Application', as: :owner | ||||
| end | ||||
|   | ||||
| @@ -45,7 +45,7 @@ Doorkeeper.configure do | ||||
|   # Optional parameter :confirmation => true (default false) if you want to enforce ownership of | ||||
|   # a registered application | ||||
|   # 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 | ||||
|   # For more information go to | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| 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/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. | ||||
|  | ||||
| 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 | ||||
|   enable_extension "plpgsql" | ||||
| @@ -107,8 +107,11 @@ ActiveRecord::Schema.define(version: 20160312193225) do | ||||
|     t.string   "scopes",       default: "", null: false | ||||
|     t.datetime "created_at" | ||||
|     t.datetime "updated_at" | ||||
|     t.integer  "owner_id" | ||||
|     t.string   "owner_type" | ||||
|   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 | ||||
|  | ||||
|   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 | ||||
		Reference in New Issue
	
	Block a user