socialite 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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