Sha256: 1c24f5652b491e06245ca701e376d6eb7beae84b571e76ddcaab4809d88986e4

Contents?: true

Size: 1.74 KB

Versions: 63

Compression:

Stored size: 1.74 KB

Contents

require 'openid/store/interface'

module OpenIdAuthentication
  class DbStore < OpenID::Store::Interface
    def self.cleanup_nonces
      now = Time.now.to_i
      Nonce.delete_all(["timestamp > ? OR timestamp < ?", now + OpenID::Nonce.skew, now - OpenID::Nonce.skew])
    end

    def self.cleanup_associations
      now = Time.now.to_i
      Association.delete_all(['issued + lifetime > ?',now])
    end

    def store_association(server_url, assoc)
      remove_association(server_url, assoc.handle)
      Association.create(:server_url => server_url,
                         :handle     => assoc.handle,
                         :secret     => assoc.secret,
                         :issued     => assoc.issued,
                         :lifetime   => assoc.lifetime,
                         :assoc_type => assoc.assoc_type)
    end

    def get_association(server_url, handle = nil)
      assocs = if handle.blank?
          Association.find_all_by_server_url(server_url)
        else
          Association.find_all_by_server_url_and_handle(server_url, handle)
        end

      assocs.reverse.each do |assoc|
        a = assoc.from_record
        if a.expires_in == 0
          assoc.destroy
        else
          return a
        end
      end if assocs.any?

      return nil
    end

    def remove_association(server_url, handle)
      Association.delete_all(['server_url = ? AND handle = ?', server_url, handle]) > 0
    end

    def use_nonce(server_url, timestamp, salt)
      return false if Nonce.find_by_server_url_and_timestamp_and_salt(server_url, timestamp, salt)
      return false if (timestamp - Time.now.to_i).abs > OpenID::Nonce.skew
      Nonce.create(:server_url => server_url, :timestamp => timestamp, :salt => salt)
      return true
    end
  end
end

Version data entries

63 entries across 63 versions & 10 rubygems

Version Path
redmine_extensions-0.0.39 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.0.38 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.0.37 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.1.11 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.1.10 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.0.36 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.0.34 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.1.09 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.1.07 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.1.06 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.1.05 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.1.04 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.1.03 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.0.33 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.1.02 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.1.01 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.0.29 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.0.28 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.0.27 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb
redmine_extensions-0.0.24 spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb