summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2014-04-04 10:42:15 -0700
committerelijah <elijah@riseup.net>2014-04-04 10:42:15 -0700
commitcb6442c344d6bdaf52c3878b2de2fcf4d85f2648 (patch)
tree2d429b5d4165f3c386be4068ffaad9ede27f292b
parentaeb5d8cf8dc6329906f14bf4595a229e002691c1 (diff)
parent85aabe832eb3eec10a29054ef5575618686eef33 (diff)
Merge branch 'bugfix/5382-rescue-token-destruction' into develop
-rw-r--r--users/app/models/token.rb8
-rw-r--r--users/test/unit/token_test.rb8
2 files changed, 15 insertions, 1 deletions
diff --git a/users/app/models/token.rb b/users/app/models/token.rb
index 001eb40..4856c31 100644
--- a/users/app/models/token.rb
+++ b/users/app/models/token.rb
@@ -40,6 +40,14 @@ class Token < CouchRest::Model::Base
end
end
+ # Tokens can be cleaned up in different ways.
+ # So let's make sure we don't crash if they disappeared
+ def destroy_with_rescue
+ destroy_without_rescue
+ rescue RestClient::ResourceNotFound
+ end
+ alias_method_chain :destroy, :rescue
+
def touch
self.last_seen_at = Time.now
save
diff --git a/users/test/unit/token_test.rb b/users/test/unit/token_test.rb
index 6c9f209..a3c6cf6 100644
--- a/users/test/unit/token_test.rb
+++ b/users/test/unit/token_test.rb
@@ -78,6 +78,12 @@ class ClientCertificateTest < ActiveSupport::TestCase
end
-
+ test "Token.destroy_all_expired does not interfere with expired.authenticate" do
+ expired = FactoryGirl.create :token, last_seen_at: 2.hours.ago
+ with_config auth: {token_expires_after: 60} do
+ Token.destroy_all_expired
+ end
+ assert_nil expired.authenticate
+ end
end