vault-tools 0.3.7 → 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.2-p290
@@ -0,0 +1,31 @@
1
+ # Rake tasks for Shushu DB
2
+ #
3
+ # include in Rakefile via:
4
+ #
5
+ # require 'vault-tools/shushu_db_tasks'
6
+
7
+ desc "Pull db/structure.sql from shushu HEAD"
8
+ task :pull_shushu do
9
+ steps = []
10
+ steps << 'cd contrib/'
11
+ if File.exists?('contrib/shushu')
12
+ steps << 'rm -rf shushu'
13
+ end
14
+ steps << 'git clone -n git@github.com:heroku/shushud shushu --depth 1'
15
+ steps << 'cd shushu'
16
+ steps << 'git checkout HEAD db/*'
17
+ # make sure we don't submodule it
18
+ steps << 'rm -rf .git'
19
+ sh steps.join(' && ')
20
+ end
21
+
22
+ desc "Drop and create shushu-test database"
23
+ task :create_shushu_db => [:drop_shushu_db, :pull_shushu] do
24
+ sh 'createdb shushu-test'
25
+ sh 'cd contrib/shushu && ../../vendor/bin/sequel postgres:///shushu-test -m db/migrations'
26
+ end
27
+
28
+ desc "Drop the vault-usage-test, core-test and shushu-test databases"
29
+ task :drop_shushu_db do
30
+ sh 'dropdb shushu-test || true'
31
+ end
@@ -1,5 +1,5 @@
1
1
  module Vault
2
2
  module Tools
3
- VERSION = '0.3.7'
3
+ VERSION = '0.3.8'
4
4
  end
5
5
  end
@@ -9,6 +9,26 @@ module Vault
9
9
  super
10
10
  end
11
11
 
12
+ # HTTP Basic Auth Support
13
+ helpers do
14
+ # Protects an http method. Returns 401 Not Authorized response
15
+ # when authorized? returns false
16
+ def protected!
17
+ unless authorized?
18
+ response['WWW-Authenticate'] = %(Basic realm="Restricted Area")
19
+ throw(:halt, [401, "Not authorized\n"])
20
+ end
21
+ end
22
+
23
+ # Check request for HTTP Basic creds and
24
+ # password matches settings.basic_password
25
+ def authorized?
26
+ @auth ||= Rack::Auth::Basic::Request.new(request.env)
27
+ @auth.provided? && @auth.basic? && @auth.credentials &&
28
+ @auth.credentials[1] == settings.basic_password
29
+ end
30
+ end
31
+
12
32
  # Start timing the request.
13
33
  before do
14
34
  @start_request = Time.now
data/test/web_test.rb CHANGED
@@ -5,7 +5,7 @@ class WebTest < Vault::TestCase
5
5
 
6
6
  # Anonymous Web Frontend
7
7
  def app
8
- Class.new(Vault::Web)
8
+ @app ||= Class.new(Vault::Web)
9
9
  end
10
10
 
11
11
  # Always reload the web class to eliminate test leakage
@@ -14,6 +14,21 @@ class WebTest < Vault::TestCase
14
14
  reload_web!
15
15
  end
16
16
 
17
+ def test_http_basic_auth
18
+ app.set :basic_password, 'password'
19
+ app.get '/protected' do
20
+ protected!
21
+ 'OKIE'
22
+ end
23
+
24
+ get '/protected'
25
+ assert_equal 401, last_response.status
26
+ authorize('','password')
27
+ get '/protected'
28
+ assert_equal 200, last_response.status
29
+ assert_equal 'OKIE', last_response.body
30
+ end
31
+
17
32
  # Middleware is attached at load time, so we have to delete the Vault::Web
18
33
  # class and reload it to simulate being loaded with different environment
19
34
  # variables.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vault-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-04-30 00:00:00.000000000 Z
13
+ date: 2013-05-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: scrolls
@@ -103,6 +103,7 @@ extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
105
  - .gitignore
106
+ - .ruby-version
106
107
  - .yardopts
107
108
  - Gemfile
108
109
  - LICENSE.txt
@@ -117,6 +118,7 @@ files:
117
118
  - lib/vault-tools/payments_db_tasks.rb
118
119
  - lib/vault-tools/pipeline.rb
119
120
  - lib/vault-tools/product.rb
121
+ - lib/vault-tools/shushu_db_tasks.rb
120
122
  - lib/vault-tools/sinatra_helpers/html_serializer.rb
121
123
  - lib/vault-tools/user.rb
122
124
  - lib/vault-tools/version.rb
@@ -157,3 +159,4 @@ signing_key:
157
159
  specification_version: 3
158
160
  summary: Test classes, base web classes, and helpers - oh my!
159
161
  test_files: []
162
+ has_rdoc: