socialite 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9183be23cee6d3488f4064fee7d672462b955f67
4
- data.tar.gz: 2487fa8e72fc528189901413eea4849563c75a04
3
+ metadata.gz: 3275c3e27a9e95ff0ffbd84c38f07a7aee8bf25a
4
+ data.tar.gz: 3f864084506cb23c83307f7498bd96f3e3352a11
5
5
  SHA512:
6
- metadata.gz: f0ba7e15cd0e118625828f20a2e0dc8cd0d39c5c578b7d78cf29b3c4a4ce7b4cb46d53abc2df86b182a02912cecf26d005618be8141465e592f583d2c19d7600
7
- data.tar.gz: 45107eefe98283c7d83c36882170297113b61fab78e68662a5ab404addc71b767e30f1142417f874fbbf9fe591b6d504d9465ffbc30aad0596bb0b786cb60177
6
+ metadata.gz: 86522bb1b1a0e88a86260f342f9aeec27f02b24f1f8c1e59df1ba2d8edf6d5ab52b3f1c09da29e3dd02652d2e0aaf4ee7c4bfef1b23cfa05e26db7b4173058fb
7
+ data.tar.gz: e8ab714ae92361693257042d78ee4e997d4847d2e9662e3a50928aaeeb40f3222f389045bcc7ca45938c1d9025d542b7fe1fad852541a239a41bfd3c868fca60
@@ -0,0 +1,106 @@
1
+ module Socialite
2
+ module IdentityConcern
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ belongs_to :user,
7
+ :class_name => Socialite.user_class_name,
8
+ :foreign_key => "#{Socialite.user_class.table_name.singularize}_id"
9
+ serialize :auth_hash
10
+
11
+ # Ensure that before validation happens that the provider
12
+ # database column matches what is inside of the auth_hash
13
+ # dataset.
14
+ before_validation do |identity|
15
+ if identity.auth_hash.present?
16
+ identity.provider = identity.auth_hash.delete('provider') if identity.provider.blank?
17
+ identity.uid = identity.auth_hash.delete('uid') if identity.uid.blank?
18
+ end
19
+ end
20
+
21
+ # Ensure each user has only a single identity per provider type
22
+ validates :provider,
23
+ :uniqueness => {
24
+ :scope => "#{Socialite.user_class.table_name.singularize}_id",
25
+ :case_sensitive => false
26
+ },
27
+ :presence => true
28
+
29
+ # Ensure an identity is never reused by another account
30
+ validates :uid,
31
+ :uniqueness => {:scope => :provider},
32
+ :presence => true
33
+
34
+ # Ensure an associated user exists before creating the identity
35
+ # validates_associated :user
36
+ end
37
+
38
+ module ClassMethods
39
+ # Finder method that finds the matching Provider and Unique ID or
40
+ # initializes a new, unsaved, object.
41
+ #
42
+ # @params [Hash] the OAuth authentication hash
43
+ # @returns [Identity]
44
+ def create_from_omniauth(auth={})
45
+ create do |identity|
46
+ identity.provider = auth['provider']
47
+ identity.uid = auth['uid']
48
+ identity.auth_hash = auth
49
+ end
50
+ end
51
+
52
+ def find_or_create_from_omniauth(auth)
53
+ raise ArgumentError, 'auth parameter must be a hash' unless auth.is_a?(Hash)
54
+ find_from_omniauth(auth) || create_from_omniauth(auth)
55
+ end
56
+
57
+ # Finder method that finds the matching Provider and UID.
58
+ #
59
+ # @params [Hash] the OmniAuth authentication hash
60
+ def find_from_omniauth(auth={})
61
+ where(:provider => auth['provider'], :uid => auth['uid']).first
62
+ end
63
+ end
64
+
65
+ # Convenience method for accessing the OAuth access token
66
+ #
67
+ # @returns [String] OAuth access token
68
+ # (see #credentials)
69
+ def access_token
70
+ credentials['token']
71
+ end
72
+
73
+ # Convenience method for accessing the OAuth access token secret
74
+ #
75
+ # @returns [String] OAuth access token secret
76
+ # (see #credentials)
77
+ def access_token_secret
78
+ credentials['secret']
79
+ end
80
+
81
+ # Convenience method for accessing the OAuth credentials sub-hash
82
+ #
83
+ # @returns [Hash] OAuth credentials sub-hash
84
+ # (see #access_token)
85
+ # (see #access_token_secret)
86
+ def credentials
87
+ auth_hash['credentials']
88
+ end
89
+
90
+ # Convenience method for accessing the nickname, which is typically
91
+ # set to the login name used for that provider.
92
+ #
93
+ # @returns [String] user nickname for the provider identity
94
+ def nickname
95
+ info['nickname']
96
+ end
97
+
98
+ # Convenience method for accessing the user information from the
99
+ # OAuth provider.
100
+ #
101
+ # @returns [Hash] the user information sub-hash
102
+ def info
103
+ auth_hash['info']
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,101 @@
1
+ require 'socialite/ext/omniauth/identity/model'
2
+
3
+ module Socialite
4
+ module UserConcern
5
+ extend ActiveSupport::Concern
6
+ include OmniAuth::Identity::Model
7
+ include OmniAuth::Identity::SecurePassword
8
+
9
+ included do
10
+
11
+ has_secure_password if defined?(BCrypt)
12
+
13
+ has_many :identities,
14
+ :dependent => :destroy,
15
+ :class_name => Socialite.identity_class_name,
16
+ :foreign_key => "#{Socialite.user_class.table_name.singularize}_id"
17
+
18
+ validates :email,
19
+ :presence => true,
20
+ :format => { :with => /.+@.+\..+/i },
21
+ :uniqueness => { :case_sensitive => false },
22
+ :if => :authorized?
23
+ end
24
+
25
+ module ClassMethods
26
+ def find_from_omniauth(auth)
27
+ if auth['info']['email']
28
+ find_by_email(auth['info']['email'])
29
+ else
30
+ find_by_email("#{auth['info']['name']}@#{auth['provider']}.com")
31
+ end
32
+ end
33
+
34
+ def find_or_create_from_omniauth(auth)
35
+ find_from_omniauth(auth) || create_from_omniauth(auth)
36
+ end
37
+
38
+ def create_from_omniauth(auth)
39
+ create do |user|
40
+ user.name = auth['info']['name']
41
+ user.email = auth['info']['email']
42
+ user.email ||= "#{auth['info']['nickname']}@#{auth['provider']}.com"
43
+ user.password ||= rand(36**10).to_s(36)
44
+ end
45
+ end
46
+
47
+ def auth_key; :email; end
48
+
49
+ def locate(search_hash)
50
+ where(search_hash).first
51
+ end
52
+ end
53
+
54
+ def method_missing(id, *args, &block)
55
+ if id =~ /(\w+)_identity$/ && @identity = self.identities.where(:provider => $1).first
56
+ @identity
57
+ else
58
+ super
59
+ end
60
+ end
61
+
62
+ # Returns the first linked facebook identity
63
+ #
64
+ # @return [Identity] the first facebook identity
65
+ # def facebook
66
+ # self.facebook_identity
67
+ # end
68
+
69
+ # Returns the first linked twitter account
70
+ #
71
+ # @return [Identity] the first twitter identity
72
+ # def twitter
73
+ # self.twitter_identity
74
+ # end
75
+
76
+ # Set the user's remember token
77
+ #
78
+ # @return [User] the current user
79
+ # def remember_me!
80
+ # self.remember_token = Socialite.generate_token
81
+ # save(:validate => false)
82
+ # end
83
+
84
+ # Clear the user's remember token
85
+ #
86
+ # @return [User] the current user
87
+ # def forget_me!
88
+ # if persisted?
89
+ # self.remember_token = nil
90
+ # save(:validate => false)
91
+ # end
92
+ # end
93
+
94
+ # Used for overloading the validations on username and email.
95
+ #
96
+ # @return [Boolean]
97
+ def authorized?
98
+ true
99
+ end
100
+ end
101
+ end
@@ -28,11 +28,11 @@ module Socialite
28
28
  # We ask that you don't use the :as option here, as Socialite relies on it
