opro 0.4.0 → 0.4.1
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/.travis.yml +1 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile +6 -22
- data/Gemfile.lock +13 -9
- data/README.md +48 -34
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/app/controllers/opro/oauth/client_app_controller.rb +19 -1
- data/app/controllers/opro/oauth/docs_controller.rb +21 -11
- data/app/controllers/opro/oauth/tests_controller.rb +6 -6
- data/app/models/opro/oauth/auth_grant.rb +6 -4
- data/app/views/opro/oauth/auth/new.html.erb +21 -22
- data/app/views/opro/oauth/client_app/edit.html.erb +14 -0
- data/app/views/opro/oauth/client_app/index.html.erb +17 -16
- data/app/views/opro/oauth/client_app/new.html.erb +19 -13
- data/app/views/opro/oauth/client_app/show.html.erb +15 -0
- data/app/views/opro/oauth/docs/index.html.erb +20 -21
- data/app/views/opro/oauth/docs/markdown/curl.md.erb +10 -10
- data/app/views/opro/oauth/docs/markdown/oauth.md.erb +6 -6
- data/app/views/opro/oauth/docs/markdown/password_exchange.md.erb +9 -9
- data/app/views/opro/oauth/docs/markdown/permissions.md.erb +1 -1
- data/app/views/opro/oauth/docs/markdown/quick_start.md.erb +21 -21
- data/app/views/opro/oauth/docs/markdown/refresh_tokens.md.erb +4 -4
- data/app/views/opro/oauth/docs/show.html.erb +4 -2
- data/app/views/opro/oauth/tests/index.html.erb +7 -7
- data/lib/generators/opro/install_generator.rb +1 -1
- data/lib/opro.rb +6 -6
- data/lib/opro/controllers/concerns/error_messages.rb +3 -3
- data/lib/opro/controllers/concerns/permissions.rb +1 -1
- data/lib/opro/rails/routes.rb +12 -3
- data/opro.gemspec +15 -17
- data/test/integration/client_app_controller_test.rb +28 -1
- data/test/integration/docs_controller_test.rb +1 -0
- data/test/models/opro/oauth/auth_grant_test.rb +7 -0
- data/test/test_helper.rb +6 -3
- metadata +91 -41
- data/app/views/opro/oauth/client_app/create.html.erb +0 -15
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
# Refresh Tokens
|
4
4
|
|
5
|
-
Refresh tokens can be used to refresh an
|
5
|
+
Refresh tokens can be used to refresh an expired `access_token`. When you receive your initial `access_token` you will receive a `request_token` in the JSON response, as well as an `expires_in` value. The `expires_in` value marks the seconds that the current `access_token` is still valid. After this value reaches zero, a client application will not be able to use the existing `access_token`.
|
6
6
|
|
7
7
|
## Refreshing an Access Token
|
8
8
|
|
9
|
-
If a token has expired or you simply wish to receive a new `access_token` you can send your `refresh_token` along with your `
|
9
|
+
If a token has expired or you simply wish to receive a new `access_token` you can send your `refresh_token` along with your `client_id` and `client_secret` to `<%= oauth_token_url(:protocol => @protocol) %>` and your access_token will be refreshed.
|
10
10
|
|
11
11
|
|
12
12
|
|
@@ -15,8 +15,8 @@ If a token has expired or you simply wish to receive a new `access_token` you ca
|
|
15
15
|
:client_secret => "14321myClientSecret8765",
|
16
16
|
:refresh_token => "4857goldfish827423") %>'
|
17
17
|
|
18
|
-
|
18
|
+
Make sure to replace `client_id`, `client_secret`, and `refresh_token` with your values.
|
19
19
|
|
20
|
-
You should get back a response that looks like this
|
20
|
+
You should get back a response that looks like this:
|
21
21
|
|
22
22
|
$ {"access_token":"9693accessTokena7ca570bbaf","refresh_token":"3a3c129ad02b573de78e65af06c293f1","expires_in":7300 }
|
@@ -1,23 +1,23 @@
|
|
1
|
-
<h2>
|
1
|
+
<h2>OAuth Test</h2>
|
2
2
|
|
3
|
-
<p>Use this url scheme to test your OAuth application
|
3
|
+
<p>Use this url scheme to test your OAuth application.</p>
|
4
4
|
|
5
5
|
<h2>Test OAuth Allow</h2>
|
6
6
|
|
7
7
|
<p>
|
8
|
-
If you send a valid OAuth request to any oauth_test url such as <%= link_to oauth_test_path(:show_me_the_money), oauth_test_path(:show_me_the_money)
|
8
|
+
If you send a valid OAuth request to any oauth_test url such as <%= link_to oauth_test_path(:show_me_the_money), oauth_test_path(:show_me_the_money) %>, you should see a response like this:
|
9
9
|
</p>
|
10
|
-
<pre><code><%= {:status => 200, :message => '
|
10
|
+
<pre><code><%= {:status => 200, :message => 'OAuth Worked!! ', :params => {:id => 'show_me_the_money', :access_token => '3948fuAlo10gnsu'} }.to_json %></code></pre>
|
11
11
|
<p>
|
12
|
-
If the request is not valid you will receive a message detailing the errors.
|
12
|
+
If the request is not valid, you will receive a message detailing the errors.
|
13
13
|
</p>
|
14
14
|
|
15
15
|
<h2>Test OAuth Disallow</h2>
|
16
16
|
<p>
|
17
17
|
If you send a valid OAuth request using the 'DELETE' HTTP method to <%= oauth_test_path(:show_me_the_money) %> you should see a response like below.</p>
|
18
18
|
<%= button_to oauth_test_path(:show_me_the_money), oauth_test_path(:show_me_the_money), :method => :delete, :id => 'deleteButton' %>
|
19
|
-
<pre><code><%= {:status => 401, :message => '
|
19
|
+
<pre><code><%= {:status => 401, :message => 'OAuth is disabled on this action; this is the correct result!', :params => {:id => 'show_me_the_money', :access_token => '3948fuAlo10gnsu'}}.to_json %></code></pre>
|
20
20
|
|
21
21
|
<p>
|
22
|
-
If you get a 200 result, then there is something configured incorrectly on the server
|
22
|
+
If you get a 200 result, then there is something configured incorrectly on the server; please contact the administrator.
|
23
23
|
</p>
|
data/lib/opro.rb
CHANGED
@@ -46,13 +46,13 @@ module Opro
|
|
46
46
|
|
47
47
|
# Used by application controller to log user in
|
48
48
|
def self.login(*args)
|
49
|
-
raise 'login method not set
|
49
|
+
raise 'login method not set; please specify an oPRO auth_strategy in config/initializers/opro.rb' if login_method.blank?
|
50
50
|
login_method.call(*args)
|
51
51
|
end
|
52
52
|
|
53
53
|
# Used by application controller to log user out
|
54
54
|
def self.logout(*args)
|
55
|
-
raise '
|
55
|
+
raise 'logout method not set; please specify an oPRO auth_strategy in config/initializers/opro.rb' if login_method.blank?
|
56
56
|
logout_method.call(*args)
|
57
57
|
end
|
58
58
|
|
@@ -74,7 +74,7 @@ module Opro
|
|
74
74
|
if block.present?
|
75
75
|
@login_method = block
|
76
76
|
else
|
77
|
-
@login_method or raise 'login method not set
|
77
|
+
@login_method or raise 'login method not set; please specify an oPRO auth_strategy in config/initializers/opro.rb'
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
@@ -98,7 +98,7 @@ module Opro
|
|
98
98
|
if block.present?
|
99
99
|
@logout_method = block
|
100
100
|
else
|
101
|
-
@logout_method or raise '
|
101
|
+
@logout_method or raise 'logout method not set; please specify an oPRO auth_strategy in config/initializers/opro.rb'
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
@@ -106,7 +106,7 @@ module Opro
|
|
106
106
|
if block.present?
|
107
107
|
@authenticate_user_method = block
|
108
108
|
else
|
109
|
-
@authenticate_user_method or raise 'authenticate_user_method not set, please specify
|
109
|
+
@authenticate_user_method or raise 'authenticate_user_method not set, please specify an oPRO auth_strategy in config/initializers/opro.rb'
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
@@ -147,7 +147,7 @@ module Opro
|
|
147
147
|
@find_for_authentication ||= []
|
148
148
|
@find_for_authentication << convert_to_lambda(&block)
|
149
149
|
else
|
150
|
-
@find_for_authentication or raise 'find_for_authentication not set, please specify
|
150
|
+
@find_for_authentication or raise 'find_for_authentication not set, please specify an oPRO auth_strategy in config/initializers/opro.rb'
|
151
151
|
end
|
152
152
|
end
|
153
153
|
|
@@ -3,8 +3,8 @@ module Opro::Controllers::Concerns::ErrorMessages
|
|
3
3
|
|
4
4
|
def generate_oauth_error_message!
|
5
5
|
msg = ""
|
6
|
-
msg << ' - No OAuth
|
7
|
-
msg << ' - Allow OAuth set to false!' if allow_oauth? == false
|
6
|
+
msg << ' - No OAuth token provided!' if oauth_access_token.blank?
|
7
|
+
msg << ' - `Allow OAuth` is set to false!' if allow_oauth? == false
|
8
8
|
msg << ' - OAuth user not found!' if oauth_user.blank?
|
9
9
|
msg << ' - OAuth client has been rate limited' if oauth_client_over_rate_limit?
|
10
10
|
msg = generate_oauth_permissions_error_message!(msg)
|
@@ -15,7 +15,7 @@ module Opro::Controllers::Concerns::ErrorMessages
|
|
15
15
|
if !oauth_client_has_permissions?
|
16
16
|
msg << ' - OAuth client not permitted'
|
17
17
|
oauth_required_permissions.each do |permission|
|
18
|
-
msg << "- #{permission} permission required
|
18
|
+
msg << "- #{permission} permission required" unless oauth_client_has_permission?(permission)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
msg
|
@@ -80,7 +80,7 @@ module Opro::Controllers::Concerns::Permissions
|
|
80
80
|
permissions = args
|
81
81
|
prepend_before_filter(options) do
|
82
82
|
permissions.each do |permission|
|
83
|
-
raise "You must add #{permission.inspect} to the
|
83
|
+
raise "You must add #{permission.inspect} to the oPRO request_permissions setting in an initializer" unless Opro.request_permissions.include?(permission)
|
84
84
|
controller.add_oauth_required_permission(permission)
|
85
85
|
end
|
86
86
|
end
|
data/lib/opro/rails/routes.rb
CHANGED
@@ -10,9 +10,18 @@ module ActionDispatch::Routing
|
|
10
10
|
match 'oauth/authorize' => 'opro/oauth/auth#create', :as => 'oauth_authorize'
|
11
11
|
match 'oauth/token' => 'opro/oauth/token#create', :as => 'oauth_token'
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
unless skip_routes.include?(:client_apps)
|
14
|
+
oauth_client_apps = controllers[:oauth_client_apps]||'opro/oauth/client_app'
|
15
|
+
resources :oauth_client_apps, :controller => oauth_client_apps
|
16
|
+
end
|
17
|
+
unless skip_routes.include?(:docs)
|
18
|
+
oauth_docs = controllers[:oauth_docs]||'opro/oauth/docs'
|
19
|
+
resources :oauth_docs, :controller => oauth_docs, :only => [:index, :show]
|
20
|
+
end
|
21
|
+
unless skip_routes.include?(:tests)
|
22
|
+
oauth_tests = controllers[:oauth_tests] ||'opro/oauth/tests'
|
23
|
+
resources :oauth_tests, :controller => oauth_tests, :only => [:index, :show, :create, :destroy]
|
24
|
+
end
|
16
25
|
end
|
17
26
|
end
|
18
27
|
end
|
data/opro.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "opro"
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["schneems"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-10-30"
|
13
13
|
s.description = " Enable OAuth clients (iphone, android, web sites, etc.) to access and use your Rails application, what you do with it is up to you"
|
14
14
|
s.email = "richard.schneeman@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -33,9 +33,10 @@ Gem::Specification.new do |s|
|
|
33
33
|
"app/models/opro/oauth/auth_grant.rb",
|
34
34
|
"app/models/opro/oauth/client_app.rb",
|
35
35
|
"app/views/opro/oauth/auth/new.html.erb",
|
36
|
-
"app/views/opro/oauth/client_app/
|
36
|
+
"app/views/opro/oauth/client_app/edit.html.erb",
|
37
37
|
"app/views/opro/oauth/client_app/index.html.erb",
|
38
38
|
"app/views/opro/oauth/client_app/new.html.erb",
|
39
|
+
"app/views/opro/oauth/client_app/show.html.erb",
|
39
40
|
"app/views/opro/oauth/docs/index.html.erb",
|
40
41
|
"app/views/opro/oauth/docs/markdown/curl.md.erb",
|
41
42
|
"app/views/opro/oauth/docs/markdown/oauth.md.erb",
|
@@ -123,8 +124,8 @@ Gem::Specification.new do |s|
|
|
123
124
|
s.homepage = "http://github.com/schneems/opro"
|
124
125
|
s.licenses = ["MIT"]
|
125
126
|
s.require_paths = ["lib"]
|
126
|
-
s.rubygems_version = "1.8.
|
127
|
-
s.summary = "
|
127
|
+
s.rubygems_version = "1.8.24"
|
128
|
+
s.summary = "oPRO turns your Rails application into an OAuth Provider"
|
128
129
|
|
129
130
|
if s.respond_to? :specification_version then
|
130
131
|
s.specification_version = 3
|
@@ -132,46 +133,43 @@ Gem::Specification.new do |s|
|
|
132
133
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
133
134
|
s.add_runtime_dependency(%q<activesupport>, [">= 3.1.0"])
|
134
135
|
s.add_runtime_dependency(%q<rails>, [">= 3.1.0"])
|
135
|
-
s.add_runtime_dependency(%q<
|
136
|
+
s.add_runtime_dependency(%q<kramdown>, [">= 0"])
|
136
137
|
s.add_development_dependency(%q<mocha>, [">= 0"])
|
137
138
|
s.add_development_dependency(%q<timecop>, [">= 0"])
|
138
139
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
139
140
|
s.add_development_dependency(%q<bundler>, [">= 1.1.3"])
|
140
141
|
s.add_development_dependency(%q<capybara>, [">= 0.4.0"])
|
141
|
-
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
142
142
|
s.add_development_dependency(%q<launchy>, [">= 0"])
|
143
|
+
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
144
|
+
s.add_development_dependency(%q<activerecord-jdbcsqlite3-adapter>, [">= 0"])
|
143
145
|
s.add_development_dependency(%q<devise>, [">= 0"])
|
144
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
145
|
-
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
146
146
|
else
|
147
147
|
s.add_dependency(%q<activesupport>, [">= 3.1.0"])
|
148
148
|
s.add_dependency(%q<rails>, [">= 3.1.0"])
|
149
|
-
s.add_dependency(%q<
|
149
|
+
s.add_dependency(%q<kramdown>, [">= 0"])
|
150
150
|
s.add_dependency(%q<mocha>, [">= 0"])
|
151
151
|
s.add_dependency(%q<timecop>, [">= 0"])
|
152
152
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
153
153
|
s.add_dependency(%q<bundler>, [">= 1.1.3"])
|
154
154
|
s.add_dependency(%q<capybara>, [">= 0.4.0"])
|
155
|
-
s.add_dependency(%q<sqlite3>, [">= 0"])
|
156
155
|
s.add_dependency(%q<launchy>, [">= 0"])
|
156
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
157
|
+
s.add_dependency(%q<activerecord-jdbcsqlite3-adapter>, [">= 0"])
|
157
158
|
s.add_dependency(%q<devise>, [">= 0"])
|
158
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
159
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
160
159
|
end
|
161
160
|
else
|
162
161
|
s.add_dependency(%q<activesupport>, [">= 3.1.0"])
|
163
162
|
s.add_dependency(%q<rails>, [">= 3.1.0"])
|
164
|
-
s.add_dependency(%q<
|
163
|
+
s.add_dependency(%q<kramdown>, [">= 0"])
|
165
164
|
s.add_dependency(%q<mocha>, [">= 0"])
|
166
165
|
s.add_dependency(%q<timecop>, [">= 0"])
|
167
166
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
168
167
|
s.add_dependency(%q<bundler>, [">= 1.1.3"])
|
169
168
|
s.add_dependency(%q<capybara>, [">= 0.4.0"])
|
170
|
-
s.add_dependency(%q<sqlite3>, [">= 0"])
|
171
169
|
s.add_dependency(%q<launchy>, [">= 0"])
|
170
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
171
|
+
s.add_dependency(%q<activerecord-jdbcsqlite3-adapter>, [">= 0"])
|
172
172
|
s.add_dependency(%q<devise>, [">= 0"])
|
173
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
174
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
175
173
|
end
|
176
174
|
end
|
177
175
|
|
@@ -14,11 +14,38 @@ class ClientAppControllerTest < ActiveSupport::IntegrationCase
|
|
14
14
|
fill_in 'opro_oauth_client_app_name', :with => rand_name
|
15
15
|
|
16
16
|
click_button 'submitApp'
|
17
|
-
|
17
|
+
assert_match /oauth_client_apps\/\d*/, current_path
|
18
18
|
|
19
19
|
last_client = Opro::Oauth::ClientApp.order(:created_at).last
|
20
20
|
assert has_content?(last_client.name)
|
21
21
|
assert has_content?(last_client.client_id)
|
22
22
|
assert has_content?(last_client.client_secret)
|
23
23
|
end
|
24
|
+
|
25
|
+
test 'edit existing client application' do
|
26
|
+
app = create_client_app
|
27
|
+
as_user(app.user).visit oauth_client_app_path(app)
|
28
|
+
|
29
|
+
click_link "edit"
|
30
|
+
|
31
|
+
assert_equal edit_oauth_client_app_path(app), current_path
|
32
|
+
new_name = rand_name
|
33
|
+
old_name = app.name
|
34
|
+
refute new_name == old_name # smoke test
|
35
|
+
|
36
|
+
fill_in "opro_oauth_client_app_name", :with => new_name
|
37
|
+
click_button 'submitApp'
|
38
|
+
|
39
|
+
assert has_content?(new_name)
|
40
|
+
end
|
41
|
+
|
42
|
+
test 'index client applications' do
|
43
|
+
app = create_client_app
|
44
|
+
create_client_app(:user => app.user)
|
45
|
+
create_client_app(:user => app.user)
|
46
|
+
|
47
|
+
as_user(app.user).visit oauth_client_apps_path
|
48
|
+
assert_equal oauth_client_apps_path, current_path
|
49
|
+
end
|
50
|
+
|
24
51
|
end
|
@@ -15,4 +15,11 @@ class OproAuthGrantTest < ActiveSupport::TestCase
|
|
15
15
|
new_token = grant.unique_token_for(:access_token, token)
|
16
16
|
assert_not_equal token, new_token
|
17
17
|
end
|
18
|
+
|
19
|
+
test "no expiration without access_token expiration time" do
|
20
|
+
::Opro.require_refresh_within = nil
|
21
|
+
grant = create_auth_grant
|
22
|
+
::Opro.require_refresh_within = 1.day
|
23
|
+
refute grant.expired?
|
24
|
+
end
|
18
25
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
# Configure Rails Envinronment
|
2
2
|
ENV["RAILS_ENV"] = "test"
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
begin
|
5
|
+
if RUBY_VERSION >= "1.9"
|
6
|
+
require 'simplecov'
|
7
|
+
SimpleCov.start 'rails'
|
8
|
+
end
|
9
|
+
rescue LoadError => e
|
7
10
|
end
|
8
11
|
|
9
12
|
ENGINE_RAILS_ROOT=File.join(File.dirname(__FILE__), '../')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 3.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.1.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rails
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 3.1.0
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.1.0
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
|
-
name:
|
38
|
-
requirement:
|
47
|
+
name: kramdown
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: mocha
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: timecop
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: jeweler
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ~>
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: 1.6.4
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.6.4
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: bundler
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: 1.1.3
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.1.3
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: capybara
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,21 +133,15 @@ dependencies:
|
|
98
133
|
version: 0.4.0
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: sqlite3
|
104
|
-
requirement: &70236456032180 !ruby/object:Gem::Requirement
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
137
|
none: false
|
106
138
|
requirements:
|
107
139
|
- - ! '>='
|
108
140
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: *70236456032180
|
141
|
+
version: 0.4.0
|
113
142
|
- !ruby/object:Gem::Dependency
|
114
143
|
name: launchy
|
115
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
116
145
|
none: false
|
117
146
|
requirements:
|
118
147
|
- - ! '>='
|
@@ -120,10 +149,15 @@ dependencies:
|
|
120
149
|
version: '0'
|
121
150
|
type: :development
|
122
151
|
prerelease: false
|
123
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
124
158
|
- !ruby/object:Gem::Dependency
|
125
|
-
name:
|
126
|
-
requirement:
|
159
|
+
name: sqlite3
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
127
161
|
none: false
|
128
162
|
requirements:
|
129
163
|
- - ! '>='
|
@@ -131,10 +165,15 @@ dependencies:
|
|
131
165
|
version: '0'
|
132
166
|
type: :development
|
133
167
|
prerelease: false
|
134
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
135
174
|
- !ruby/object:Gem::Dependency
|
136
|
-
name:
|
137
|
-
requirement:
|
175
|
+
name: activerecord-jdbcsqlite3-adapter
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
138
177
|
none: false
|
139
178
|
requirements:
|
140
179
|
- - ! '>='
|
@@ -142,10 +181,15 @@ dependencies:
|
|
142
181
|
version: '0'
|
143
182
|
type: :development
|
144
183
|
prerelease: false
|
145
|
-
version_requirements:
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
146
190
|
- !ruby/object:Gem::Dependency
|
147
|
-
name:
|
148
|
-
requirement:
|
191
|
+
name: devise
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
149
193
|
none: false
|
150
194
|
requirements:
|
151
195
|
- - ! '>='
|
@@ -153,7 +197,12 @@ dependencies:
|
|
153
197
|
version: '0'
|
154
198
|
type: :development
|
155
199
|
prerelease: false
|
156
|
-
version_requirements:
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
157
206
|
description: ! ' Enable OAuth clients (iphone, android, web sites, etc.) to access
|
158
207
|
and use your Rails application, what you do with it is up to you'
|
159
208
|
email: richard.schneeman@gmail.com
|
@@ -179,9 +228,10 @@ files:
|
|
179
228
|
- app/models/opro/oauth/auth_grant.rb
|
180
229
|
- app/models/opro/oauth/client_app.rb
|
181
230
|
- app/views/opro/oauth/auth/new.html.erb
|
182
|
-
- app/views/opro/oauth/client_app/
|
231
|
+
- app/views/opro/oauth/client_app/edit.html.erb
|
183
232
|
- app/views/opro/oauth/client_app/index.html.erb
|
184
233
|
- app/views/opro/oauth/client_app/new.html.erb
|
234
|
+
- app/views/opro/oauth/client_app/show.html.erb
|
185
235
|
- app/views/opro/oauth/docs/index.html.erb
|
186
236
|
- app/views/opro/oauth/docs/markdown/curl.md.erb
|
187
237
|
- app/views/opro/oauth/docs/markdown/oauth.md.erb
|
@@ -280,7 +330,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
280
330
|
version: '0'
|
281
331
|
segments:
|
282
332
|
- 0
|
283
|
-
hash: -
|
333
|
+
hash: -3824248644036353497
|
284
334
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
285
335
|
none: false
|
286
336
|
requirements:
|
@@ -289,8 +339,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
289
339
|
version: '0'
|
290
340
|
requirements: []
|
291
341
|
rubyforge_project:
|
292
|
-
rubygems_version: 1.8.
|
342
|
+
rubygems_version: 1.8.24
|
293
343
|
signing_key:
|
294
344
|
specification_version: 3
|
295
|
-
summary:
|
345
|
+
summary: oPRO turns your Rails application into an OAuth Provider
|
296
346
|
test_files: []
|