Sha256: ffa580c1c391f48c0e0becd1e7ccf1039a58a0a093e3b8cd16169ea1a1e9c12c
Contents?: true
Size: 1.59 KB
Versions: 3
Compression:
Stored size: 1.59 KB
Contents
require 'addressable/uri' class CASino::ServiceTicket < ActiveRecord::Base attr_accessible :ticket, :service, :issued_from_credentials validates :ticket, uniqueness: true belongs_to :ticket_granting_ticket before_destroy :send_single_sign_out_notification, if: :consumed? has_many :proxy_granting_tickets, as: :granter, dependent: :destroy def self.cleanup_unconsumed self.delete_all(['created_at < ? AND consumed = ?', CASino.config.service_ticket[:lifetime_unconsumed].seconds.ago, false]) end def self.cleanup_consumed self.destroy_all(['(ticket_granting_ticket_id IS NULL OR created_at < ?) AND consumed = ?', CASino.config.service_ticket[:lifetime_consumed].seconds.ago, true]) end def self.cleanup_consumed_hard self.delete_all(['created_at < ? AND consumed = ?', (CASino.config.service_ticket[:lifetime_consumed].seconds * 2).ago, true]) end def service=(service) normalized_encoded_service = Addressable::URI.parse(service).normalize.to_str super(normalized_encoded_service) end def service_with_ticket_url service_uri = Addressable::URI.parse(self.service) service_uri.query_values = (service_uri.query_values(Array) || []) << ['ticket', self.ticket] service_uri.to_s end def expired? lifetime = if consumed? CASino.config.service_ticket[:lifetime_consumed] else CASino.config.service_ticket[:lifetime_unconsumed] end (Time.now - (self.created_at || Time.now)) > lifetime end private def send_single_sign_out_notification notifier = SingleSignOutNotifier.new(self) notifier.notify true end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
casino-2.0.7 | app/models/casino/service_ticket.rb |
casino-2.0.6 | app/models/casino/service_ticket.rb |
casino-2.0.5 | app/models/casino/service_ticket.rb |