proxes 0.4.4 → 0.5.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 +4 -4
- data/Gemfile.ci +5 -2
- data/lib/proxes/controllers/component.rb +12 -4
- data/lib/proxes/controllers/users.rb +13 -0
- data/lib/proxes/forwarder.rb +7 -0
- data/lib/proxes/helpers/authentication.rb +1 -1
- data/lib/proxes/helpers/component.rb +0 -3
- data/lib/proxes/listener.rb +1 -0
- data/lib/proxes/models/audit_log.rb +2 -1
- data/lib/proxes/models/base.rb +7 -1
- data/lib/proxes/models/identity.rb +3 -1
- data/lib/proxes/models/permission.rb +3 -1
- data/lib/proxes/models/role.rb +3 -1
- data/lib/proxes/models/user.rb +3 -2
- data/lib/proxes/policies/user_policy.rb +1 -1
- data/lib/proxes/security.rb +5 -2
- data/lib/proxes/version.rb +1 -1
- data/proxes.gemspec +14 -13
- data/views/layout.haml +2 -1
- data/views/users/profile.haml +2 -1
- metadata +64 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b2307d1a51918d135d69e58913c1416dc5a7e99
|
4
|
+
data.tar.gz: 6a6c9798c68eca09df64e5c06433149ff084b357
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6df9bd467c07d6919cb6b7f9a28c32f6fb50b70baba309e294b77594e57e9b8f042c4385902773aacee6675596a3ac04cda0824db3e9c731e42b8da73b7a5429
|
7
|
+
data.tar.gz: 5dd4b6ad24059e81e1e643e712a438f5796ffa0680a56e2fa409655d252e07ce597651774ef7f816dbd212db50acec3f54fbaa4f31ee755687741ea77d50b548
|
data/Gemfile.ci
CHANGED
@@ -1,15 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
source 'https://rubygems.org'
|
2
3
|
|
3
|
-
# Specify your gem's dependencies in proxes.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
6
|
gem 'sqlite3'
|
7
|
-
gem 'simplecov'
|
7
|
+
gem 'simplecov', '~> 0.13.0'
|
8
8
|
gem 'codeclimate-test-reporter', '~> 1.0.0'
|
9
|
+
|
9
10
|
if RUBY_VERSION < '2.1'
|
11
|
+
gem 'sidekiq', '3.0.0'
|
10
12
|
gem 'activesupport', '<4.0.0'
|
11
13
|
gem 'omniauth', '~>1.4.2'
|
12
14
|
elsif RUBY_VERSION < '2.2.0'
|
15
|
+
gem 'sidekiq', '4.0.0'
|
13
16
|
gem 'activesupport', '<5.0.0'
|
14
17
|
else
|
15
18
|
gem 'activesupport'
|
@@ -11,6 +11,10 @@ module ProxES
|
|
11
11
|
set view_location: nil
|
12
12
|
set track_actions: false
|
13
13
|
|
14
|
+
before do
|
15
|
+
check_basic
|
16
|
+
end
|
17
|
+
|
14
18
|
# List
|
15
19
|
get '/', provides: [:html, :json] do
|
16
20
|
authorize settings.model_class, :list
|
@@ -25,11 +29,12 @@ module ProxES
|
|
25
29
|
locals: { list: list, title: heading(:list), actions: actions }
|
26
30
|
end
|
27
31
|
format.json do
|
32
|
+
# TODO: Add links defined by actions (New #{heading})
|
28
33
|
{
|
29
|
-
'items' => list.map(&:
|
34
|
+
'items' => list.map(&:for_json),
|
30
35
|
'page' => params[:page],
|
31
|
-
'count' =>
|
32
|
-
'total' =>
|
36
|
+
'count' => list.count,
|
37
|
+
'total' => dataset.count
|
33
38
|
}.to_json
|
34
39
|
end
|
35
40
|
end
|
@@ -82,7 +87,10 @@ module ProxES
|
|
82
87
|
haml :"#{view_location}/display",
|
83
88
|
locals: { entity: entity, title: heading, actions: actions }
|
84
89
|
end
|
85
|
-
format.json
|
90
|
+
format.json do
|
91
|
+
# TODO: Add links defined by actions (Edit #{heading})
|
92
|
+
entity.for_json.to_json
|
93
|
+
end
|
86
94
|
end
|
87
95
|
end
|
88
96
|
|
@@ -118,12 +118,25 @@ module ProxES
|
|
118
118
|
|
119
119
|
identity = entity.identity.first
|
120
120
|
|
121
|
+
unless params['password'] == params['password_confirmation']
|
122
|
+
flash[:warning] = 'Password didn\'t match'
|
123
|
+
return redirect back
|
124
|
+
end
|
125
|
+
|
126
|
+
unless current_user.super_admin? || identity.authenticate(params['old_password'])
|
127
|
+
log_action("#{dehumanized}_update_password_failed".to_sym) if settings.track_actions
|
128
|
+
flash[:danger] = 'Old Password didn\'t match'
|
129
|
+
return redirect back
|
130
|
+
end
|
131
|
+
|
121
132
|
values = permitted_attributes(Identity, :create)
|
122
133
|
identity.set values
|
123
134
|
if identity.valid? && identity.save
|
124
135
|
log_action("#{dehumanized}_update_password".to_sym) if settings.track_actions
|
125
136
|
flash[:success] = 'Password Updated'
|
126
137
|
redirect back
|
138
|
+
elsif current_user.super_admin?
|
139
|
+
haml :"#{view_location}/display", locals: { entity: entity, identity: identity, title: heading }
|
127
140
|
else
|
128
141
|
haml :"#{view_location}/profile", locals: { entity: entity, identity: identity, title: heading }
|
129
142
|
end
|
data/lib/proxes/forwarder.rb
CHANGED
@@ -15,6 +15,13 @@ module ProxES
|
|
15
15
|
full_path = source_request.fullpath == '' ? URI.parse(env['REQUEST_URI']).request_uri : source_request.fullpath
|
16
16
|
target_request = Net::HTTP.const_get(source_request.request_method.capitalize).new(full_path)
|
17
17
|
|
18
|
+
if target_request.request_body_permitted? && source_request.body
|
19
|
+
target_request.body_stream = source_request.body
|
20
|
+
target_request.content_length = source_request.content_length.to_i
|
21
|
+
target_request.content_type = source_request.content_type if source_request.content_type
|
22
|
+
target_request.body_stream.rewind
|
23
|
+
end
|
24
|
+
|
18
25
|
http = Net::HTTP.new(backend.host, backend.port)
|
19
26
|
target_response = http.request(target_request)
|
20
27
|
|
@@ -35,7 +35,7 @@ module ProxES
|
|
35
35
|
return unless auth.provided?
|
36
36
|
return unless auth.basic?
|
37
37
|
|
38
|
-
identity = ProxES::Identity.find(username: auth.credentials[0])
|
38
|
+
identity = ::ProxES::Identity.find(username: auth.credentials[0])
|
39
39
|
raise NotAuthenticated unless identity
|
40
40
|
self.current_user = identity.user if identity.authenticate(auth.credentials[1])
|
41
41
|
end
|
data/lib/proxes/listener.rb
CHANGED
@@ -8,6 +8,7 @@ module ProxES
|
|
8
8
|
|
9
9
|
def method_missing(method, *args)
|
10
10
|
vals = { action: method }
|
11
|
+
return unless args[0].is_a? Hash
|
11
12
|
vals[:user] = args[0][:user] if args[0] && args[0].key?(:user)
|
12
13
|
vals[:details] = args[0][:details] if args[0] && args[0].key?(:details)
|
13
14
|
@mutex.synchronize { AuditLog.create vals }
|
data/lib/proxes/models/base.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'bcrypt'
|
3
4
|
require 'proxes/models/base'
|
4
5
|
require 'omniauth-identity'
|
5
6
|
require 'active_support'
|
6
7
|
require 'active_support/core_ext/object/blank'
|
7
8
|
|
8
9
|
module ProxES
|
9
|
-
class Identity <
|
10
|
+
class Identity < Sequel::Model
|
11
|
+
include ProxES::Base
|
10
12
|
many_to_one :user
|
11
13
|
|
12
14
|
attr_accessor :password, :password_confirmation
|
data/lib/proxes/models/role.rb
CHANGED
data/lib/proxes/models/user.rb
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'proxes/models/base'
|
4
|
-
require 'bcrypt'
|
5
4
|
require 'digest/md5'
|
6
5
|
require 'active_support'
|
7
6
|
require 'active_support/core_ext/object/blank'
|
8
7
|
|
9
8
|
# Why not store this in Elasticsearch?
|
10
9
|
module ProxES
|
11
|
-
class User <
|
10
|
+
class User < Sequel::Model
|
11
|
+
include ProxES::Base
|
12
|
+
|
12
13
|
one_to_many :identity
|
13
14
|
many_to_many :roles
|
14
15
|
one_to_many :permissions
|
data/lib/proxes/security.rb
CHANGED
@@ -23,7 +23,7 @@ module ProxES
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def error(message, code = 500)
|
26
|
-
[code, { 'Content-Type' => 'application/json' }, ['{"error":"' + message + '}']]
|
26
|
+
[code, { 'Content-Type' => 'application/json' }, ['{"error":"' + message + '"}']]
|
27
27
|
end
|
28
28
|
|
29
29
|
def call(env)
|
@@ -52,7 +52,10 @@ module ProxES
|
|
52
52
|
logger.debug '================================================================================'
|
53
53
|
|
54
54
|
begin
|
55
|
-
|
55
|
+
start = Time.now.to_f
|
56
|
+
result = @app.call request.env
|
57
|
+
broadcast(:call_completed, endpoint: request.endpoint, duration: Time.now.to_f - start)
|
58
|
+
result
|
56
59
|
rescue Errno::EHOSTUNREACH
|
57
60
|
error 'Could not reach Elasticsearch at ' + ENV['ELASTICSEARCH_URL']
|
58
61
|
rescue Errno::ECONNREFUSED
|
data/lib/proxes/version.rb
CHANGED
data/proxes.gemspec
CHANGED
@@ -28,21 +28,22 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_development_dependency 'factory_girl'
|
29
29
|
spec.add_development_dependency 'timecop'
|
30
30
|
|
31
|
-
spec.add_dependency 'activesupport'
|
31
|
+
spec.add_dependency 'activesupport', '>= 3'
|
32
32
|
spec.add_dependency 'rake', '~> 10.0'
|
33
|
-
spec.add_dependency 'rack-contrib'
|
33
|
+
spec.add_dependency 'rack-contrib', '~> 1.4'
|
34
34
|
spec.add_dependency 'sinatra', '~> 1.0'
|
35
|
-
spec.add_dependency 'sinatra-flash'
|
36
|
-
spec.add_dependency 'sinatra-contrib'
|
37
|
-
spec.add_dependency 'elasticsearch'
|
38
|
-
spec.add_dependency 'logger'
|
39
|
-
spec.add_dependency 'pundit'
|
40
|
-
spec.add_dependency 'sequel'
|
41
|
-
spec.add_dependency 'bcrypt'
|
42
|
-
spec.add_dependency 'omniauth'
|
43
|
-
spec.add_dependency 'omniauth-identity'
|
35
|
+
spec.add_dependency 'sinatra-flash', '~> 0.3'
|
36
|
+
spec.add_dependency 'sinatra-contrib', '~> 1.0'
|
37
|
+
spec.add_dependency 'elasticsearch', '>= 2'
|
38
|
+
spec.add_dependency 'logger', '~> 1.0'
|
39
|
+
spec.add_dependency 'pundit', '~> 1.0'
|
40
|
+
spec.add_dependency 'sequel', '~> 4.0'
|
41
|
+
spec.add_dependency 'bcrypt', '~> 3.0'
|
42
|
+
spec.add_dependency 'omniauth', '~> 1.0'
|
43
|
+
spec.add_dependency 'omniauth-identity', '~> 1.0'
|
44
|
+
spec.add_dependency 'omniauth-http-basic', '~> 1.0'
|
44
45
|
spec.add_dependency 'haml', '~> 4.0'
|
45
|
-
spec.add_dependency 'wisper'
|
46
|
-
spec.add_dependency 'highline'
|
46
|
+
spec.add_dependency 'wisper', '~> 2.0'
|
47
|
+
spec.add_dependency 'highline', '~> 1.7'
|
47
48
|
spec.add_dependency 'tilt', '>= 2'
|
48
49
|
end
|
data/views/layout.haml
CHANGED
@@ -22,6 +22,7 @@
|
|
22
22
|
/[if lt IE 9] <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
|
23
23
|
/[if lt IE 9] <script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
|
24
24
|
|
25
|
+
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js' }
|
25
26
|
%body
|
26
27
|
#wrapper
|
27
28
|
= haml :'partials/navbar', locals: { title: (defined?(title) ? title : 'ProxES') }
|
@@ -43,9 +44,9 @@
|
|
43
44
|
|
44
45
|
|
45
46
|
/ Placed at the end of the document so the pages load faster
|
46
|
-
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js' }
|
47
47
|
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/startbootstrap-sb-admin-2/3.3.7+1/js/sb-admin-2.min.js' }
|
48
48
|
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/metisMenu/2.5.2/metisMenu.min.js' }
|
49
49
|
%script{ type: 'text/javascript', src: 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js' }
|
50
50
|
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/react/15.4.1/react.min.js' }
|
51
|
+
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.bundle.min.js' }
|
51
52
|
%script{ type: 'text/javascript', src: '/_proxes/js/bundle.js' }
|
data/views/users/profile.haml
CHANGED
@@ -31,7 +31,8 @@
|
|
31
31
|
.panel-body
|
32
32
|
%form.form-horizontal{ method: 'post', action: "#{base_path}/#{entity.id}/identity" }
|
33
33
|
%input{ name: '_method', value: 'PUT', type: 'hidden' }
|
34
|
-
= form_control(:
|
34
|
+
= form_control(:old_password, identity, type: 'password', placeholder: 'Your current password')
|
35
|
+
= form_control(:password, identity, type: 'password', placeholder: 'Your new password')
|
35
36
|
= form_control(:password_confirmation, identity, type: 'password', label: 'Confirm Password', placeholder: 'Confirm your password')
|
36
37
|
%button.btn.btn-primary{ type: 'submit' }
|
37
38
|
Change Password
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: proxes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jurgens du Toit
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '3'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '3'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rake
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,16 +140,16 @@ dependencies:
|
|
140
140
|
name: rack-contrib
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
145
|
+
version: '1.4'
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - "
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
152
|
+
version: '1.4'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: sinatra
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -168,128 +168,142 @@ dependencies:
|
|
168
168
|
name: sinatra-flash
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - "
|
171
|
+
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
173
|
+
version: '0.3'
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- - "
|
178
|
+
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
180
|
+
version: '0.3'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: sinatra-contrib
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- - "
|
185
|
+
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: '0'
|
187
|
+
version: '1.0'
|
188
188
|
type: :runtime
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- - "
|
192
|
+
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: '0'
|
194
|
+
version: '1.0'
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: elasticsearch
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
199
|
- - ">="
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: '
|
201
|
+
version: '2'
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - ">="
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: '
|
208
|
+
version: '2'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: logger
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
|
-
- - "
|
213
|
+
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
215
|
+
version: '1.0'
|
216
216
|
type: :runtime
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
|
-
- - "
|
220
|
+
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: '0'
|
222
|
+
version: '1.0'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: pundit
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
|
-
- - "
|
227
|
+
- - "~>"
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: '0'
|
229
|
+
version: '1.0'
|
230
230
|
type: :runtime
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
|
-
- - "
|
234
|
+
- - "~>"
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: '0'
|
236
|
+
version: '1.0'
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: sequel
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
240
240
|
requirements:
|
241
|
-
- - "
|
241
|
+
- - "~>"
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version: '0'
|
243
|
+
version: '4.0'
|
244
244
|
type: :runtime
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
|
-
- - "
|
248
|
+
- - "~>"
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: '0'
|
250
|
+
version: '4.0'
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
252
|
name: bcrypt
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|
254
254
|
requirements:
|
255
|
-
- - "
|
255
|
+
- - "~>"
|
256
256
|
- !ruby/object:Gem::Version
|
257
|
-
version: '0'
|
257
|
+
version: '3.0'
|
258
258
|
type: :runtime
|
259
259
|
prerelease: false
|
260
260
|
version_requirements: !ruby/object:Gem::Requirement
|
261
261
|
requirements:
|
262
|
-
- - "
|
262
|
+
- - "~>"
|
263
263
|
- !ruby/object:Gem::Version
|
264
|
-
version: '0'
|
264
|
+
version: '3.0'
|
265
265
|
- !ruby/object:Gem::Dependency
|
266
266
|
name: omniauth
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
268
268
|
requirements:
|
269
|
-
- - "
|
269
|
+
- - "~>"
|
270
270
|
- !ruby/object:Gem::Version
|
271
|
-
version: '0'
|
271
|
+
version: '1.0'
|
272
272
|
type: :runtime
|
273
273
|
prerelease: false
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
|
-
- - "
|
276
|
+
- - "~>"
|
277
277
|
- !ruby/object:Gem::Version
|
278
|
-
version: '0'
|
278
|
+
version: '1.0'
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: omniauth-identity
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
282
282
|
requirements:
|
283
|
-
- - "
|
283
|
+
- - "~>"
|
284
284
|
- !ruby/object:Gem::Version
|
285
|
-
version: '0'
|
285
|
+
version: '1.0'
|
286
286
|
type: :runtime
|
287
287
|
prerelease: false
|
288
288
|
version_requirements: !ruby/object:Gem::Requirement
|
289
289
|
requirements:
|
290
|
-
- - "
|
290
|
+
- - "~>"
|
291
291
|
- !ruby/object:Gem::Version
|
292
|
-
version: '0'
|
292
|
+
version: '1.0'
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: omniauth-http-basic
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - "~>"
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '1.0'
|
300
|
+
type: :runtime
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - "~>"
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '1.0'
|
293
307
|
- !ruby/object:Gem::Dependency
|
294
308
|
name: haml
|
295
309
|
requirement: !ruby/object:Gem::Requirement
|
@@ -308,30 +322,30 @@ dependencies:
|
|
308
322
|
name: wisper
|
309
323
|
requirement: !ruby/object:Gem::Requirement
|
310
324
|
requirements:
|
311
|
-
- - "
|
325
|
+
- - "~>"
|
312
326
|
- !ruby/object:Gem::Version
|
313
|
-
version: '0'
|
327
|
+
version: '2.0'
|
314
328
|
type: :runtime
|
315
329
|
prerelease: false
|
316
330
|
version_requirements: !ruby/object:Gem::Requirement
|
317
331
|
requirements:
|
318
|
-
- - "
|
332
|
+
- - "~>"
|
319
333
|
- !ruby/object:Gem::Version
|
320
|
-
version: '0'
|
334
|
+
version: '2.0'
|
321
335
|
- !ruby/object:Gem::Dependency
|
322
336
|
name: highline
|
323
337
|
requirement: !ruby/object:Gem::Requirement
|
324
338
|
requirements:
|
325
|
-
- - "
|
339
|
+
- - "~>"
|
326
340
|
- !ruby/object:Gem::Version
|
327
|
-
version: '
|
341
|
+
version: '1.7'
|
328
342
|
type: :runtime
|
329
343
|
prerelease: false
|
330
344
|
version_requirements: !ruby/object:Gem::Requirement
|
331
345
|
requirements:
|
332
|
-
- - "
|
346
|
+
- - "~>"
|
333
347
|
- !ruby/object:Gem::Version
|
334
|
-
version: '
|
348
|
+
version: '1.7'
|
335
349
|
- !ruby/object:Gem::Dependency
|
336
350
|
name: tilt
|
337
351
|
requirement: !ruby/object:Gem::Requirement
|