sorcery 0.1.4 → 0.3.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.
Files changed (113) hide show
  1. data/Gemfile +4 -2
  2. data/Gemfile.lock +16 -13
  3. data/README.rdoc +149 -78
  4. data/Rakefile +5 -0
  5. data/VERSION +1 -1
  6. data/lib/generators/sorcery_migration/sorcery_migration_generator.rb +24 -0
  7. data/lib/generators/sorcery_migration/templates/activity_logging.rb +17 -0
  8. data/lib/generators/sorcery_migration/templates/brute_force_protection.rb +11 -0
  9. data/lib/generators/sorcery_migration/templates/core.rb +16 -0
  10. data/lib/generators/sorcery_migration/templates/external.rb +14 -0
  11. data/lib/generators/sorcery_migration/templates/remember_me.rb +15 -0
  12. data/lib/generators/sorcery_migration/templates/reset_password.rb +13 -0
  13. data/lib/generators/sorcery_migration/templates/user_activation.rb +17 -0
  14. data/lib/sorcery/controller/adapters/sinatra.rb +97 -0
  15. data/lib/sorcery/controller/submodules/activity_logging.rb +20 -7
  16. data/lib/sorcery/controller/submodules/brute_force_protection.rb +9 -2
  17. data/lib/sorcery/controller/submodules/email.rb +44 -0
  18. data/lib/sorcery/controller/submodules/external/protocols/oauth1.rb +35 -0
  19. data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +26 -0
  20. data/lib/sorcery/controller/submodules/external/providers/facebook.rb +82 -0
  21. data/lib/sorcery/controller/submodules/external/providers/twitter.rb +86 -0
  22. data/lib/sorcery/controller/submodules/external.rb +83 -0
  23. data/lib/sorcery/controller/submodules/http_basic_auth.rb +18 -9
  24. data/lib/sorcery/controller/submodules/oauth.rb +95 -0
  25. data/lib/sorcery/controller/submodules/remember_me.rb +14 -5
  26. data/lib/sorcery/controller/submodules/session_timeout.rb +6 -1
  27. data/lib/sorcery/controller.rb +30 -16
  28. data/lib/sorcery/engine.rb +9 -2
  29. data/lib/sorcery/model/submodules/activity_logging.rb +13 -8
  30. data/lib/sorcery/model/submodules/brute_force_protection.rb +11 -8
  31. data/lib/sorcery/model/submodules/external.rb +53 -0
  32. data/lib/sorcery/model/submodules/remember_me.rb +5 -3
  33. data/lib/sorcery/model/submodules/reset_password.rb +16 -13
  34. data/lib/sorcery/model/submodules/user_activation.rb +38 -19
  35. data/lib/sorcery/model/temporary_token.rb +22 -0
  36. data/lib/sorcery/model.rb +17 -7
  37. data/lib/sorcery/sinatra.rb +14 -0
  38. data/lib/sorcery/test_helpers/rails.rb +57 -0
  39. data/lib/sorcery/test_helpers/sinatra.rb +131 -0
  40. data/lib/sorcery/test_helpers.rb +40 -0
  41. data/lib/sorcery.rb +22 -0
  42. data/sorcery.gemspec +146 -41
  43. data/spec/Gemfile +3 -2
  44. data/spec/Gemfile.lock +15 -2
  45. data/spec/rails3/app_root/.rspec +1 -0
  46. data/spec/rails3/{Gemfile → app_root/Gemfile} +4 -4
  47. data/spec/rails3/{Gemfile.lock → app_root/Gemfile.lock} +23 -3
  48. data/spec/rails3/app_root/app/controllers/application_controller.rb +42 -1
  49. data/spec/rails3/app_root/app/models/authentication.rb +3 -0
  50. data/spec/rails3/app_root/app/models/user.rb +4 -1
  51. data/spec/rails3/app_root/config/application.rb +1 -3
  52. data/spec/rails3/app_root/config/routes.rb +1 -10
  53. data/spec/rails3/app_root/db/migrate/activation/20101224223622_add_activation_to_users.rb +6 -4
  54. data/spec/rails3/app_root/db/migrate/core/20101224223620_create_users.rb +4 -4
  55. data/spec/rails3/app_root/db/migrate/external/20101224223628_create_authentications.rb +14 -0
  56. data/spec/rails3/{controller_activity_logging_spec.rb → app_root/spec/controller_activity_logging_spec.rb} +13 -13
  57. data/spec/rails3/{controller_brute_force_protection_spec.rb → app_root/spec/controller_brute_force_protection_spec.rb} +16 -6
  58. data/spec/rails3/{controller_http_basic_auth_spec.rb → app_root/spec/controller_http_basic_auth_spec.rb} +3 -3
  59. data/spec/rails3/app_root/spec/controller_oauth2_spec.rb +119 -0
  60. data/spec/rails3/app_root/spec/controller_oauth_spec.rb +122 -0
  61. data/spec/rails3/{controller_remember_me_spec.rb → app_root/spec/controller_remember_me_spec.rb} +4 -4
  62. data/spec/rails3/{controller_session_timeout_spec.rb → app_root/spec/controller_session_timeout_spec.rb} +6 -6
  63. data/spec/rails3/{controller_spec.rb → app_root/spec/controller_spec.rb} +20 -13
  64. data/spec/rails3/app_root/spec/spec_helper.orig.rb +27 -0
  65. data/spec/rails3/app_root/spec/spec_helper.rb +62 -0
  66. data/spec/rails3/{user_activation_spec.rb → app_root/spec/user_activation_spec.rb} +60 -20
  67. data/spec/rails3/{user_activity_logging_spec.rb → app_root/spec/user_activity_logging_spec.rb} +4 -4
  68. data/spec/rails3/{user_brute_force_protection_spec.rb → app_root/spec/user_brute_force_protection_spec.rb} +7 -7
  69. data/spec/rails3/app_root/spec/user_oauth_spec.rb +39 -0
  70. data/spec/rails3/{user_remember_me_spec.rb → app_root/spec/user_remember_me_spec.rb} +4 -4
  71. data/spec/rails3/{user_reset_password_spec.rb → app_root/spec/user_reset_password_spec.rb} +21 -41
  72. data/spec/rails3/app_root/spec/user_spec.rb +317 -0
  73. data/spec/sinatra/Gemfile +12 -0
  74. data/spec/sinatra/Gemfile.lock +134 -0
  75. data/spec/sinatra/Rakefile +10 -0
  76. data/spec/sinatra/authentication.rb +3 -0
  77. data/spec/sinatra/db/migrate/activation/20101224223622_add_activation_to_users.rb +17 -0
  78. data/spec/sinatra/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +17 -0
  79. data/spec/sinatra/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +11 -0
  80. data/spec/sinatra/db/migrate/core/20101224223620_create_users.rb +16 -0
  81. data/spec/sinatra/db/migrate/external/20101224223628_create_authentications.rb +14 -0
  82. data/spec/sinatra/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +15 -0
  83. data/spec/sinatra/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +13 -0
  84. data/spec/sinatra/filters.rb +21 -0
  85. data/spec/sinatra/myapp.rb +133 -0
  86. data/spec/sinatra/sorcery_mailer.rb +25 -0
  87. data/spec/sinatra/spec/controller_activity_logging_spec.rb +85 -0
  88. data/spec/sinatra/spec/controller_brute_force_protection_spec.rb +69 -0
  89. data/spec/sinatra/spec/controller_http_basic_auth_spec.rb +53 -0
  90. data/spec/sinatra/spec/controller_oauth2_spec.rb +119 -0
  91. data/spec/sinatra/spec/controller_oauth_spec.rb +121 -0
  92. data/spec/sinatra/spec/controller_remember_me_spec.rb +64 -0
  93. data/spec/sinatra/spec/controller_session_timeout_spec.rb +52 -0
  94. data/spec/sinatra/spec/controller_spec.rb +120 -0
  95. data/spec/sinatra/spec/spec.opts +4 -0
  96. data/spec/sinatra/spec/spec_helper.rb +44 -0
  97. data/spec/sinatra/spec/user_activation_spec.rb +188 -0
  98. data/spec/sinatra/spec/user_activity_logging_spec.rb +36 -0
  99. data/spec/sinatra/spec/user_brute_force_protection_spec.rb +76 -0
  100. data/spec/sinatra/spec/user_oauth_spec.rb +39 -0
  101. data/spec/sinatra/spec/user_remember_me_spec.rb +66 -0
  102. data/spec/sinatra/spec/user_reset_password_spec.rb +178 -0
  103. data/spec/{rails3 → sinatra/spec}/user_spec.rb +68 -38
  104. data/spec/sinatra/user.rb +6 -0
  105. data/spec/sinatra/views/test_login.erb +4 -0
  106. data/spec/untitled folder +18 -0
  107. metadata +203 -58
  108. data/spec/rails3/app_root/test/fixtures/users.yml +0 -9
  109. data/spec/rails3/app_root/test/performance/browsing_test.rb +0 -9
  110. data/spec/rails3/app_root/test/test_helper.rb +0 -13
  111. data/spec/rails3/app_root/test/unit/user_test.rb +0 -8
  112. data/spec/rails3/spec_helper.rb +0 -135
  113. /data/spec/rails3/{Rakefile → app_root/Rakefile} +0 -0
@@ -0,0 +1,57 @@
1
+ module Sorcery
2
+ module TestHelpers
3
+ module Rails
4
+ SUBMODUELS_AUTO_ADDED_CONTROLLER_FILTERS = [:register_last_activity_time_to_db, :deny_banned_user, :validate_session]
5
+
6
+ def sorcery_reload!(submodules = [], options = {})
7
+ reload_user_class
8
+
9
+ # return to no-module configuration
10
+ ::Sorcery::Controller::Config.init!
11
+ ::Sorcery::Controller::Config.reset!
12
+
13
+ # remove all plugin before_filters so they won't fail other tests.
14
+ # I don't like this way, but I didn't find another.
15
+ # hopefully it won't break until Rails 4.
16
+ ApplicationController._process_action_callbacks.delete_if {|c| SUBMODUELS_AUTO_ADDED_CONTROLLER_FILTERS.include?(c.filter) }
17
+
18
+ # configure
19
+ ::Sorcery::Controller::Config.submodules = submodules
20
+ ::Sorcery::Controller::Config.user_class = nil
21
+ ActionController::Base.send(:include,::Sorcery::Controller)
22
+
23
+ User.activate_sorcery! do |config|
24
+ options.each do |property,value|
25
+ config.send(:"#{property}=", value)
26
+ end
27
+ end
28
+ end
29
+
30
+ def sorcery_controller_property_set(property, value)
31
+ ApplicationController.activate_sorcery! do |config|
32
+ config.send(:"#{property}=", value)
33
+ end
34
+ end
35
+
36
+ def sorcery_controller_oauth_property_set(provider, property, value)
37
+ ApplicationController.activate_sorcery! do |config|
38
+ config.send(provider).send(:"#{property}=", value)
39
+ end
40
+ end
41
+
42
+ def login_user(user = nil)
43
+ user ||= @user
44
+ subject.send(:login_user,user)
45
+ subject.send(:after_login!,user,[user.username,'secret'])
46
+ end
47
+
48
+ def logout_user
49
+ subject.send(:logout)
50
+ end
51
+
52
+ def clear_user_without_logout
53
+ subject.instance_variable_set(:@current_user,nil)
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,131 @@
1
+ module Sorcery
2
+ module TestHelpers
3
+ module Sinatra
4
+
5
+ class MyApp
6
+ class << self
7
+ def new
8
+ return this
9
+ end
10
+ end
11
+ end
12
+
13
+ class ::Sinatra::Application
14
+ class << self
15
+ attr_accessor :sorcery_vars
16
+ end
17
+ @sorcery_vars = {}
18
+
19
+ # NOTE: see before and after test filters in filters.rb
20
+
21
+ def save_instance_vars
22
+ instance_variables.each do |var|
23
+ self.class.sorcery_vars[:"#{var.to_s.delete("@")}"] = instance_variable_get(var)
24
+ end
25
+ end
26
+ end
27
+
28
+ ::RSpec::Matchers.define :redirect_to do |expected|
29
+ match do |actual|
30
+ actual.status == 302 && actual.location == expected
31
+ end
32
+ end
33
+
34
+ def get_sinatra_app(app)
35
+ while app.class != ::Sinatra::Application do
36
+ app = app.instance_variable_get(:@app)
37
+ end
38
+ app
39
+ end
40
+
41
+ def login_user(user=nil)
42
+ user ||= @user
43
+ get_sinatra_app(subject).send(:login_user,user)
44
+ get_sinatra_app(subject).send(:after_login!,user,[user.username,'secret'])
45
+ end
46
+
47
+ def logout_user
48
+ get_sinatra_app(subject).send(:logout)
49
+ end
50
+
51
+ def clear_user_without_logout
52
+ get_sinatra_app(subject).instance_variable_set(:@current_user,nil)
53
+ end
54
+
55
+ def assigns
56
+ ::Sinatra::Application.sorcery_vars
57
+ end
58
+
59
+ class SessionData
60
+ def initialize(cookies)
61
+ @cookies = cookies
62
+ @data = cookies['rack.session']
63
+ if @data
64
+ @data = @data.unpack("m*").first
65
+ @data = Marshal.load(@data)
66
+ else
67
+ @data = {}
68
+ end
69
+ end
70
+
71
+ def [](key)
72
+ @data[key]
73
+ end
74
+
75
+ def []=(key, value)
76
+ @data[key] = value
77
+ session_data = Marshal.dump(@data)
78
+ session_data = [session_data].pack("m*")
79
+ @cookies.merge("rack.session=#{Rack::Utils.escape(session_data)}", URI.parse("//example.org//"))
80
+ raise "session variable not set" unless @cookies['rack.session'] == session_data
81
+ end
82
+ end
83
+
84
+ def session
85
+ SessionData.new(rack_test_session.instance_variable_get(:@rack_mock_session).cookie_jar)
86
+ end
87
+
88
+ def cookies
89
+ rack_test_session.instance_variable_get(:@rack_mock_session).cookie_jar
90
+ end
91
+
92
+ def sorcery_reload!(submodules = [], options = {})
93
+ reload_user_class
94
+
95
+ # return to no-module configuration
96
+ ::Sorcery::Controller::Config.init!
97
+ ::Sorcery::Controller::Config.reset!
98
+
99
+ # clear all filters
100
+ ::Sinatra::Application.instance_variable_set(:@filters,{:before => [],:after => []})
101
+ ::Sinatra::Application.class_eval do
102
+ load File.join(File.dirname(__FILE__),'..','..','..','spec','sinatra','filters.rb')
103
+ end
104
+
105
+ # configure
106
+ ::Sorcery::Controller::Config.submodules = submodules
107
+ ::Sorcery::Controller::Config.user_class = nil
108
+ ::Sinatra::Application.send(:include, Sorcery::Controller::Adapters::Sinatra)
109
+ ::Sinatra::Application.send(:include, Sorcery::Controller)
110
+
111
+ User.activate_sorcery! do |config|
112
+ options.each do |property,value|
113
+ config.send(:"#{property}=", value)
114
+ end
115
+ end
116
+ end
117
+
118
+ def sorcery_controller_property_set(property, value)
119
+ ::Sinatra::Application.activate_sorcery! do |config|
120
+ config.send(:"#{property}=", value)
121
+ end
122
+ end
123
+
124
+ def sorcery_controller_oauth_property_set(provider, property, value)
125
+ ::Sinatra::Application.activate_sorcery! do |config|
126
+ config.send(provider).send(:"#{property}=", value)
127
+ end
128
+ end
129
+ end
130
+ end
131
+ end
@@ -0,0 +1,40 @@
1
+ module Sorcery
2
+ module TestHelpers
3
+ # a patch to fix a bug in testing that happens when you 'destroy' a session twice.
4
+ # After the first destroy, the session is an ordinary hash, and then when destroy is called again there's an exception.
5
+ class ::Hash
6
+ def destroy
7
+ clear
8
+ end
9
+ end
10
+
11
+ def create_new_user(attributes_hash = nil)
12
+ user_attributes_hash = attributes_hash || {:username => 'gizmo', :email => "bla@bla.com", :password => 'secret'}
13
+ @user = User.new(user_attributes_hash)
14
+ @user.save!
15
+ @user
16
+ end
17
+
18
+ def create_new_external_user(provider, attributes_hash = nil)
19
+ user_attributes_hash = attributes_hash || {:username => 'gizmo', :authentications_attributes => [{:provider => provider, :uid => 123}]}
20
+ @user = User.new(user_attributes_hash)
21
+ @user.save!
22
+ @user
23
+ end
24
+
25
+ def sorcery_model_property_set(property, *values)
26
+ User.class_eval do
27
+ sorcery_config.send(:"#{property}=", *values)
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ # reload user class between specs
34
+ # so it will be possible to test the different submodules in isolation
35
+ def reload_user_class
36
+ Object.send(:remove_const,:User)
37
+ load 'user.rb'
38
+ end
39
+ end
40
+ end
data/lib/sorcery.rb CHANGED
@@ -1,12 +1,14 @@
1
1
  module Sorcery
2
2
  autoload :Model, 'sorcery/model'
3
3
  module Model
4
+ autoload :TemporaryToken, 'sorcery/model/temporary_token'
4
5
  module Submodules
5
6
  autoload :UserActivation, 'sorcery/model/submodules/user_activation'
6
7
  autoload :ResetPassword, 'sorcery/model/submodules/reset_password'
7
8
  autoload :RememberMe, 'sorcery/model/submodules/remember_me'
8
9
  autoload :ActivityLogging, 'sorcery/model/submodules/activity_logging'
9
10
  autoload :BruteForceProtection, 'sorcery/model/submodules/brute_force_protection'
11
+ autoload :External, 'sorcery/model/submodules/external'
10
12
  end
11
13
  end
12
14
  autoload :Controller, 'sorcery/controller'
@@ -17,6 +19,20 @@ module Sorcery
17
19
  autoload :BruteForceProtection, 'sorcery/controller/submodules/brute_force_protection'
18
20
  autoload :HttpBasicAuth, 'sorcery/controller/submodules/http_basic_auth'
19
21
  autoload :ActivityLogging, 'sorcery/controller/submodules/activity_logging'
22
+ autoload :External, 'sorcery/controller/submodules/external'
23
+ module External
24
+ module Protocols
25
+ autoload :Oauth1, 'sorcery/controller/submodules/external/protocols/oauth1'
26
+ autoload :Oauth2, 'sorcery/controller/submodules/external/protocols/oauth2'
27
+ end
28
+ module Providers
29
+ autoload :Twitter, 'sorcery/controller/submodules/external/providers/twitter'
30
+ autoload :Facebook, 'sorcery/controller/submodules/external/providers/facebook'
31
+ end
32
+ end
33
+ end
34
+ module Adapters
35
+ autoload :Sinatra, 'sorcery/controller/adapters/sinatra'
20
36
  end
