appoxy_rails 0.0.16 → 0.0.17

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.
@@ -1,5 +1,7 @@
1
1
  require 'simple_record'
2
+ require 'oauth'
2
3
  require_relative "sessions/user"
4
+ require_relative "sessions/oauth_token"
3
5
  require_relative "sessions/application_controller"
4
6
  require_relative "sessions/sessions_controller"
5
7
  require_relative "sessions/users_controller"
@@ -0,0 +1,12 @@
1
+ class OauthToken < SimpleRecord::Base
2
+
3
+ belongs_to :user
4
+
5
+ has_strings :type, # request or access
6
+ :site,
7
+ :token,
8
+ :secret
9
+
10
+ # has_clobs :access_token
11
+
12
+ end
@@ -33,7 +33,7 @@ module Appoxy
33
33
 
34
34
  logout_keeping_session!
35
35
 
36
- @email = params[:email]
36
+ @email = params[:email]
37
37
  if @email.blank?
38
38
  flash[:error] = "You must enter a valid email address."
39
39
  render :action=>"new"
@@ -62,17 +62,10 @@ module Appoxy
62
62
  # user = User.authenticate(@email, params[:password])
63
63
  if user && user.authenticate(params[:password])
64
64
  self.current_user = user
65
- flash[:info] = "Logged in successfully."
66
- orig_url = session[:return_to]
67
- puts 'orig_url = ' + orig_url.to_s
68
- session[:return_to] = nil
69
- if !orig_url.nil?
70
- redirect_to orig_url # if entered via a different url
71
- else
72
- after_create
73
- end
74
- user.last_login = Time.now
65
+ user.last_login = Time.now
75
66
  user.save(:dirty=>true)
67
+ flash[:info] = "Logged in successfully."
68
+
76
69
  else
77
70
  flash[:error] = "Invalid email or password. Please try again."
78
71
  render :action => 'new'
@@ -85,7 +78,12 @@ module Appoxy
85
78
  end
86
79
 
87
80
  def after_create
88
-
81
+ orig_url = session[:return_to]
82
+ puts 'orig_url = ' + orig_url.to_s
83
+ session[:return_to] = nil
84
+ if !orig_url.nil?
85
+ redirect_to orig_url # if entered via a different url
86
+ end
89
87
  end
90
88
 
91
89
  def reset_password
@@ -187,12 +185,91 @@ module Appoxy
187
185
  # @user.fake = false
188
186
  @user.save(:dirty=>true)
189
187
  end
190
- session[:user_id] = @user.id
188
+
189
+ set_current_user @user
191
190
  @user
192
191
 
193
192
  end
194
193
  end
195
194
 
195
+ def twitter_auth
196
+ callback_url = "#{base_url}/sessions/create_twitter"
197
+ @request_token = twitter_oauth_consumer(:signin=>true).get_request_token(:oauth_callback => callback_url)
198
+ session[:request_token] = @request_token
199
+ ru = @request_token.authorize_url(:oauth_callback => callback_url)
200
+ puts ru.inspect
201
+ redirect_to ru
202
+ end
203
+
204
+ # OAUTH VERSION
205
+ def create_twitter_oauth
206
+ puts 'params=' + params.inspect
207
+ @request_token = session[:request_token]
208
+ @access_token = @request_token.get_access_token(:oauth_verifier => params[:oauth_verifier])
209
+ puts 'access_token = ' + @access_token.inspect
210
+
211
+ token = OauthToken.find_by_user_id_and_site_and_type(current_user.id, @access_token.consumer(:signin=>true).site, "access")
212
+ puts 'found token? ' + token.inspect
213
+ unless token
214
+ token = OauthToken.new(:type =>"access",
215
+ :user =>current_user,
216
+ :site =>@access_token.consumer.site,
217
+ :token =>@access_token.token,
218
+ :secret=>@access_token.secret)
219
+ token.save!
220
+ else
221
+ token.token = @access_token.token
222
+ token.secret = @access_token.secret
223
+ token.save(:dirty=>true)
224
+ end
225
+ @token = token
226
+
227
+ flash[:success] = "Authorized with Twitter."
228
+
229
+ end
230
+
231
+ def create_twitter
232
+ before_create
233
+ puts 'params=' + params.inspect
234
+ @request_token = session[:request_token]
235
+ @access_token = @request_token.get_access_token(:oauth_verifier => params[:oauth_verifier])
236
+ puts 'access_token = ' + @access_token.inspect
237
+ p @access_token.params
238
+
239
+ @user = User.find_by_twitter_id(@access_token.params[:user_id])
240
+ unless @user
241
+ @user = User.new(:username =>@access_token.params[:screen_name],
242
+ :twitter_screen_name=>@access_token.params[:screen_name],
243
+ :twitter_id =>@access_token.params[:user_id])
244
+ @user.save!
245
+ puts '@user=' + @user.inspect
246
+ else
247
+ @user.username = @access_token.params[:screen_name]
248
+ @user.save(:dirty=>true)
249
+
250
+ end
251
+
252
+ set_current_user @user
253
+
254
+ flash[:success] = "Authorized with Twitter."
255
+
256
+ after_create
257
+
258
+ end
259
+
260
+ private
261
+ def twitter_oauth_consumer(options={})
262
+ auth_path = options[:signin] ? "authenticate" : "authorize"
263
+ @consumer = OAuth::Consumer.new(Rails.application.config.twitter_consumer_key,
264
+ Rails.application.config.twitter_consumer_secret,
265
+ :site => "https://api.twitter.com",
266
+ :oauth_callback => "#{base_url}/sessions/#{(options[:signin] ? "create_twitter" : "create_twitter_oauth")}",
267
+ :request_token_path => "/oauth/request_token",
268
+ :authorize_path => "/oauth/#{auth_path}",
269
+ :access_token_path => "/oauth/access_token")
270
+ p @consumer
271
+ end
272
+
196
273
 
