Browse Source

Bind oauth applications to users

closed-social-glitch-2
Eugen Rochko 8 years ago
parent
commit
6fec8afc3f
12 changed files with 69 additions and 3 deletions
  1. +3
    -0
      app/assets/javascripts/oauth/applications.coffee
  2. +6
    -0
      app/assets/stylesheets/dashboard.scss
  3. +3
    -0
      app/assets/stylesheets/oauth/applications.scss
  4. +18
    -0
      app/controllers/oauth/applications_controller.rb
  5. +2
    -0
      app/helpers/oauth/applications_helper.rb
  6. +2
    -0
      app/models/user.rb
  7. +1
    -1
      config/initializers/doorkeeper.rb
  8. +3
    -1
      config/routes.rb
  9. +7
    -0
      db/migrate/20160314164231_add_owner_to_application.rb
  10. +4
    -1
      db/schema.rb
  11. +5
    -0
      spec/controllers/oauth/applications_controller_spec.rb
  12. +15
    -0
      spec/helpers/oauth/applications_helper_spec.rb

+ 3
- 0
app/assets/javascripts/oauth/applications.coffee View 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/

+ 6
- 0
app/assets/stylesheets/dashboard.scss View File

@ -247,6 +247,12 @@
input[type=file] {
display: block;
}
.hint {
display: block;
margin-top: 5px;
color: lighten(#282c37, 25%);
}
}
}

+ 3
- 0
app/assets/stylesheets/oauth/applications.scss View 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
- 0
app/controllers/oauth/applications_controller.rb View 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
- 0
app/helpers/oauth/applications_helper.rb View File

@ -0,0 +1,2 @@
module Oauth::ApplicationsHelper
end

+ 2
- 0
app/models/user.rb View File

@ -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

+ 1
- 1
config/initializers/doorkeeper.rb View File

@ -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

+ 3
- 1
config/routes.rb View File

@ -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
- 0
db/migrate/20160314164231_add_owner_to_application.rb View 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

+ 4
- 1
db/schema.rb View File

@ -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
- 0
spec/controllers/oauth/applications_controller_spec.rb View File

@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe Oauth::ApplicationsController, type: :controller do
end

+ 15
- 0
spec/helpers/oauth/applications_helper_spec.rb View 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…
Cancel
Save