added a couple of validations on the Oauth models, added an index on a user's authorizations
This commit is contained in:
parent
75a1012c1c
commit
c09fb776fb
5 changed files with 37 additions and 2 deletions
|
|
@ -0,0 +1,4 @@
|
||||||
|
class OAuth2::Provider::Models::ActiveRecord::Authorization
|
||||||
|
validates_presence_of :resource_owner_id, :resource_owner_type
|
||||||
|
validates_uniqueness_of [:resource_owner_id, :resource_owner_type] , :scope => :client_id
|
||||||
|
end
|
||||||
|
|
@ -32,9 +32,13 @@ class AddOauth2Tables < ActiveRecord::Migration
|
||||||
t.datetime 'created_at'
|
t.datetime 'created_at'
|
||||||
t.datetime 'updated_at'
|
t.datetime 'updated_at'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
add_index "oauth_authorizations", ["resource_owner_id", "resource_owner_type", "client_id"], :unque => true, :name => "index_oauth_authorizations_on_resource_owner_and_client_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.down
|
def self.down
|
||||||
|
remove_index "oauth_authorizations", ["resource_owner_id", "resource_owner_type", "client_id"]
|
||||||
|
|
||||||
drop_table 'oauth_access_tokens'
|
drop_table 'oauth_access_tokens'
|
||||||
drop_table 'oauth_authorizations'
|
drop_table 'oauth_authorizations'
|
||||||
drop_table 'oauth_authorization_codes'
|
drop_table 'oauth_authorization_codes'
|
||||||
|
|
|
||||||
|
|
@ -221,6 +221,8 @@ ActiveRecord::Schema.define(:version => 20110614005205) do
|
||||||
t.datetime "expires_at"
|
t.datetime "expires_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
add_index "oauth_authorizations", ["resource_owner_id", "resource_owner_type", "client_id"], :name => "index_oauth_authorizations_on_resource_owner_and_client_id"
|
||||||
|
|
||||||
create_table "oauth_clients", :force => true do |t|
|
create_table "oauth_clients", :force => true do |t|
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.string "oauth_identifier", :limit => 32, :null => false
|
t.string "oauth_identifier", :limit => 32, :null => false
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||||
|
# licensed under the Affero General Public License version 3 or later. See
|
||||||
|
# the COPYRIGHT file.
|
||||||
|
#
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe OAuth2::Provider::Models::ActiveRecord::Authorization do
|
||||||
|
describe 'validations'do
|
||||||
|
before do
|
||||||
|
@client = OAuth2::Provider::Models::ActiveRecord::Client.create!(:name => "APP!!!")
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'validates uniqueness on resource owner and client' do
|
||||||
|
OAuth2::Provider::Models::ActiveRecord::Authorization.create!(:client => @client, :resource_owner => alice)
|
||||||
|
OAuth2::Provider::Models::ActiveRecord::Authorization.new(:client => @client, :resource_owner => alice).valid?.should be_false
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'requires a resource owner for an authorization' do
|
||||||
|
OAuth2::Provider::Models::ActiveRecord::Authorization.new(:client => @client).valid?.should be_false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
@ -5,9 +5,11 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe OAuth2::Provider::Models::ActiveRecord::Client do
|
describe OAuth2::Provider::Models::ActiveRecord::Client do
|
||||||
#TODO
|
|
||||||
describe 'validations'do
|
describe 'validations'do
|
||||||
it 'is pending for now'
|
it 'validates uniqueness on identifier' do
|
||||||
|
OAuth2::Provider::Models::ActiveRecord::Client.create(:oauth_identifier => "three")
|
||||||
|
OAuth2::Provider::Models::ActiveRecord::Client.new(:oauth_identifier => "three").valid?.should be_false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue