warden-googleapps 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,7 +1,60 @@
1
1
  warden-googleapps
2
2
  =================
3
3
 
4
- A Warden middleware for google apps
4
+ A Warden middleware for google apps. It needs a little work but definitely authenticates you just fine in Rack apps.
5
+
6
+ Example
7
+ =======
8
+
9
+ module DirectoryAdmin
10
+ class App < Sinatra::Default
11
+ disable :show_errors
12
+ disable :show_exceptions
13
+
14
+ use Warden::Manager do |manager|
15
+ manager.default_strategies :google_apps
16
+ manager.failure_app = BadAuthentication
17
+
18
+ manager.config[:google_apps_domain] = 'example.org'
19
+ end
20
+
21
+ helpers do
22
+ def ensure_authenticated
23
+ unless env['warden'].authenticate!
24
+ throw(:warden)
25
+ end
26
+ end
27
+
28
+ def user
29
+ env['warden'].user
30
+ end
31
+ end
32
+
33
+ get '/' do
34
+ ensure_authenticated
35
+ haml "%h2= 'Hello There, #{user.full_name}!'"
36
+ end
37
+
38
+ get '/logout' do
39
+ env['warden'].logout
40
+ haml "%h2= 'Peace!'"
41
+ end
42
+ end
43
+
44
+ class BadAuthentication < Sinatra::Default
45
+ get '/unauthenticated' do
46
+ status 403
47
+ haml "%h3= 'Unable to authenticate, sorry bud.'"
48
+ end
49
+ end
50
+ end
51
+
52
+
53
+ Enabling on Google
54
+ ==================
55
+ Be sure you have Federated Login using OpenID enabled under your Advanced Settings Tab
56
+
57
+ ![Your Google Apps Admin Dashboard](http://img.skitch.com/20100103-cdjtbyyw2xsbwya92r6gcd47hr.jpg "Check the box to enable")
5
58
 
6
59
  Developing
7
60
  ==========
data/Rakefile CHANGED
@@ -3,6 +3,8 @@ require 'rubygems/specification'
3
3
  require 'date'
4
4
  require 'bundler'
5
5
 
6
+ require 'lib/warden-googleapps/version'
7
+
6
8
  task :default => [:spec]
7
9
 
8
10
  require 'spec/rake/spectask'
@@ -18,12 +20,12 @@ Spec::Rake::SpecTask.new do |t|
18
20
  t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
19
21
  end
20
22
 
21
- GEM = "warden-googleapps"
22
- GEM_VERSION = "0.0.1"
23
- AUTHOR = "Corey Donohoe"
24
- EMAIL = "atmos@atmos.org"
25
- HOMEPAGE = "http://github.com/atmos/warden-googleapps"
26
- SUMMARY = "A warden strategy to use Google's Federated OpenID with Google Apps"
23
+ GEM = "warden-googleapps"
24
+ GEM_VERSION = Warden::GoogleApps::VERSION
25
+ AUTHOR = "Corey Donohoe"
26
+ EMAIL = "atmos@atmos.org"
27
+ HOMEPAGE = "http://github.com/atmos/warden-googleapps"
28
+ SUMMARY = "A warden strategy to use Google's Federated OpenID with Google Apps"
27
29
 
28
30
  spec = Gem::Specification.new do |s|
29
31
  s.name = GEM
@@ -57,4 +59,3 @@ task :make_spec do
57
59
  file.puts spec.to_ruby
58
60
  end
59
61
  end
60
-
@@ -12,5 +12,6 @@ module Warden
12
12
  end
13
13
 
14
14
  require File.dirname(__FILE__)+'/warden-googleapps/user'
15
+ require File.dirname(__FILE__)+'/warden-googleapps/version'
15
16
  require File.dirname(__FILE__)+'/warden-googleapps/strategy'
16
17
  require File.dirname(__FILE__)+'/warden-googleapps/gapps_openid'
@@ -38,9 +38,11 @@ Warden::Strategies.add(:google_apps) do
38
38
  ::OpenID::Store::Filesystem.new("#{Dir.tmpdir}/tmp/openid")
39
39
  end
40
40
 
41
+ def domain
42
+ env['warden'].config[:google_apps_domain]
43
+ end
44
+
41
45
  def open_id_endpoint
42
- # TODO Get this exposed properly via warden
43
- domain = env['warden'].instance_variable_get('@config')[:google_apps_domain]
44
46
  'https://www.google.com/accounts/o8/site-xrds?hd=%s' % domain
45
47
  end
46
48
 
@@ -0,0 +1,5 @@
1
+ module Warden
2
+ module GoogleApps
3
+ VERSION = "0.0.2"
4
+ end
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: warden-googleapps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Donohoe
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-02 00:00:00 -08:00
12
+ date: 2010-01-03 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -18,9 +18,9 @@ dependencies:
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
- - - ">="
21
+ - - ~>
22
22
  - !ruby/object:Gem::Version
23
- version: "0"
23
+ version: 0.7.0
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sinatra
@@ -38,7 +38,7 @@ dependencies:
38
38
  version_requirement:
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - "="
41
+ - - ~>
42
42
  - !ruby/object:Gem::Version
43
43
  version: 2.1.6
44
44
  version:
@@ -60,6 +60,7 @@ files:
60
60
  - lib/warden-googleapps/gapps_openid.rb
61
61
  - lib/warden-googleapps/strategy.rb
62
62
  - lib/warden-googleapps/user.rb
63
+ - lib/warden-googleapps/version.rb
63
64
  - lib/warden-googleapps.rb
64
65
  has_rdoc: true
65
66
  homepage: http://github.com/atmos/warden-googleapps