Skip to content

Commit

Permalink
Move the mixins to separate gem
Browse files Browse the repository at this point in the history
  • Loading branch information
vovadevcode committed Jan 18, 2017
1 parent b8e38d9 commit d7099df
Show file tree
Hide file tree
Showing 17 changed files with 19 additions and 252 deletions.
6 changes: 0 additions & 6 deletions .travis.yml
Expand Up @@ -21,11 +21,5 @@ matrix:
- rvm: ruby-head
include:
- rvm: 2.2.6
gemfile: gemfiles/nobrainer.rb
env: ORM=nobrainer
- rvm: 2.3.3
gemfile: gemfiles/nobrainer.rb
env: ORM=nobrainer
- rvm: ruby-head
gemfile: gemfiles/nobrainer.rb
env: ORM=nobrainer
1 change: 1 addition & 0 deletions Gemfile
Expand Up @@ -6,6 +6,7 @@ gem 'rack-oauth2'

group :test do
gem 'nobrainer'
gem 'nobrainer_simple_oauth2'

gem 'coveralls', require: false
gem 'ffaker'
Expand Down
15 changes: 0 additions & 15 deletions gemfiles/nobrainer.rb

This file was deleted.

7 changes: 0 additions & 7 deletions lib/simple_oauth2.rb
Expand Up @@ -7,13 +7,6 @@
require 'simple_oauth2/uniq_token'
require 'simple_oauth2/resource/bearer'

# Mixins
if defined?(NoBrainer::Document)
require 'simple_oauth2/mixins/nobrainer/access_token'
require 'simple_oauth2/mixins/nobrainer/access_grant'
require 'simple_oauth2/mixins/nobrainer/client'
end

# Authorization Grants aka Flows (Strategies)
require 'simple_oauth2/strategies/base'
require 'simple_oauth2/strategies/password'
Expand Down
2 changes: 1 addition & 1 deletion lib/simple_oauth2/configuration.rb
Expand Up @@ -113,7 +113,7 @@ def on_refresh(&block)
# Validates token value passed with the request params
def default_token_authenticator
lambda do |request|
access_token_class.authenticate(request.access_token) || request.invalid_token!
access_token_class.by_token(request.access_token) || request.invalid_token!
end
end

Expand Down
2 changes: 1 addition & 1 deletion lib/simple_oauth2/generators/token.rb
Expand Up @@ -28,7 +28,7 @@ def generate_for(env, &_block)
# @return [Response] with HTTP status code 200
#
def revoke(token, env)
access_token = config.access_token_class.authenticate(token, 'refresh_token')
access_token = config.access_token_class.by_refresh_token(token)

if access_token
request = Rack::OAuth2::Server::Token::Request.new(env)
Expand Down
62 changes: 0 additions & 62 deletions lib/simple_oauth2/mixins/nobrainer/access_grant.rb

This file was deleted.

98 changes: 0 additions & 98 deletions lib/simple_oauth2/mixins/nobrainer/access_token.rb

This file was deleted.

43 changes: 0 additions & 43 deletions lib/simple_oauth2/mixins/nobrainer/client.rb

This file was deleted.

4 changes: 2 additions & 2 deletions lib/simple_oauth2/strategies/base.rb
Expand Up @@ -8,7 +8,7 @@ class Base
class << self
# Authenticates Client from the request
def authenticate_client(request)
config.client_class.authenticate(request.client_id)
config.client_class.by_key(request.client_id)
end

# Authenticates Resource Owner from the request
Expand All @@ -22,7 +22,7 @@ def authenticate_resource_owner(client, request)

# Authenticates Access Grant from the request
def authenticate_access_grant(request)
config.access_grant_class.authenticate(request.code)
config.access_grant_class.by_token(request.code)
end

# Exposes token object to Bearer token.
Expand Down
2 changes: 1 addition & 1 deletion lib/simple_oauth2/strategies/refresh_token.rb
Expand Up @@ -22,7 +22,7 @@ def process(request)

# Check refresh token and client id for exact matching verifier
def verify_refresh_token!(request, client_id)
refresh_token = config.access_token_class.authenticate(request.refresh_token, 'refresh_token')
refresh_token = config.access_token_class.by_refresh_token(request.refresh_token)
refresh_token || request.invalid_grant!
refresh_token.client_id == client_id || request.unauthorized_client!

Expand Down
12 changes: 8 additions & 4 deletions spec/configuration/config_spec.rb
Expand Up @@ -4,15 +4,19 @@
let(:config) { described_class.new }

class CustomClient
def self.authenticate(_key, _secret = nil)
def self.by_key(_key)
'Test'
end
end

class CustomAccessToken
def self.create_for(_client, _resource_owner, _scopes = nil); end

def self.authenticate(_token, _type = nil)
def self.by_token(_token)
'Test'
end

def self.by_refresh_token(_refresh_token)
'Test'
end

Expand Down Expand Up @@ -105,11 +109,11 @@ def self.generate(options = {})
end

context 'works with custom Access Token class' do
it { expect(config.access_token_class.authenticate('')).to eq('Test') }
it { expect(config.access_token_class.by_token('')).to eq('Test') }
end

context 'works with custom Client class' do
it { expect(config.client_class.authenticate('')).to eq('Test') }
it { expect(config.client_class.by_key('')).to eq('Test') }
end

context 'works with custom Resource Owner class' do
Expand Down
2 changes: 1 addition & 1 deletion spec/dummy/orm/nobrainer/app/models/access_grant.rb
@@ -1,3 +1,3 @@
class AccessGrant
include Simple::OAuth2::NoBrainer::AccessGrant
include NoBrainer::Simple::OAuth2::AccessGrant
end
2 changes: 1 addition & 1 deletion spec/dummy/orm/nobrainer/app/models/access_token.rb
@@ -1,3 +1,3 @@
class AccessToken
include Simple::OAuth2::NoBrainer::AccessToken
include NoBrainer::Simple::OAuth2::AccessToken
end
2 changes: 1 addition & 1 deletion spec/dummy/orm/nobrainer/app/models/client.rb
@@ -1,3 +1,3 @@
class Client
include Simple::OAuth2::NoBrainer::Client
include NoBrainer::Simple::OAuth2::Client
end
10 changes: 1 addition & 9 deletions spec/dummy/orm/nobrainer/app/models/user.rb
@@ -1,11 +1,3 @@
class User
include NoBrainer::Document

field :username, type: String, index: true
field :encrypted_password, type: String

def self.oauth_authenticate(_client, username, password)
user = where(username: username.to_s).first
user if user && user.encrypted_password == password
end
include NoBrainer::Simple::OAuth2::ResourceOwner
end
1 change: 1 addition & 0 deletions spec/spec_helper.rb
Expand Up @@ -22,6 +22,7 @@

require 'rack/test'
require 'ffaker'
require 'nobrainer_simple_oauth2'
require ORM_GEMS_MAPPING[ENV['ORM']]
require File.expand_path("../dummy/orm/#{ENV['ORM']}/app/twitter", __FILE__)

Expand Down

0 comments on commit d7099df

Please sign in to comment.