Browse Source

Fixed that rss key is generated twice when user is not reloaded (#10668).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9419 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/2.0.0
Jean-Philippe Lang 12 years ago
parent
commit
24c361eb0a
2 changed files with 24 additions and 4 deletions
  1. 8
    4
      app/models/user.rb
  2. 16
    0
      test/unit/user_test.rb

+ 8
- 4
app/models/user.rb View File

@@ -284,14 +284,18 @@ class User < Principal

# Return user's RSS key (a 40 chars long string), used to access feeds
def rss_key
token = self.rss_token || Token.create(:user => self, :action => 'feeds')
token.value
if rss_token.nil?
create_rss_token(:action => 'feeds')
end
rss_token.value
end

# Return user's API key (a 40 chars long string), used to access the API
def api_key
token = self.api_token || self.create_api_token(:action => 'api')
token.value
if api_token.nil?
create_api_token(:action => 'api')
end
api_token.value
end

# Return an array of project ids for which the user has explicitly turned mail notifications on

+ 16
- 0
test/unit/user_test.rb View File

@@ -585,6 +585,22 @@ class UserTest < ActiveSupport::TestCase
assert_equal key, @jsmith.rss_key
end

def test_rss_key_should_not_be_generated_twice
assert_difference 'Token.count', 1 do
key1 = @jsmith.rss_key
key2 = @jsmith.rss_key
assert_equal key1, key2
end
end

def test_api_key_should_not_be_generated_twice
assert_difference 'Token.count', 1 do
key1 = @jsmith.api_key
key2 = @jsmith.api_key
assert_equal key1, key2
end
end

context "User#api_key" do
should "generate a new one if the user doesn't have one" do
user = User.generate_with_protected!(:api_token => nil)

Loading…
Cancel
Save