sharkapps 0.1.15 → 0.1.16

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.
data/Gemfile CHANGED
@@ -12,5 +12,5 @@ group :development do
12
12
  gem "jeweler", "~> 1.5.2"
13
13
  gem "rcov", ">= 0"
14
14
  end
15
-
16
- gem 'rabl'
15
+ gem 'rabl'
16
+ gem 'koala'
data/Gemfile.lock CHANGED
@@ -28,16 +28,24 @@ GEM
28
28
  activemodel (= 3.0.9)
29
29
  activesupport (= 3.0.9)
30
30
  activesupport (3.0.9)
31
+ addressable (2.2.7)
31
32
  arel (2.0.10)
32
33
  builder (2.1.2)
33
34
  erubis (2.6.6)
34
35
  abstract (>= 1.0.0)
36
+ faraday (0.7.6)
37
+ addressable (~> 2.2)
38
+ multipart-post (~> 1.1)
39
+ rack (~> 1.1)
35
40
  git (1.2.5)
36
41
  i18n (0.5.0)
37
42
  jeweler (1.5.2)
38
43
  bundler (~> 1.0.0)
39
44
  git (>= 1.2.5)
40
45
  rake
46
+ koala (1.4.0)
47
+ faraday (~> 0.7.0)
48
+ multi_json (~> 1.0)
41
49
  mail (2.2.19)
42
50
  activesupport (>= 2.3.6)
43
51
  i18n (>= 0.4.0)
@@ -45,6 +53,7 @@ GEM
45
53
  treetop (~> 1.4.8)
46
54
  mime-types (1.16)
47
55
  multi_json (1.3.2)
56
+ multipart-post (1.1.5)
48
57
  polyglot (0.3.2)
49
58
  rabl (0.6.9)
50
59
  activesupport (>= 2.3.14)
@@ -85,6 +94,7 @@ PLATFORMS
85
94
  DEPENDENCIES
86
95
  bundler (~> 1.0.0)
87
96
  jeweler (~> 1.5.2)
97
+ koala
88
98
  rabl
89
99
  rails (>= 3.0.9)
90
100
  rcov
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.15
1
+ 0.1.16
data/config/routes.rb CHANGED
@@ -3,6 +3,7 @@ Rails.application.routes.draw do
3
3
  match 'locale_selector' => 'appforma#locale_selector', :as => :locale_selector
4
4
  match 'not_subscribed' => 'appforma#not_subscribed', :as => :not_subscribed
5
5
  match 'not_authorized' => 'appforma#not_authorized', :as => :not_authorized
6
+ match 'auth_check' => 'appforma#auth_check', :as => :site_auth_check
6
7
 
7
8
  #API routes
8
9
  scope "/api/v1" do
data/lib/sharkapps.rb CHANGED
@@ -106,7 +106,35 @@ module SharkApps
106
106
  end
107
107
 
108
108
  def check_admin
109
- redirect_to not_authorized_url(:id => @account.acc_hash) unless is_admin
109
+ #check that we have a Facebook user. if not, redirect.
110
+ @oauth = Koala::Facebook::OAuth.new(Facebooker2.app_id, Facebooker2.secret)
111
+
112
+ #returning from the oauth server
113
+ if params[:code] and session[:access_token].nil?
114
+ @access_token = @oauth.get_access_token(params[:code], :redirect_uri => session[:redirect_uri])
115
+ session[:redirect_uri] = nil
116
+ session[:access_token] = @access_token
117
+ end
118
+
119
+ #no access token stored - do a redirect
120
+ unless session[:access_token]
121
+ session[:redirect_uri] = request.url
122
+ redirect_to @oauth.url_for_oauth_code(:permissions => "publish_stream, manage_pages, email", :redirect_uri => request.url) and return
123
+ end
124
+
125
+ #validate that the access token that we have is good. if not, request a new one.
126
+ begin
127
+ fb = current_fb_user
128
+ rescue Exception
129
+ session[:redirect_uri] = request.url
130
+ session[:access_token] = nil
131
+ redirect_to @oauth.url_for_oauth_code(:permissions => "publish_stream, manage_pages, email", :redirect_uri => request.url) and return
132
+ end
133
+
134
+ #we have an access token, we can do the is_admin check now
135
+ unless session[:access_token].nil?
136
+ redirect_to not_authorized_url(:id => @account.acc_hash) unless is_admin
137
+ end
110
138
  end
111
139
 
112
140
  def is_admin
@@ -124,12 +152,33 @@ module SharkApps
124
152
  need_check = (session[sym].nil? or session[sym] == false)
125
153
  puts "need check: = #{need_check}"
126
154
  if need_check #need_check
127
- return false if current_facebook_user.nil?
128
- session[sym] = AppformaAccount.check_admin_authorized(@account, current_facebook_user.id)
155
+ return false if current_fb_user.nil?
156
+ session[sym] = AppformaAccount.check_admin_authorized(@account, current_fb_user['id'])
129
157
  end
130
158
  return session[sym]
131
159
  end
132
160
  end
161
+
162
+ def facebook_session_from_cookies
163
+ puts "request cookies = #{request.cookies}"
164
+ oauth = Koala::Facebook::OAuth.new(Facebooker2.app_id, Facebooker2.secret)
165
+ facebook_session = oauth.get_user_info_from_cookies(request.cookies)
166
+ facebook_session
167
+ end
168
+
169
+ def facebook_user_from_cookies
170
+ facebook_session = facebook_session_from_cookies
171
+ @facebook_user = Koala::Facebook::API.new(facebook_session["access_token"]).get_object("me") if facebook_session
172
+ @access_token = facebook_session["access_token"] if facebook_session
173
+ @facebook_user
174
+ end
175
+
176
+ def current_fb_user
177
+ return @current_fb_user if @current_fb_user
178
+ @current_fb_user = Koala::Facebook::API.new(session[:access_token]).get_object("me") if session[:access_token]
179
+ @current_fb_user
180
+ end
181
+
133
182
 
134
183
  end
135
184
 
data/sharkapps.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sharkapps}
8
- s.version = "0.1.15"
8
+ s.version = "0.1.16"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Eyal Kedem"]
12
- s.date = %q{2012-05-28}
12
+ s.date = %q{2012-06-03}
13
13
  s.description = %q{integration utilities with the shark apps framework}
14
14
  s.email = %q{ekedem@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -66,6 +66,7 @@ Gem::Specification.new do |s|
66
66
 
67
67
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
68
68
  s.add_runtime_dependency(%q<rabl>, [">= 0"])
69
+ s.add_runtime_dependency(%q<koala>, [">= 0"])
69
70
  s.add_development_dependency(%q<rails>, [">= 3.0.9"])
70
71
  s.add_development_dependency(%q<shoulda>, [">= 0"])
71
72
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -73,6 +74,7 @@ Gem::Specification.new do |s|
73
74
  s.add_development_dependency(%q<rcov>, [">= 0"])
74
75
  else
75
76
  s.add_dependency(%q<rabl>, [">= 0"])
77
+ s.add_dependency(%q<koala>, [">= 0"])
76
78
  s.add_dependency(%q<rails>, [">= 3.0.9"])
77
79
  s.add_dependency(%q<shoulda>, [">= 0"])
78
80
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -81,6 +83,7 @@ Gem::Specification.new do |s|
81
83
  end
82
84
  else
83
85
  s.add_dependency(%q<rabl>, [">= 0"])
86
+ s.add_dependency(%q<koala>, [">= 0"])
84
87
  s.add_dependency(%q<rails>, [">= 3.0.9"])
85
88
  s.add_dependency(%q<shoulda>, [">= 0"])
86
89
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sharkapps
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 59
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 15
9
+ - 16
10
10
  segments_generated: true
11
- version: 0.1.15
11
+ version: 0.1.16
12
12
  platform: ruby
13
13
  authors:
14
14
  - Eyal Kedem
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-05-28 00:00:00 +03:00
19
+ date: 2012-06-03 00:00:00 +03:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -35,8 +35,23 @@ dependencies:
35
35
  prerelease: false
36
36
  type: :runtime
37
37
  - !ruby/object:Gem::Dependency
38
- name: rails
38
+ name: koala
39
39
  version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ segments_generated: true
48
+ version: "0"
49
+ requirement: *id002
50
+ prerelease: false
51
+ type: :runtime
52
+ - !ruby/object:Gem::Dependency
53
+ name: rails
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
40
55
  none: false
41
56
  requirements:
42
57
  - - ">="
@@ -48,12 +63,12 @@ dependencies:
48
63
  - 9
49
64
  segments_generated: true
50
65
  version: 3.0.9
51
- requirement: *id002
66
+ requirement: *id003
52
67
  prerelease: false
53
68
  type: :development
54
69
  - !ruby/object:Gem::Dependency
55
70
  name: shoulda
56
- version_requirements: &id003 !ruby/object:Gem::Requirement
71
+ version_requirements: &id004 !ruby/object:Gem::Requirement
57
72
  none: false
58
73
  requirements:
59
74
  - - ">="
@@ -63,12 +78,12 @@ dependencies:
63
78
  - 0
64
79
  segments_generated: true
65
80
  version: "0"
66
- requirement: *id003
81
+ requirement: *id004
67
82
  prerelease: false
68
83
  type: :development
69
84
  - !ruby/object:Gem::Dependency
70
85
  name: bundler
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
86
+ version_requirements: &id005 !ruby/object:Gem::Requirement
72
87
  none: false
73
88
  requirements:
74
89
  - - ~>
@@ -80,12 +95,12 @@ dependencies:
80
95
  - 0
81
96
  segments_generated: true
82
97
  version: 1.0.0
83
- requirement: *id004
98
+ requirement: *id005
84
99
  prerelease: false
85
100
  type: :development
86
101
  - !ruby/object:Gem::Dependency
87
102
  name: jeweler
88
- version_requirements: &id005 !ruby/object:Gem::Requirement
103
+ version_requirements: &id006 !ruby/object:Gem::Requirement
89
104
  none: false
90
105
  requirements:
91
106
  - - ~>
@@ -97,12 +112,12 @@ dependencies:
97
112
  - 2
98
113
  segments_generated: true
99
114
  version: 1.5.2
100
- requirement: *id005
115
+ requirement: *id006
101
116
  prerelease: false
102
117
  type: :development
103
118
  - !ruby/object:Gem::Dependency
104
119
  name: rcov
105
- version_requirements: &id006 !ruby/object:Gem::Requirement
120
+ version_requirements: &id007 !ruby/object:Gem::Requirement
106
121
  none: false
107
122
  requirements:
108
123
  - - ">="
@@ -112,7 +127,7 @@ dependencies:
112
127
  - 0
113
128
  segments_generated: true
114
129
  version: "0"
115
- requirement: *id006
130
+ requirement: *id007
116
131
  prerelease: false
117
132
  type: :development
118
133
  description: integration utilities with the shark apps framework