29
29
  # being the default of "socialite"
30
30
  mount Socialite::Engine, :at => '/socialite'
31
- match '/login' => 'socialite::sessions#new'
32
- match '/logout', :to => 'socialite::sessions#destroy'
33
- match '/signup', :to => 'socialite::users#new'
34
- match '/auth/:provider/callback', :to => 'socialite::sessions#create'
35
- match '/auth/failure', :to => 'socialite::sessions#failure'
31
+ match '/login' => 'socialite/sessions#new', via: [:get]
32
+ match '/logout', :to => 'socialite/sessions#destroy', via: [:get, :post]
33
+ match '/signup', :to => 'socialite/users#new', via: [:get]
34
+ match '/auth/:provider/callback', :to => 'socialite/sessions#create', via: [:get, :post]
35
+ match '/auth/failure', :to => 'socialite/sessions#failure', via: :all
36
36
 
37
37
  }
38
38
  end
@@ -1,6 +1,6 @@
1
1
  require 'socialite/controllers/helpers'
2
- require 'socialite/models/identity_concern'
3
- require 'socialite/models/user_concern'
2
+ # require 'socialite/models/identity_concern'
3
+ # require 'socialite/models/user_concern'
4
4
  require 'socialite/engine'
5
5
 
6
6
  module Socialite
