Module: AuthlogicConnect::Common::User::InstanceMethods
- Defined in:
- lib/authlogic_connect/common/user.rb
Class Method Summary collapse
Instance Method Summary collapse
- #authenticated_with ⇒ Object
- #authenticated_with?(service) ⇒ Boolean
- #get_token(service_name) ⇒ Object
- #has_token?(service_name) ⇒ Boolean
-
#save(options = {}, &block) ⇒ Object
core save method coordinating how to save the user.
- #update_attributes(attributes, &block) ⇒ Object
Class Method Details
.included(base) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/authlogic_connect/common/user.rb', line 15 def self.included(base) base.class_eval do has_many :access_tokens, :class_name => "AccessToken", :dependent => :destroy belongs_to :active_token, :class_name => "AccessToken", :dependent => :destroy accepts_nested_attributes_for :access_tokens, :active_token end end |
Instance Method Details
#authenticated_with ⇒ Object
23 24 25 |
# File 'lib/authlogic_connect/common/user.rb', line 23 def authenticated_with @authenticated_with ||= self.access_tokens.collect{|t| t.service_name.to_s} end |
#authenticated_with?(service) ⇒ Boolean
27 28 29 |
# File 'lib/authlogic_connect/common/user.rb', line 27 def authenticated_with?(service) self.access_tokens.detect{|t| t.service_name.to_s == service.to_s} end |
#get_token(service_name) ⇒ Object
40 41 42 |
# File 'lib/authlogic_connect/common/user.rb', line 40 def get_token(service_name) self.access_tokens.detect {|i| i.service_name.to_s == service_name.to_s} end |
#has_token?(service_name) ⇒ Boolean
36 37 38 |
# File 'lib/authlogic_connect/common/user.rb', line 36 def has_token?(service_name) !get_token(service_name).nil? end |
#save(options = {}, &block) ⇒ Object
core save method coordinating how to save the user. we dont’ want to ru validations based on the authentication mission we are trying to accomplish. instead, we just return save as false. the next time around, when we recieve the callback, we will run the validations. when you call ‘current_user_session’ in ApplicationController, it leads to calling ‘save’ on this User object via “session.record.save”, from the ‘persisting?’ method. So we don’t want any of this to occur when that save is called, and the only way to check currently is to check if there is a block_given?
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/authlogic_connect/common/user.rb', line 55 def save( = {}, &block) self.errors.clear # log_state = {} if == false [:validate] = true unless .has_key?(:validate) = ActiveRecord::VERSION::MAJOR < 3 ? [:validate] : # kill the block if we're starting authentication authenticate_via_protocol(block_given?, ) do |start_authentication| block = nil if start_authentication # redirecting # forces you to validate, only if a block is given result = super() # validate! unless block.nil? cleanup_authentication_session() yield(result) end result end end |
#update_attributes(attributes, &block) ⇒ Object
31 32 33 34 |
# File 'lib/authlogic_connect/common/user.rb', line 31 def update_attributes(attributes, &block) self.attributes = attributes save(:validate => true, &block) end |