21
37
  end
22
38
  module CryptoProviders
@@ -27,6 +43,12 @@ module Sorcery
27
43
  autoload :SHA256, 'sorcery/crypto_providers/sha256'
28
44
  autoload :SHA512, 'sorcery/crypto_providers/sha512'
29
45
  end
46
+ autoload :TestHelpers, 'sorcery/test_helpers'
47
+ module TestHelpers
48
+ autoload :Rails, 'sorcery/test_helpers/rails'
49
+ autoload :Sinatra, 'sorcery/test_helpers/sinatra'
50
+ end
30
51
 
31
52
  require 'sorcery/engine' if defined?(Rails) && Rails::VERSION::MAJOR == 3
53
+ require 'sorcery/sinatra' if defined?(Sinatra)
32
54
  end
data/sorcery.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sorcery}
8
- s.version = "0.1.4"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Noam Ben Ari"]
12
- s.date = %q{2011-02-19}
12
+ s.date = %q{2011-04-17}
13
13
  s.description = %q{Provides common authentication needs such as signing in/out, activating by email and resetting password.}
14
14
  s.email = %q{nbenari@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -25,11 +25,27 @@ Gem::Specification.new do |s|
25
25
  "README.rdoc",
26
26
  "Rakefile",
27
27
  "VERSION",
28
+ "lib/generators/sorcery_migration/sorcery_migration_generator.rb",
29
+ "lib/generators/sorcery_migration/templates/activity_logging.rb",
30
+ "lib/generators/sorcery_migration/templates/brute_force_protection.rb",
31
+ "lib/generators/sorcery_migration/templates/core.rb",
32
+ "lib/generators/sorcery_migration/templates/external.rb",
33
+ "lib/generators/sorcery_migration/templates/remember_me.rb",
34
+ "lib/generators/sorcery_migration/templates/reset_password.rb",
35
+ "lib/generators/sorcery_migration/templates/user_activation.rb",
28
36
  "lib/sorcery.rb",
29
37
  "lib/sorcery/controller.rb",
38
+ "lib/sorcery/controller/adapters/sinatra.rb",
30
39
  "lib/sorcery/controller/submodules/activity_logging.rb",
31
40
  "lib/sorcery/controller/submodules/brute_force_protection.rb",
41
+ "lib/sorcery/controller/submodules/email.rb",
42
+ "lib/sorcery/controller/submodules/external.rb",
43
+ "lib/sorcery/controller/submodules/external/protocols/oauth1.rb",
44
+ "lib/sorcery/controller/submodules/external/protocols/oauth2.rb",
45
+ "lib/sorcery/controller/submodules/external/providers/facebook.rb",
46
+ "lib/sorcery/controller/submodules/external/providers/twitter.rb",
32
47
  "lib/sorcery/controller/submodules/http_basic_auth.rb",
48
+ "lib/sorcery/controller/submodules/oauth.rb",
33
49
  "lib/sorcery/controller/submodules/remember_me.rb",
34
50
  "lib/sorcery/controller/submodules/session_timeout.rb",
35
51
  "lib/sorcery/crypto_providers/aes256.rb",
@@ -42,23 +58,31 @@ Gem::Specification.new do |s|
42
58
  "lib/sorcery/model.rb",
43
59
  "lib/sorcery/model/submodules/activity_logging.rb",
44
60
  "lib/sorcery/model/submodules/brute_force_protection.rb",
61
+ "lib/sorcery/model/submodules/external.rb",
45
62
  "lib/sorcery/model/submodules/remember_me.rb",
46
63
  "lib/sorcery/model/submodules/reset_password.rb",
47
64
  "lib/sorcery/model/submodules/user_activation.rb",
65
+ "lib/sorcery/model/temporary_token.rb",
66
+ "lib/sorcery/sinatra.rb",
67
+ "lib/sorcery/test_helpers.rb",
68
+ "lib/sorcery/test_helpers/rails.rb",
69
+ "lib/sorcery/test_helpers/sinatra.rb",
48
70
  "sorcery.gemspec",
49
71
  "spec/Gemfile",
50
72
  "spec/Gemfile.lock",
51
73
  "spec/Rakefile",
52
74
  "spec/rails3/.rspec",
53
- "spec/rails3/Gemfile",
54
- "spec/rails3/Gemfile.lock",
55
- "spec/rails3/Rakefile",
56
75
  "spec/rails3/app_root/.gitignore",
76
+ "spec/rails3/app_root/.rspec",
77
+ "spec/rails3/app_root/Gemfile",
78
+ "spec/rails3/app_root/Gemfile.lock",
57
79
  "spec/rails3/app_root/README",
80
+ "spec/rails3/app_root/Rakefile",
58
81
  "spec/rails3/app_root/Rakefile.unused",
59
82
  "spec/rails3/app_root/app/controllers/application_controller.rb",
60
83
  "spec/rails3/app_root/app/helpers/application_helper.rb",
61
84
  "spec/rails3/app_root/app/mailers/sorcery_mailer.rb",
85
+ "spec/rails3/app_root/app/models/authentication.rb",
62
86
  "spec/rails3/app_root/app/models/user.rb",
63
87
  "spec/rails3/app_root/app/views/layouts/application.html.erb",
64
88
  "spec/rails3/app_root/app/views/sorcery_mailer/activation_email.html.erb",
@@ -87,6 +111,7 @@ Gem::Specification.new do |s|
87
111
  "spec/rails3/app_root/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
88
112
  "spec/rails3/app_root/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb",
89
113
  "spec/rails3/app_root/db/migrate/core/20101224223620_create_users.rb",
114
+ "spec/rails3/app_root/db/migrate/external/20101224223628_create_authentications.rb",
90
115
  "spec/rails3/app_root/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
91
116
  "spec/rails3/app_root/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
92
117
  "spec/rails3/app_root/db/schema.rb",
@@ -107,36 +132,71 @@ Gem::Specification.new do |s|
107
132
  "spec/rails3/app_root/public/robots.txt",
108
133
  "spec/rails3/app_root/public/stylesheets/.gitkeep",
109
134
  "spec/rails3/app_root/script/rails",
110
- "spec/rails3/app_root/test/fixtures/users.yml",
111
- "spec/rails3/app_root/test/performance/browsing_test.rb",
112
- "spec/rails3/app_root/test/test_helper.rb",
113
- "spec/rails3/app_root/test/unit/user_test.rb",
135
+ "spec/rails3/app_root/spec/controller_activity_logging_spec.rb",
136
+ "spec/rails3/app_root/spec/controller_brute_force_protection_spec.rb",
137
+ "spec/rails3/app_root/spec/controller_http_basic_auth_spec.rb",
138
+ "spec/rails3/app_root/spec/controller_oauth2_spec.rb",
139
+ "spec/rails3/app_root/spec/controller_oauth_spec.rb",
140
+ "spec/rails3/app_root/spec/controller_remember_me_spec.rb",
141
+ "spec/rails3/app_root/spec/controller_session_timeout_spec.rb",
142
+ "spec/rails3/app_root/spec/controller_spec.rb",
143
+ "spec/rails3/app_root/spec/spec_helper.orig.rb",
144
+ "spec/rails3/app_root/spec/spec_helper.rb",
145
+ "spec/rails3/app_root/spec/user_activation_spec.rb",
146
+ "spec/rails3/app_root/spec/user_activity_logging_spec.rb",
147
+ "spec/rails3/app_root/spec/user_brute_force_protection_spec.rb",
148
+ "spec/rails3/app_root/spec/user_oauth_spec.rb",
149
+ "spec/rails3/app_root/spec/user_remember_me_spec.rb",
150
+ "spec/rails3/app_root/spec/user_reset_password_spec.rb",
151
+ "spec/rails3/app_root/spec/user_spec.rb",
114
152
  "spec/rails3/app_root/vendor/plugins/.gitkeep",
115
- "spec/rails3/controller_activity_logging_spec.rb",
116
- "spec/rails3/controller_brute_force_protection_spec.rb",
117
- "spec/rails3/controller_http_basic_auth_spec.rb",
118
- "spec/rails3/controller_remember_me_spec.rb",
119
- "spec/rails3/controller_session_timeout_spec.rb",
120
- "spec/rails3/controller_spec.rb",
121
- "spec/rails3/spec_helper.rb",
122
- "spec/rails3/user_activation_spec.rb",
123
- "spec/rails3/user_activity_logging_spec.rb",
124
- "spec/rails3/user_brute_force_protection_spec.rb",
125
- "spec/rails3/user_remember_me_spec.rb",
126
- "spec/rails3/user_reset_password_spec.rb",
127
- "spec/rails3/user_spec.rb",
153
+ "spec/sinatra/Gemfile",
154
+ "spec/sinatra/Gemfile.lock",
155
+ "spec/sinatra/Rakefile",
156
+ "spec/sinatra/authentication.rb",
157
+ "spec/sinatra/db/migrate/activation/20101224223622_add_activation_to_users.rb",
158
+ "spec/sinatra/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
159
+ "spec/sinatra/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb",
160
+ "spec/sinatra/db/migrate/core/20101224223620_create_users.rb",
161
+ "spec/sinatra/db/migrate/external/20101224223628_create_authentications.rb",
162
+ "spec/sinatra/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
163
+ "spec/sinatra/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
164
+ "spec/sinatra/filters.rb",
165
+ "spec/sinatra/myapp.rb",
166
+ "spec/sinatra/sorcery_mailer.rb",
167
+ "spec/sinatra/spec/controller_activity_logging_spec.rb",
168
+ "spec/sinatra/spec/controller_brute_force_protection_spec.rb",
169
+ "spec/sinatra/spec/controller_http_basic_auth_spec.rb",
170
+ "spec/sinatra/spec/controller_oauth2_spec.rb",
171
+ "spec/sinatra/spec/controller_oauth_spec.rb",
172
+ "spec/sinatra/spec/controller_remember_me_spec.rb",
173
+ "spec/sinatra/spec/controller_session_timeout_spec.rb",
174
+ "spec/sinatra/spec/controller_spec.rb",
175
+ "spec/sinatra/spec/spec.opts",
176
+ "spec/sinatra/spec/spec_helper.rb",
177
+ "spec/sinatra/spec/user_activation_spec.rb",
178
+ "spec/sinatra/spec/user_activity_logging_spec.rb",
179
+ "spec/sinatra/spec/user_brute_force_protection_spec.rb",
180
+ "spec/sinatra/spec/user_oauth_spec.rb",
181
+ "spec/sinatra/spec/user_remember_me_spec.rb",
182
+ "spec/sinatra/spec/user_reset_password_spec.rb",
183
+ "spec/sinatra/spec/user_spec.rb",
184
+ "spec/sinatra/user.rb",
185
+ "spec/sinatra/views/test_login.erb",
128
186
  "spec/sorcery_crypto_providers_spec.rb",
129
- "spec/spec_helper.rb"
187
+ "spec/spec_helper.rb",
188
+ "spec/untitled folder"
130
189
  ]