@@ -1,6 +1,5 @@
1
1
  require 'haml'
2
2
  require 'omniauth'
3
- require 'protected_attributes' if Rails.version =~ /^4/
4
3
 
5
4
  module Socialite
6
5
  class Engine < ::Rails::Engine
@@ -1,3 +1,3 @@
1
1
  module Socialite
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -1,4 +1,4 @@
1
1
  class Identity < ActiveRecord::Base
2
2
  self.table_name = 'socialite_identities'
3
- include Socialite::Models::IdentityConcern
3
+ include Socialite::IdentityConcern
4
4
  end
@@ -2,5 +2,5 @@ require 'bcrypt'
2
2
 
3
3
  class User < ActiveRecord::Base
4
4
  self.table_name = 'socialite_users'
5
- include Socialite::Models::UserConcern
5
+ include Socialite::UserConcern
6
6
  end
@@ -6,8 +6,7 @@ Dummy::Application.configure do
6
6
  # since you don't have to restart the web server when you make code changes.
7
7
  config.cache_classes = false
8
8
 
9
- # Log error messages when you accidentally call methods on nil.
10
- config.whiny_nils = true
9
+ config.eager_load = false
11
10
 
12
11
  # Show full error reports and disable caching
13
12
  config.consider_all_requests_local = true
@@ -4,6 +4,8 @@ Dummy::Application.configure do
4
4
  # Code is not reloaded between requests
5
5
  config.cache_classes = true
6
6
 
7
+ config.eager_load = false
8
+
7
9
  # Full error reports are disabled and caching is turned on
8
10
  config.consider_all_requests_local = false
9
11
  config.action_controller.perform_caching = true
@@ -11,8 +11,7 @@ Dummy::Application.configure do
11
11
  config.serve_static_assets = true
12
12
  config.static_cache_control = "public, max-age=3600"
13
13
 
14
- # Log error messages when you accidentally call methods on nil
15
- config.whiny_nils = true
14
+ config.eager_load = true
16
15
 
17
16
  # Show full error reports and disable caching
18
17
  config.consider_all_requests_local = true
@@ -4,4 +4,4 @@
4
4
  # If you change this key, all old signed cookies will become invalid!
5
5
  # Make sure the secret is at least 30 characters and all random,
6
6
  # no regular words or you'll be exposed to dictionary attacks.
7
- Dummy::Application.config.secret_token = 'dd75c273d85209af29b6c0cc7ddb7ef057221d5643dd1d67636895a9fb94c5191e6c79382b6afa34b0336feaf7e30d7598551fae7349d80c6c5279b5910b8f5d'
7
+ Dummy::Application.config.secret_key_base = 'dd75c273d85209af29b6c0cc7ddb7ef057221d5643dd1d67636895a9fb94c5191e6c79382b6afa34b0336feaf7e30d7598551fae7349d80c6c5279b5910b8f5d'
@@ -9,11 +9,11 @@ Rails.application.routes.draw do
9
9
  # We ask that you don't use the :as option here, as Socialite relies on it
10
10
  # being the default of "socialite"
11
11
  mount Socialite::Engine, :at => '/socialite'
