Bind oauth applications to users
This commit is contained in:
		
							parent
							
								
									25d7c1b6ea
								
							
						
					
					
						commit
						6fec8afc3f
					
				|  | @ -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%); | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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/ | ||||||
|  | @ -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 | ||||||
|  | @ -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 | ||||||
|  |  | ||||||
|  | @ -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| | ||||||
|  |  | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | require 'rails_helper' | ||||||
|  | 
 | ||||||
|  | RSpec.describe Oauth::ApplicationsController, type: :controller do | ||||||
|  | 
 | ||||||
|  | end | ||||||
|  | @ -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 New Issue