diff options
author | Azul <azul@leap.se> | 2013-08-27 14:55:43 +0200 |
---|---|---|
committer | Azul <azul@leap.se> | 2013-08-27 14:57:44 +0200 |
commit | 5e6a2a2995598489372676bf8e045dc2dfda6c81 (patch) | |
tree | 4b1d675191fededd08ad2329cb8b50e9eb74c92e /users | |
parent | 147ccec989672f9b1314aa6dcc5ce8578e841370 (diff) |
token.user will get you the right user
This way we can stub the token to return the user directly. Stubbing User.find_by_param is not a good idea as it will make all calls to User#find_by_param with a different id fail.
Diffstat (limited to 'users')
-rw-r--r-- | users/app/controllers/controller_extension/token_authentication.rb | 2 | ||||
-rw-r--r-- | users/app/models/token.rb | 4 | ||||
-rw-r--r-- | users/test/functional/test_helpers_test.rb | 2 | ||||
-rw-r--r-- | users/test/support/auth_test_helper.rb | 4 |
4 files changed, 8 insertions, 4 deletions
diff --git a/users/app/controllers/controller_extension/token_authentication.rb b/users/app/controllers/controller_extension/token_authentication.rb index 82df314..3e2816d 100644 --- a/users/app/controllers/controller_extension/token_authentication.rb +++ b/users/app/controllers/controller_extension/token_authentication.rb @@ -5,7 +5,7 @@ module ControllerExtension::TokenAuthentication authenticate_with_http_token do |token_id, options| @token = Token.find(token_id) end - User.find_by_param(@token.user_id) if @token + @token.user if @token end def logout diff --git a/users/app/models/token.rb b/users/app/models/token.rb index cc62778..514b97f 100644 --- a/users/app/models/token.rb +++ b/users/app/models/token.rb @@ -6,6 +6,10 @@ class Token < CouchRest::Model::Base validates :user_id, presence: true + def user + User.find(self.user_id) + end + def initialize(*args) super self.id = SecureRandom.urlsafe_base64(32).gsub(/^_*/, '') diff --git a/users/test/functional/test_helpers_test.rb b/users/test/functional/test_helpers_test.rb index d1bdb64..9bd01ad 100644 --- a/users/test/functional/test_helpers_test.rb +++ b/users/test/functional/test_helpers_test.rb @@ -21,7 +21,7 @@ class TestHelpersTest < ActionController::TestCase def test_login_stubs_token login assert @token - assert_equal @current_user.id, @token.user_id + assert_equal @current_user, @token.user end def test_login_adds_token_header diff --git a/users/test/support/auth_test_helper.rb b/users/test/support/auth_test_helper.rb index ab6b1ac..47147fc 100644 --- a/users/test/support/auth_test_helper.rb +++ b/users/test/support/auth_test_helper.rb @@ -13,7 +13,7 @@ module AuthTestHelper if user_or_method_hash.respond_to?(:reverse_merge) user_or_method_hash.reverse_merge! :is_admin? => false end - @current_user = find_record(:user, user_or_method_hash) + @current_user = stub_record(:user, user_or_method_hash) request.env['warden'] = stub :user => @current_user request.env['HTTP_AUTHORIZATION'] = header_for_token_auth return @current_user @@ -41,7 +41,7 @@ module AuthTestHelper protected def header_for_token_auth - @token = find_record(:token, :user_id => @current_user.id) + @token = find_record(:token, :user => @current_user) ActionController::HttpAuthentication::Token.encode_credentials @token.id end end |