12
- match '/login' => 'socialite::sessions#new'
13
- match '/logout', :to => 'socialite::sessions#destroy'
14
- match '/signup', :to => 'socialite::users#new'
15
- match '/auth/:provider/callback', :to => 'socialite::sessions#create'
16
- match '/auth/failure', :to => 'socialite::sessions#failure'
12
+ match '/login' => 'socialite/sessions#new', via: [:get]
13
+ match '/logout', :to => 'socialite/sessions#destroy', via: [:get, :post]
14
+ match '/signup', :to => 'socialite/users#new', via: [:get]
15
+ match '/auth/:provider/callback', :to => 'socialite/sessions#create', via: [:post]
16
+ match '/auth/failure', :to => 'socialite/sessions#failure', via: :all
17
17
 
18
18
  root :to => "pages#index"
19
19
  end
@@ -3,14 +3,14 @@ require 'spec_helper'
3
3
  # FIXME Relies on spec/dummy/config/initializers/omniauth-facebook.rb or you get
4
4
  # stack/routing/middleware issues.
5
5
  #
6
- feature "Facebook Registration", :omniauth => true do
7
- background do
8
- FactoryGirl.create(:linked_user)
9
- end
6
+ # feature "Facebook Registration", :omniauth => true do
7
+ # background do
8
+ # FactoryGirl.create(:linked_user)
9
+ # end
10
10
 
11
- scenario "Signing up with Facebook" do
12
- visit '/auth/facebook'
13
- page.should have_text 'Welcome to the app!'
14
- end
15
- end
11
+ # scenario "Signing up with Facebook" do
12
+ # visit '/auth/facebook'
13
+ # page.should have_text 'Welcome to the app!'
14
+ # end
15
+ # end
16
16
 
@@ -5,9 +5,10 @@ describe Socialite::Generators::InstallGenerator do
5
5
  destination File.expand_path("../../../../tmp", __FILE__)
6
6
 
7
7
  before(:each) do
8
+ pending
8
9
  prepare_destination
9
10
  %w(config script).each do |dir|
10
- `ln -s #{Rails.root + dir} #{destination_root}`
11
+ `ln -sf #{Rails.root + dir} #{destination_root}`
11
12
  end
12
13
  end
13
14
 
@@ -10,7 +10,7 @@ module Socialite
10
10
  it { should validate_presence_of(:provider) }
11
11
 
12
12
  it { should validate_uniqueness_of(:uid).scoped_to(:provider) }
13
- it { should validate_uniqueness_of(:provider).scoped_to("#{user_class.table_name.singularize}_id").case_insensitive }
13
+ it { should validate_uniqueness_of(:provider).scoped_to(:"#{user_class.table_name.singularize}_id").case_insensitive }
14
14
 
15
15
  describe '.find_or_initialize_by_oauth' do
16
16
  let(:auth_hash) do
@@ -38,7 +38,7 @@ module Socialite
38
38
  subject { identity_class.find_or_create_from_omniauth(auth_hash) }
39
39
 
40
40
  before do
41
- user.identities.count.should > 0
41
+ user.identities.count.should_not eql(0)
42
42
  identity.user.should be_present
43
43
  end
44
44
 
metadata CHANGED
@@ -1,49 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: socialite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Smestad
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-11 00:00:00.000000000 Z
11
+ date: 2013-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: '3.2'
20
- - - <=
21
- - !ruby/object:Gem::Version
22
- version: '4.2'
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - '>='
28
- - !ruby/object:Gem::Version
29
- version: '3.2'
30
- - - <=
31
- - !ruby/object:Gem::Version
32
- version: '4.2'
33
- - !ruby/object:Gem::Dependency
34
- name: protected_attributes
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - '>='
17
+ - - ~>
38
18
  - !ruby/object:Gem::Version
39
- version: '0'
19
+ version: '4.0'
40
20
  type: :runtime
41
21
  prerelease: false
42
22
  version_requirements: !ruby/object:Gem::Requirement
43
23
  requirements:
44
- - - '>='
24
+ - - ~>
45
25
  - !ruby/object:Gem::Version
46
- version: '0'
26
+ version: '4.0'
47
27
  - !ruby/object:Gem::Dependency