197
274
  end
198
275
  end
data/lib/sessions/user.rb CHANGED
@@ -9,8 +9,10 @@ module Appoxy
9
9
  end
10
10
 
11
11
  has_strings :email,
12
+ :username,
12
13
  :open_id,
13
- :fb_id, :fb_access_token,
14
+ :twitter_id, :twitter_screen_name,
15
+ :fb_id, :fb_access_token,
14
16
  {:name => :password, :hashed=>true},
15
17
  :first_name,
16
18
  :last_name,
@@ -22,8 +24,8 @@ module Appoxy
22
24
  :time_zone,
23
25
  :lat, :lng
24
26
 
25
- has_dates :last_login,
26
- :remember_me_expires
27
+ has_dates :last_login,
28
+ :remember_me_expires
27
29
 
28
30
 
29
31
  def validate
@@ -1,14 +1,14 @@
1
- module Appoxy
2
- module UI
3
- class BindingHack
4
-
5
- def initialize(hash)
6
- @options = hash
7
- end
8
-
9
- def get_binding
10
- binding
11
- end
12
- end
13
- end
1
+ module Appoxy
2
+ module UI
3
+ class BindingHack
4
+
5
+ def initialize(hash)
6
+ @options = hash
7
+ end
8
+
9
+ def get_binding
10
+ binding
11
+ end
12
+ end
13
+ end
14
14
  end
data/lib/ui/test.rb CHANGED
@@ -1,7 +1,7 @@
1
- require 'erb'
2
- require_relative 'binding_hack'
3
-
4
- options = Appoxy::UI::BindingHack.new(:x=>"hi")
5
- template = ERB.new(File.read(File.join(File.dirname(__FILE__), '_geo_location_finder.html.erb')))
6
- ret = template.result(options.get_binding)
7
- p ret
1
+ require 'erb'
2
+ require_relative 'binding_hack'
3
+
4
+ options = Appoxy::UI::BindingHack.new(:x=>"hi")
5
+ template = ERB.new(File.read(File.join(File.dirname(__FILE__), '_geo_location_finder.html.erb')))
6
+ ret = template.result(options.get_binding)
7
+ p ret
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 16
9
- version: 0.0.16
8
+ - 17
9
+ version: 0.0.17
10
10
  platform: ruby
11
11
  authors:
12
12
  - Travis Reeder
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-02-01 00:00:00 -08:00
17
+ date: 2011-02-04 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -31,7 +31,7 @@ dependencies:
31
31
  type: :runtime
32
32
  version_requirements: *id001
33
33
  - !ruby/object:Gem::Dependency
34
- name: ruby-openid
34
+ name: oauth
35
35
  prerelease: false
36
36
  requirement: &id002 !ruby/object:Gem::Requirement
37
37
  none: false
@@ -44,7 +44,7 @@ dependencies:
44
44
  type: :runtime
45
45
  version_requirements: *id002
46
46
  - !ruby/object:Gem::Dependency
47
- name: appoxy_api
47
+ name: ruby-openid
48
48
  prerelease: false
49
49
  requirement: &id003 !ruby/object:Gem::Requirement
50
50
  none: false
@@ -57,7 +57,7 @@ dependencies:
57
57
  type: :runtime
58
58
  version_requirements: *id003
59
59
  - !ruby/object:Gem::Dependency
60
- name: mini_fb
60
+ name: appoxy_api
61
61
  prerelease: false
62
62
  requirement: &id004 !ruby/object:Gem::Requirement
63
63
  none: false
@@ -70,7 +70,7 @@ dependencies:
70
70
  type: :runtime
71
71
  version_requirements: *id004
72
72
  - !ruby/object:Gem::Dependency
73
- name: simple_record
73
+ name: mini_fb
74
74
  prerelease: false
75
75
  requirement: &id005 !ruby/object:Gem::Requirement
76
76
  none: false
@@ -82,6 +82,19 @@ dependencies:
82
82
  version: "0"
83
83
  type: :runtime
84
84
  version_requirements: *id005
85
+ - !ruby/object:Gem::Dependency
86
+ name: simple_record
87
+ prerelease: false
88
+ requirement: &id006 !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ segments:
94
+ - 0
95
+ version: "0"
96
+ type: :runtime
97
+ version_requirements: *id006
85
98
  description: Appoxy API Helper gem description...
86
99
  email: travis@appoxy.com
87
100
  executables: []
@@ -101,6 +114,7 @@ files:
101
114
  - lib/appoxy_ui.rb
102
115
  - lib/railtie.rb
103
116
  - lib/sessions/application_controller.rb
117
+ - lib/sessions/oauth_token.rb
104
118
  - lib/sessions/sessions_controller.rb
105
119
  - lib/sessions/shareable.rb
106
120
  - lib/sessions/user.rb