comparison .svn/pristine/38/38d3fc6a695b34cdb3895e43b2a6149999c95fa1.svn-base @ 909:cbb26bc654de redmine-1.3

Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author Chris Cannam
date Fri, 24 Feb 2012 19:09:32 +0000
parents
children
comparison
equal deleted inserted replaced
908:c6c2cbd0afee 909:cbb26bc654de
1 require 'openid/store/interface'
2
3 module OpenIdAuthentication
4 class DbStore < OpenID::Store::Interface
5 def self.cleanup_nonces
6 now = Time.now.to_i
7 Nonce.delete_all(["timestamp > ? OR timestamp < ?", now + OpenID::Nonce.skew, now - OpenID::Nonce.skew])
8 end
9
10 def self.cleanup_associations
11 now = Time.now.to_i
12 Association.delete_all(['issued + lifetime > ?',now])
13 end
14
15 def store_association(server_url, assoc)
16 remove_association(server_url, assoc.handle)
17 Association.create(:server_url => server_url,
18 :handle => assoc.handle,
19 :secret => assoc.secret,
20 :issued => assoc.issued,
21 :lifetime => assoc.lifetime,
22 :assoc_type => assoc.assoc_type)
23 end
24
25 def get_association(server_url, handle = nil)
26 assocs = if handle.blank?
27 Association.find_all_by_server_url(server_url)
28 else
29 Association.find_all_by_server_url_and_handle(server_url, handle)
30 end
31
32 assocs.reverse.each do |assoc|
33 a = assoc.from_record
34 if a.expires_in == 0
35 assoc.destroy
36 else
37 return a
38 end
39 end if assocs.any?
40
41 return nil
42 end
43
44 def remove_association(server_url, handle)
45 Association.delete_all(['server_url = ? AND handle = ?', server_url, handle]) > 0
46 end
47
48 def use_nonce(server_url, timestamp, salt)
49 return false if Nonce.find_by_server_url_and_timestamp_and_salt(server_url, timestamp, salt)
50 return false if (timestamp - Time.now.to_i).abs > OpenID::Nonce.skew
51 Nonce.create(:server_url => server_url, :timestamp => timestamp, :salt => salt)
52 return true
53 end
54 end
55 end