48
28
  name: sass-rails
49
29
  requirement: !ruby/object:Gem::Requirement
@@ -106,14 +86,14 @@ dependencies:
106
86
  requirements:
107
87
  - - '>='
108
88
  - !ruby/object:Gem::Version
109
- version: 3.0.0
89
+ version: '0'
110
90
  type: :runtime
111
91
  prerelease: false
112
92
  version_requirements: !ruby/object:Gem::Requirement
113
93
  requirements:
114
94
  - - '>='
115
95
  - !ruby/object:Gem::Version
116
- version: 3.0.0
96
+ version: '0'
117
97
  - !ruby/object:Gem::Dependency
118
98
  name: simple_form
119
99
  requirement: !ruby/object:Gem::Requirement
@@ -295,6 +275,8 @@ files:
295
275
  - app/controllers/socialite/sessions_controller.rb
296
276
  - app/controllers/socialite/socialite_controller.rb
297
277
  - app/controllers/socialite/users_controller.rb
278
+ - app/models/concerns/socialite/identity_concern.rb
279
+ - app/models/concerns/socialite/user_concern.rb
298
280
  - app/views/layouts/socialite/socialite.html.haml
299
281
  - app/views/socialite/identities/_identities.html.haml
300
282
  - app/views/socialite/identities/new.html.haml
@@ -311,8 +293,6 @@ files:
311
293
  - lib/socialite/controllers/helpers.rb
312
294
  - lib/socialite/engine.rb
313
295
  - lib/socialite/ext/omniauth/identity/model.rb
314
- - lib/socialite/models/identity_concern.rb
315
- - lib/socialite/models/user_concern.rb
316
296
  - lib/socialite/version.rb
317
297
  - lib/socialite.rb
318
298
  - lib/tasks/socialite_tasks.rake