131
190
  s.homepage = %q{http://github.com/NoamB/sorcery}
132
191
  s.licenses = ["MIT"]
133
192
  s.require_paths = ["lib"]
134
- s.rubygems_version = %q{1.5.0}
193
+ s.rubygems_version = %q{1.6.2}
135
194
  s.summary = %q{Magical authentication for Rails 3 applications}
136
195
  s.test_files = [
137
196
  "spec/rails3/app_root/app/controllers/application_controller.rb",
138
197
  "spec/rails3/app_root/app/helpers/application_helper.rb",
139
198
  "spec/rails3/app_root/app/mailers/sorcery_mailer.rb",
199
+ "spec/rails3/app_root/app/models/authentication.rb",
140
200
  "spec/rails3/app_root/app/models/user.rb",
141
201
  "spec/rails3/app_root/config/application.rb",
142
202
  "spec/rails3/app_root/config/boot.rb",
@@ -155,26 +215,56 @@ Gem::Specification.new do |s|
155
215
  "spec/rails3/app_root/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
156
216
  "spec/rails3/app_root/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb",
157
217
  "spec/rails3/app_root/db/migrate/core/20101224223620_create_users.rb",
218
+ "spec/rails3/app_root/db/migrate/external/20101224223628_create_authentications.rb",
158
219
  "spec/rails3/app_root/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
159
220
  "spec/rails3/app_root/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
160
221
  "spec/rails3/app_root/db/schema.rb",
161
222
  "spec/rails3/app_root/db/seeds.rb",
162
- "spec/rails3/app_root/test/performance/browsing_test.rb",
163
- "spec/rails3/app_root/test/test_helper.rb",
164
- "spec/rails3/app_root/test/unit/user_test.rb",
165
- "spec/rails3/controller_activity_logging_spec.rb",
166
- "spec/rails3/controller_brute_force_protection_spec.rb",
167
- "spec/rails3/controller_http_basic_auth_spec.rb",
168
- "spec/rails3/controller_remember_me_spec.rb",
169
- "spec/rails3/controller_session_timeout_spec.rb",
170
- "spec/rails3/controller_spec.rb",
171
- "spec/rails3/spec_helper.rb",
172
- "spec/rails3/user_activation_spec.rb",
173
- "spec/rails3/user_activity_logging_spec.rb",
174
- "spec/rails3/user_brute_force_protection_spec.rb",
175
- "spec/rails3/user_remember_me_spec.rb",
176
- "spec/rails3/user_reset_password_spec.rb",
177
- "spec/rails3/user_spec.rb",
223
+ "spec/rails3/app_root/spec/controller_activity_logging_spec.rb",
224
+ "spec/rails3/app_root/spec/controller_brute_force_protection_spec.rb",
225
+ "spec/rails3/app_root/spec/controller_http_basic_auth_spec.rb",
226
+ "spec/rails3/app_root/spec/controller_oauth2_spec.rb",
227
+ "spec/rails3/app_root/spec/controller_oauth_spec.rb",
228
+ "spec/rails3/app_root/spec/controller_remember_me_spec.rb",
229
+ "spec/rails3/app_root/spec/controller_session_timeout_spec.rb",
230
+ "spec/rails3/app_root/spec/controller_spec.rb",
231
+ "spec/rails3/app_root/spec/spec_helper.orig.rb",
232
+ "spec/rails3/app_root/spec/spec_helper.rb",
233
+ "spec/rails3/app_root/spec/user_activation_spec.rb",
234
+ "spec/rails3/app_root/spec/user_activity_logging_spec.rb",
235
+ "spec/rails3/app_root/spec/user_brute_force_protection_spec.rb",
236
+ "spec/rails3/app_root/spec/user_oauth_spec.rb",
237
+ "spec/rails3/app_root/spec/user_remember_me_spec.rb",
238
+ "spec/rails3/app_root/spec/user_reset_password_spec.rb",
239
+ "spec/rails3/app_root/spec/user_spec.rb",
240
+ "spec/sinatra/authentication.rb",
241
+ "spec/sinatra/db/migrate/activation/20101224223622_add_activation_to_users.rb",
242
+ "spec/sinatra/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb",
243
+ "spec/sinatra/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb",
244
+ "spec/sinatra/db/migrate/core/20101224223620_create_users.rb",
245
+ "spec/sinatra/db/migrate/external/20101224223628_create_authentications.rb",
246
+ "spec/sinatra/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb",
247
+ "spec/sinatra/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb",
248
+ "spec/sinatra/filters.rb",
249
+ "spec/sinatra/myapp.rb",
250
+ "spec/sinatra/sorcery_mailer.rb",
251
+ "spec/sinatra/spec/controller_activity_logging_spec.rb",
252
+ "spec/sinatra/spec/controller_brute_force_protection_spec.rb",
253
+ "spec/sinatra/spec/controller_http_basic_auth_spec.rb",
254
+ "spec/sinatra/spec/controller_oauth2_spec.rb",
255
+ "spec/sinatra/spec/controller_oauth_spec.rb",
256
+ "spec/sinatra/spec/controller_remember_me_spec.rb",
257
+ "spec/sinatra/spec/controller_session_timeout_spec.rb",
258
+ "spec/sinatra/spec/controller_spec.rb",
259
+ "spec/sinatra/spec/spec_helper.rb",
260
+ "spec/sinatra/spec/user_activation_spec.rb",
261
+ "spec/sinatra/spec/user_activity_logging_spec.rb",
262
+ "spec/sinatra/spec/user_brute_force_protection_spec.rb",
263
+ "spec/sinatra/spec/user_oauth_spec.rb",
264
+ "spec/sinatra/spec/user_remember_me_spec.rb",
265
+ "spec/sinatra/spec/user_reset_password_spec.rb",
266
+ "spec/sinatra/spec/user_spec.rb",
267
+ "spec/sinatra/user.rb",
178
268
  "spec/sorcery_crypto_providers_spec.rb",
179
269
  "spec/spec_helper.rb"
180
270
  ]
@@ -183,7 +273,10 @@ Gem::Specification.new do |s|
183
273
  s.specification_version = 3
184
274
 
185
275
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
186
- s.add_development_dependency(%q<rails>, [">= 3.0.0"])
276
+ s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
277
+ s.add_runtime_dependency(%q<json>, [">= 1.5.1"])
278
+ s.add_runtime_dependency(%q<oauth>, [">= 0.4.4"])
279
+ s.add_runtime_dependency(%q<oauth2>, [">= 0.1.1"])
187
280
  s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
188
281
  s.add_development_dependency(%q<rspec-rails>, [">= 0"])
189
282
  s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
@@ -193,8 +286,13 @@ Gem::Specification.new do |s|
193
286
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
194
287
  s.add_development_dependency(%q<simplecov>, [">= 0.3.8"])
195
288
  s.add_runtime_dependency(%q<bcrypt-ruby>, ["~> 2.1.4"])
289
+ s.add_runtime_dependency(%q<oauth>, [">= 0.4.4"])
290
+ s.add_runtime_dependency(%q<oauth2>, [">= 0.1.1"])
196
291
  else
197
292
  s.add_dependency(%q<rails>, [">= 3.0.0"])
293
+ s.add_dependency(%q<json>, [">= 1.5.1"])
294
+ s.add_dependency(%q<oauth>, [">= 0.4.4"])
295
+ s.add_dependency(%q<oauth2>, [">= 0.1.1"])
198
296
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
199
297
  s.add_dependency(%q<rspec-rails>, [">= 0"])
200
298
  s.add_dependency(%q<ruby-debug19>, [">= 0"])
@@ -204,9 +302,14 @@ Gem::Specification.new do |s|
204
302
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
205
303
  s.add_dependency(%q<simplecov>, [">= 0.3.8"])
206
304
  s.add_dependency(%q<bcrypt-ruby>, ["~> 2.1.4"])
305
+ s.add_dependency(%q<oauth>, [">= 0.4.4"])
306
+ s.add_dependency(%q<oauth2>, [">= 0.1.1"])
207
307
  end
208
308
  else
209
309
  s.add_dependency(%q<rails>, [">= 3.0.0"])
310
+ s.add_dependency(%q<json>, [">= 1.5.1"])
311
+ s.add_dependency(%q<oauth>, [">= 0.4.4"])
312
+ s.add_dependency(%q<oauth2>, [">= 0.1.1"])
210
313
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
211
314
  s.add_dependency(%q<rspec-rails>, [">= 0"])
212
315
  s.add_dependency(%q<ruby-debug19>, [">= 0"])
@@ -216,6 +319,8 @@ Gem::Specification.new do |s|
216
319
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
217
320
  s.add_dependency(%q<simplecov>, [">= 0.3.8"])
218
321
  s.add_dependency(%q<bcrypt-ruby>, ["~> 2.1.4"])
322
+ s.add_dependency(%q<oauth>, [">= 0.4.4"])
323
+ s.add_dependency(%q<oauth2>, [">= 0.1.1"])
219
324
  end
220
325
  end
221
326
 
data/spec/Gemfile CHANGED
@@ -2,8 +2,9 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem "rails", '3.0.3'
4
4
  gem 'bcrypt-ruby', :require => 'bcrypt'
5
- gem "sorcery", '0.1.3', :path => '../../../'
6
-
5
+ gem "sorcery", '0.3.1', :path => '../../../'
6
+ gem 'oauth', ">= 0.4.4"
7
+ gem 'oauth2', ">= 0.1.1"
7
8
  group :development do
8
9
  gem 'rspec'
9
10
  gem 'ruby-debug19'
data/spec/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../../../
3
3
  specs:
4
- sorcery (0.1.3)
4
+ sorcery (0.3.1)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
@@ -33,6 +33,7 @@ GEM
33
33
  activemodel (= 3.0.3)
34
34
  activesupport (= 3.0.3)
35
35
  activesupport (3.0.3)
36
+ addressable (2.2.4)
36
37
  archive-tar-minitar (0.5.2)
37
38
  arel (2.0.6)
38
39
  bcrypt-ruby (2.1.3)
@@ -41,6 +42,10 @@ GEM
41
42
  diff-lcs (1.1.2)
42
43
  erubis (2.6.6)
43
44
  abstract (>= 1.0.0)
45
+ faraday (0.5.5)
46
+ addressable (~> 2.2.4)
47
+ multipart-post (~> 1.1.0)
48
+ rack (< 2, >= 1.1.0)
44
49
  i18n (0.5.0)
45
50
  linecache19 (0.5.11)
46
51
  ruby_core_source (>= 0.1.4)
@@ -50,6 +55,12 @@ GEM
50
55
  mime-types (~> 1.16)
51
56
  treetop (~> 1.4.8)
52
57
  mime-types (1.16)
58
+ multi_json (0.0.5)
59
+ multipart-post (1.1.0)
60
+ oauth (0.4.4)
61
+ oauth2 (0.1.1)
62
+ faraday (~> 0.5.0)
63
+ multi_json (~> 0.0.4)
53
64
  polyglot (0.3.1)
54
65
  rack (1.2.1)
55
66
  rack-mount (0.6.13)
@@ -101,8 +112,10 @@ PLATFORMS
101
112
 
102
113
  DEPENDENCIES
103
114
  bcrypt-ruby
115
+ oauth (>= 0.4.4)
116
+ oauth2 (>= 0.1.1)
104
117
  rails (= 3.0.3)
105
118
  rspec
106
119
  ruby-debug19
107
120
  simplecov (>= 0.3.8)
108
- sorcery (= 0.1.3)!
121
+ sorcery (= 0.3.1)!
@@ -0,0 +1 @@
1
+ --colour
@@ -2,12 +2,12 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem 'rails', '3.0.3'
4
4
  gem 'sqlite3-ruby', :require => 'sqlite3'
5
- gem "sorcery", '0.1.3', :path => '../../../'
6
- gem 'bcrypt-ruby', '~> 2.1.4', :require => 'bcrypt'
7
-
8
- group :development do
5
+ gem "sorcery", '0.3.1', :path => '../../../'
6
+
7
+ group :development, :test do
9
8
  gem 'rspec'
10
9
  gem 'rspec-rails'
11
10
  gem 'ruby-debug19'
12
11
  gem 'simplecov', '>= 0.3.8', :require => false # Will install simplecov-html as a dependency
12
+ gem 'spork', '~> 0.9.0.rc'
13
13
  end