Sha256: 999110fefbdf831a55e5fa96b6df74d283f9cf4e8382cb24cf062aa782c2d01b

Contents?: true

Size: 1.34 KB

Versions: 2

Compression:

Stored size: 1.34 KB

Contents

module Socialite
  module Models
    module User
      extend ActiveSupport::Concern

      included do
        has_many :identities, :dependent => :destroy

        # has_one :facebook_identity,
        #   :class_name => 'Identity', :foreign_key => 'user_id', :conditions => { :provider => 'facebook' }
        # has_one :twitter_identity,
        #   :class_name => 'Identity', :foreign_key => 'user_id', :conditions => { :provider => 'twitter' }
      end

      module InstanceMethods
        # Returns the first linked facebook identity
        #
        # @return [FacebookIdentity] the first facebook identity
        def facebook
          self.facebook_identity.api
        end

        # Returns the first linked twitter account
        #
        # @return [TwitterIdentity] the first twitter identity
        def twitter
          self.twitter_identity.api
        end

        # Set the user's remember token
        #
        # @return [User] the current user
        def remember_me!
          self.remember_token = Socialite.generate_token
          save(:validate => false)
        end

        # Clear the user's remember token
        #
        # @return [User] the current user
        def forget_me!
          if persisted?
            self.remember_token = nil
            save(:validate => false)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
socialite-0.0.1.beta4 lib/socialite/models/user.rb
socialite-0.0.1.beta2 lib/socialite/models/user.rb