@@ -1,110 +0,0 @@
1
- module Socialite
2
- module Models
3
- module IdentityConcern
4
- extend ActiveSupport::Concern
5
-
6
- included do
7
- attr_accessible :provider, :uid, :user_id, :auth_hash
8
-
9
- belongs_to :user,
10
- :class_name => Socialite.user_class_name,
11
- :foreign_key => "#{Socialite.user_class.table_name.singularize}_id"
12
- serialize :auth_hash
13
-
14
- # Ensure that before validation happens that the provider
15
- # database column matches what is inside of the auth_hash
16
- # dataset.
17
- before_validation do |identity|
18
- if identity.auth_hash.present?
19
- identity.provider = identity.auth_hash.delete('provider') if identity.provider.blank?
20
- identity.uid = identity.auth_hash.delete('uid') if identity.uid.blank?
21
- end
22
- end
23
-
24
- # Ensure each user has only a single identity per provider type
25
- validates :provider,
26
- :uniqueness => {
27
- :scope => "#{Socialite.user_class.table_name.singularize}_id",
28
- :case_sensitive => false
29
- },
30
- :presence => true
31
-
32
- # Ensure an identity is never reused by another account
33
- validates :uid,
34
- :uniqueness => {:scope => :provider},
35
- :presence => true
36
-
37
- # Ensure an associated user exists before creating the identity
38
- # validates_associated :user
39
- end
40
-
41
- module ClassMethods
42
- # Finder method that finds the matching Provider and Unique ID or
43
- # initializes a new, unsaved, object.
44
- #
45
- # @params [Hash] the OAuth authentication hash
46
- # @returns [Identity]
47
- def create_from_omniauth(auth={})
48
- create do |identity|
49
- identity.provider = auth['provider']
50
- identity.uid = auth['uid']
51
- identity.auth_hash = auth
52
- end
53
- end
54
-
55
- def find_or_create_from_omniauth(auth)
56
- raise ArgumentError, 'auth parameter must be a hash' unless auth.is_a?(Hash)
57
- find_from_omniauth(auth) || create_from_omniauth(auth)
58
- end
59
-
60
- # Finder method that finds the matching Provider and UID.
61
- #
62
- # @params [Hash] the OmniAuth authentication hash
63
- def find_from_omniauth(auth={})
64
- where(:provider => auth['provider'], :uid => auth['uid']).first
65
- end
66
- end
67
-
68
- # Convenience method for accessing the OAuth access token
69
- #
70
- # @returns [String] OAuth access token
71
- # (see #credentials)
72
- def access_token
73
- credentials['token']
74
- end
75
-
76
- # Convenience method for accessing the OAuth access token secret
77
- #
78
- # @returns [String] OAuth access token secret
79
- # (see #credentials)
80
- def access_token_secret
81
- credentials['secret']
82
- end
83
-
84
- # Convenience method for accessing the OAuth credentials sub-hash
85
- #
86
- # @returns [Hash] OAuth credentials sub-hash
87
- # (see #access_token)
88
- # (see #access_token_secret)
89
- def credentials
90
- auth_hash['credentials']
91
- end
92
-
93
- # Convenience method for accessing the nickname, which is typically
94
- # set to the login name used for that provider.
95
- #
96
- # @returns [String] user nickname for the provider identity
97
- def nickname
98
- info['nickname']
99
- end
100
-
101
- # Convenience method for accessing the user information from the
102
- # OAuth provider.
103
- #
104
- # @returns [Hash] the user information sub-hash
105
- def info
106
- auth_hash['info']
107
- end
108
- end
109
- end
110
- end
@@ -1,104 +0,0 @@
1
- require 'socialite/ext/omniauth/identity/model'
2
-
3
- module Socialite
4
- module Models
5
- module UserConcern
6
- extend ActiveSupport::Concern
7
- include OmniAuth::Identity::Model
8
- include OmniAuth::Identity::SecurePassword
9
-
10
- included do
11
- attr_accessible :email, :name, :password, :password_confirmation
12
-
13
- has_secure_password if defined?(BCrypt)
14
-
15
- has_many :identities,
16
- :dependent => :destroy,
17
- :class_name => Socialite.identity_class_name,
18
- :foreign_key => "#{Socialite.user_class.table_name.singularize}_id"
19
-
20
- validates :email,
21
- :presence => true,
22
- :format => { :with => /.+@.+\..+/i },
23
- :uniqueness => { :case_sensitive => false },
24
- :if => :authorized?
25
- end
26
-
27
- module ClassMethods
28
- def find_from_omniauth(auth)
29
- if auth['info']['email']
30
- find_by_email(auth['info']['email'])
31
- else
32
- find_by_email("#{auth['info']['name']}@#{auth['provider']}.com")
33
- end
34
- end
35
-
36
- def find_or_create_from_omniauth(auth)
37
- find_from_omniauth(auth) || create_from_omniauth(auth)
38
- end
39
-
40
- def create_from_omniauth(auth)
41
- create do |user|
42
- user.name = auth['info']['name']
43
- user.email = auth['info']['email']
44
- user.email ||= "#{auth['info']['nickname']}@#{auth['provider']}.com"
45
- user.password ||= rand(36**10).to_s(36)
46
- end
47
- end
48
-
49
- def auth_key; :email; end
50
-
51
- def locate(search_hash)
52
- where(search_hash).first
53
- end
54
- end
55
-
56
- def method_missing(id, *args, &block)
57
- if id =~ /(\w+)_identity$/ && @identity = self.identities.where(:provider => $1).first
58
- @identity
59
- else
60
- super
61
- end
62
- end
63
-
64
- # Returns the first linked facebook identity
65
- #
66
- # @return [Identity] the first facebook identity
67
- def facebook
68
- self.facebook_identity
69
- end
70
-
71
- # Returns the first linked twitter account
72
- #
73
- # @return [Identity] the first twitter identity
74
- def twitter
75
- self.twitter_identity
76
- end
77
-
78
- # Set the user's remember token
79
- #
80
- # @return [User] the current user
81
- # def remember_me!
82
- # self.remember_token = Socialite.generate_token
83
- # save(:validate => false)
84
- # end
85
-
86
- # Clear the user's remember token
87
- #
88
- # @return [User] the current user
89
- # def forget_me!
90
- # if persisted?
91
- # self.remember_token = nil
92
- # save(:validate => false)
93
- # end
94
- # end
95
-
96
- # Used for overloading the validations on username and email.
97
- #
98
- # @return [Boolean]
99
- def authorized?
100
- true
101
- end
102
- end
103
- end
104
- end