sorcery 0.8.4 → 0.8.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sorcery might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.gitignore +54 -0
- data/.travis.yml +13 -1
- data/CHANGELOG.md +234 -0
- data/Gemfile +17 -14
- data/Gemfile.rails4 +24 -0
- data/README.md +300 -0
- data/Rakefile +3 -79
- data/VERSION +1 -1
- data/lib/generators/sorcery/helpers.rb +40 -0
- data/lib/generators/sorcery/install_generator.rb +21 -17
- data/lib/generators/sorcery/templates/initializer.rb +1 -1
- data/lib/generators/sorcery/templates/migration/activity_logging.rb +2 -11
- data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +1 -7
- data/lib/generators/sorcery/templates/migration/core.rb +5 -8
- data/lib/generators/sorcery/templates/migration/external.rb +1 -5
- data/lib/generators/sorcery/templates/migration/remember_me.rb +2 -9
- data/lib/generators/sorcery/templates/migration/reset_password.rb +2 -10
- data/lib/generators/sorcery/templates/migration/user_activation.rb +2 -10
- data/lib/sorcery/controller.rb +16 -4
- data/lib/sorcery/controller/submodules/external.rb +9 -8
- data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/facebook.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/github.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/google.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/linkedin.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/liveid.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/twitter.rb +3 -2
- data/lib/sorcery/controller/submodules/external/providers/vk.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/xing.rb +2 -1
- data/lib/sorcery/controller/submodules/remember_me.rb +1 -1
- data/lib/sorcery/controller/submodules/session_timeout.rb +1 -1
- data/lib/sorcery/model.rb +9 -3
- data/lib/sorcery/model/adapters/mongoid.rb +3 -3
- data/lib/sorcery/model/submodules/brute_force_protection.rb +6 -8
- data/lib/sorcery/model/submodules/reset_password.rb +5 -1
- data/lib/sorcery/model/submodules/user_activation.rb +18 -4
- data/lib/sorcery/test_helpers/internal.rb +21 -4
- data/lib/sorcery/test_helpers/internal/rails.rb +4 -4
- data/lib/sorcery/test_helpers/rails.rb +2 -2
- data/sorcery.gemspec +25 -363
- data/spec/{rails3/spec → active_record}/controller_activity_logging_spec.rb +29 -19
- data/spec/active_record/controller_brute_force_protection_spec.rb +136 -0
- data/spec/{rails3/spec → active_record}/controller_http_basic_auth_spec.rb +26 -17
- data/spec/{rails3/spec → active_record}/controller_oauth2_spec.rb +93 -56
- data/spec/{rails3/spec → active_record}/controller_oauth_spec.rb +35 -29
- data/spec/{rails3/spec → active_record}/controller_remember_me_spec.rb +28 -28
- data/spec/{rails3/spec → active_record}/controller_session_timeout_spec.rb +11 -11
- data/spec/{rails3/spec → active_record}/controller_spec.rb +19 -19
- data/spec/{rails3/spec → active_record}/integration_spec.rb +2 -2
- data/spec/{rails3/spec → active_record}/user_activation_spec.rb +8 -6
- data/spec/active_record/user_activity_logging_spec.rb +8 -0
- data/spec/{rails3/spec → active_record}/user_brute_force_protection_spec.rb +5 -4
- data/spec/{rails3/spec → active_record}/user_oauth_spec.rb +5 -4
- data/spec/{rails3/spec → active_record}/user_remember_me_spec.rb +4 -3
- data/spec/{rails3/spec → active_record}/user_reset_password_spec.rb +6 -6
- data/spec/{rails3/spec → active_record}/user_spec.rb +12 -10
- data/spec/{rails3_mongo_mapper/spec → mongo_mapper}/controller_spec.rb +15 -15
- data/spec/mongo_mapper/user_activation_spec.rb +10 -0
- data/spec/mongo_mapper/user_activity_logging_spec.rb +8 -0
- data/spec/mongo_mapper/user_brute_force_protection_spec.rb +8 -0
- data/spec/mongo_mapper/user_oauth_spec.rb +8 -0
- data/spec/mongo_mapper/user_remember_me_spec.rb +8 -0
- data/spec/mongo_mapper/user_reset_password_spec.rb +8 -0
- data/spec/{rails3_mongo_mapper/spec → mongo_mapper}/user_spec.rb +9 -8
- data/spec/{rails3_mongoid/spec → mongoid}/controller_activity_logging_spec.rb +8 -8
- data/spec/{rails3_mongoid/spec → mongoid}/controller_spec.rb +14 -14
- data/spec/mongoid/user_activation_spec.rb +10 -0
- data/spec/mongoid/user_activity_logging_spec.rb +9 -0
- data/spec/mongoid/user_brute_force_protection_spec.rb +9 -0
- data/spec/mongoid/user_oauth_spec.rb +9 -0
- data/spec/mongoid/user_remember_me_spec.rb +9 -0
- data/spec/mongoid/user_reset_password_spec.rb +9 -0
- data/spec/{rails3_mongoid/spec → mongoid}/user_spec.rb +10 -9
- data/spec/orm/active_record.rb +7 -0
- data/spec/orm/mongo_mapper.rb +10 -0
- data/spec/orm/mongoid.rb +17 -0
- data/spec/{rails3/app/models → rails_app/app/active_record}/authentication.rb +0 -0
- data/spec/{rails3/app/models → rails_app/app/active_record}/user.rb +1 -2
- data/spec/rails_app/app/active_record/user_provider.rb +3 -0
- data/spec/{rails3/app/controllers/application_controller.rb → rails_app/app/controllers/sorcery_controller.rb} +26 -15
- data/spec/{rails3 → rails_app}/app/helpers/application_helper.rb +0 -0
- data/spec/{rails3 → rails_app}/app/mailers/sorcery_mailer.rb +0 -0
- data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/authentication.rb +0 -0
- data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/user.rb +0 -0
- data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/authentication.rb +0 -0
- data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/user.rb +2 -0
- data/spec/{rails3 → rails_app}/app/views/application/index.html.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/layouts/application.html.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.html.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.text.erb +0 -0
- data/spec/{rails3/app/views/sorcery_mailer/activation_success_email.html.erb → rails_app/app/views/sorcery_mailer/activation_needed_email.html.erb} +0 -0
- data/spec/{rails3_mongo_mapper → rails_app}/app/views/sorcery_mailer/activation_success_email.html.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_success_email.text.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.html.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.text.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/send_unlock_token_email.text.erb +0 -0
- data/spec/{rails3_mongo_mapper → rails_app}/config.ru +1 -1
- data/spec/{rails3_mongoid → rails_app}/config/application.rb +13 -8
- data/spec/rails_app/config/boot.rb +4 -0
- data/spec/rails_app/config/database.yml +22 -0
- data/spec/{rails3 → rails_app}/config/environment.rb +0 -0
- data/spec/{rails3_mongo_mapper → rails_app}/config/environments/test.rb +2 -0
- data/spec/{rails3 → rails_app}/config/initializers/backtrace_silencers.rb +0 -0
- data/spec/{rails3 → rails_app}/config/initializers/inflections.rb +0 -0
- data/spec/{rails3 → rails_app}/config/initializers/mime_types.rb +0 -0
- data/spec/{rails3 → rails_app}/config/initializers/secret_token.rb +0 -0
- data/spec/{rails3 → rails_app}/config/initializers/session_store.rb +4 -0
- data/spec/{rails3 → rails_app}/config/locales/en.yml +0 -0
- data/spec/rails_app/config/routes.rb +37 -0
- data/spec/{rails3 → rails_app}/db/migrate/activation/20101224223622_add_activation_to_users.rb +3 -3
- data/spec/{rails3 → rails_app}/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +0 -0
- data/spec/{rails3 → rails_app}/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +0 -0
- data/spec/{rails3 → rails_app}/db/migrate/core/20101224223620_create_users.rb +0 -0
- data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb +22 -0
- data/spec/{rails3 → rails_app}/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +0 -0
- data/spec/{rails3 → rails_app}/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +0 -0
- data/spec/{rails3 → rails_app}/db/schema.rb +0 -0
- data/spec/{rails3 → rails_app}/db/seeds.rb +0 -0
- data/spec/{rails3 → rails_app}/public/404.html +0 -0
- data/spec/{rails3 → rails_app}/public/422.html +0 -0
- data/spec/{rails3 → rails_app}/public/500.html +0 -0
- data/spec/{rails3 → rails_app}/public/favicon.ico +0 -0
- data/spec/{rails3 → rails_app}/public/images/rails.png +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/application.js +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/controls.js +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/dragdrop.js +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/effects.js +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/prototype.js +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/rails.js +0 -0
- data/spec/{rails3 → rails_app}/public/robots.txt +0 -0
- data/spec/{rails3/lib/tasks → rails_app/public/stylesheets}/.gitkeep +0 -0
- data/spec/shared_examples/controller_oauth_shared_examples.rb +22 -8
- data/spec/shared_examples/user_activation_shared_examples.rb +49 -27
- data/spec/shared_examples/user_reset_password_shared_examples.rb +33 -21
- data/spec/shared_examples/user_shared_examples.rb +65 -50
- data/spec/sorcery_crypto_providers_spec.rb +47 -45
- data/spec/spec_helper.rb +38 -4
- metadata +117 -254
- data/Gemfile.lock +0 -175
- data/README.rdoc +0 -261
- data/spec/Gemfile +0 -12
- data/spec/Gemfile.lock +0 -129
- data/spec/README.md +0 -31
- data/spec/Rakefile +0 -12
- data/spec/rails3/.gitignore +0 -4
- data/spec/rails3/.rspec +0 -1
- data/spec/rails3/Gemfile +0 -15
- data/spec/rails3/Gemfile.lock +0 -162
- data/spec/rails3/README +0 -256
- data/spec/rails3/Rakefile +0 -11
- data/spec/rails3/config.ru +0 -4
- data/spec/rails3/config/application.rb +0 -46
- data/spec/rails3/config/boot.rb +0 -13
- data/spec/rails3/config/database.yml +0 -27
- data/spec/rails3/config/environments/development.rb +0 -26
- data/spec/rails3/config/environments/in_memory.rb +0 -35
- data/spec/rails3/config/environments/production.rb +0 -49
- data/spec/rails3/config/environments/test.rb +0 -35
- data/spec/rails3/config/routes.rb +0 -59
- data/spec/rails3/db/migrate/external/20101224223628_create_authentications.rb +0 -14
- data/spec/rails3/public/stylesheets/.gitkeep +0 -0
- data/spec/rails3/script/rails +0 -6
- data/spec/rails3/spec/controller_brute_force_protection_spec.rb +0 -96
- data/spec/rails3/spec/spec.opts +0 -2
- data/spec/rails3/spec/spec_helper.orig.rb +0 -27
- data/spec/rails3/spec/spec_helper.rb +0 -71
- data/spec/rails3/spec/user_activity_logging_spec.rb +0 -8
- data/spec/rails3/vendor/plugins/.gitkeep +0 -0
- data/spec/rails3_mongo_mapper/.gitignore +0 -4
- data/spec/rails3_mongo_mapper/.rspec +0 -1
- data/spec/rails3_mongo_mapper/Gemfile +0 -16
- data/spec/rails3_mongo_mapper/Gemfile.lock +0 -156
- data/spec/rails3_mongo_mapper/Rakefile +0 -11
- data/spec/rails3_mongo_mapper/app/controllers/application_controller.rb +0 -122
- data/spec/rails3_mongo_mapper/app/helpers/application_helper.rb +0 -2
- data/spec/rails3_mongo_mapper/app/mailers/sorcery_mailer.rb +0 -25
- data/spec/rails3_mongo_mapper/app/views/layouts/application.html.erb +0 -14
- data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.html.erb +0 -17
- data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.text.erb +0 -9
- data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
- data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
- data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
- data/spec/rails3_mongo_mapper/config/application.rb +0 -51
- data/spec/rails3_mongo_mapper/config/boot.rb +0 -13
- data/spec/rails3_mongo_mapper/config/environment.rb +0 -5
- data/spec/rails3_mongo_mapper/config/environments/development.rb +0 -30
- data/spec/rails3_mongo_mapper/config/environments/in_memory.rb +0 -0
- data/spec/rails3_mongo_mapper/config/environments/production.rb +0 -49
- data/spec/rails3_mongo_mapper/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/rails3_mongo_mapper/config/initializers/inflections.rb +0 -10
- data/spec/rails3_mongo_mapper/config/initializers/mime_types.rb +0 -5
- data/spec/rails3_mongo_mapper/config/initializers/mongo.rb +0 -2
- data/spec/rails3_mongo_mapper/config/initializers/secret_token.rb +0 -7
- data/spec/rails3_mongo_mapper/config/initializers/session_store.rb +0 -8
- data/spec/rails3_mongo_mapper/config/locales/en.yml +0 -5
- data/spec/rails3_mongo_mapper/config/routes.rb +0 -59
- data/spec/rails3_mongo_mapper/db/schema.rb +0 -23
- data/spec/rails3_mongo_mapper/db/seeds.rb +0 -7
- data/spec/rails3_mongo_mapper/lib/tasks/.gitkeep +0 -0
- data/spec/rails3_mongo_mapper/public/404.html +0 -26
- data/spec/rails3_mongo_mapper/public/422.html +0 -26
- data/spec/rails3_mongo_mapper/public/500.html +0 -26
- data/spec/rails3_mongo_mapper/public/favicon.ico +0 -0
- data/spec/rails3_mongo_mapper/public/images/rails.png +0 -0
- data/spec/rails3_mongo_mapper/public/javascripts/application.js +0 -2
- data/spec/rails3_mongo_mapper/public/javascripts/controls.js +0 -965
- data/spec/rails3_mongo_mapper/public/javascripts/dragdrop.js +0 -974
- data/spec/rails3_mongo_mapper/public/javascripts/effects.js +0 -1123
- data/spec/rails3_mongo_mapper/public/javascripts/prototype.js +0 -6001
- data/spec/rails3_mongo_mapper/public/javascripts/rails.js +0 -175
- data/spec/rails3_mongo_mapper/public/robots.txt +0 -5
- data/spec/rails3_mongo_mapper/public/stylesheets/.gitkeep +0 -0
- data/spec/rails3_mongo_mapper/script/rails +0 -6
- data/spec/rails3_mongo_mapper/spec/spec.opts +0 -2
- data/spec/rails3_mongo_mapper/spec/spec_helper.orig.rb +0 -27
- data/spec/rails3_mongo_mapper/spec/spec_helper.rb +0 -55
- data/spec/rails3_mongo_mapper/spec/user_activation_spec.rb +0 -9
- data/spec/rails3_mongo_mapper/spec/user_activity_logging_spec.rb +0 -8
- data/spec/rails3_mongo_mapper/spec/user_brute_force_protection_spec.rb +0 -8
- data/spec/rails3_mongo_mapper/spec/user_oauth_spec.rb +0 -8
- data/spec/rails3_mongo_mapper/spec/user_remember_me_spec.rb +0 -8
- data/spec/rails3_mongo_mapper/spec/user_reset_password_spec.rb +0 -8
- data/spec/rails3_mongo_mapper/vendor/plugins/.gitkeep +0 -0
- data/spec/rails3_mongoid/.gitignore +0 -4
- data/spec/rails3_mongoid/.rspec +0 -1
- data/spec/rails3_mongoid/Gemfile +0 -15
- data/spec/rails3_mongoid/Gemfile.lock +0 -146
- data/spec/rails3_mongoid/Rakefile +0 -11
- data/spec/rails3_mongoid/app/controllers/application_controller.rb +0 -127
- data/spec/rails3_mongoid/app/helpers/application_helper.rb +0 -2
- data/spec/rails3_mongoid/app/mailers/sorcery_mailer.rb +0 -25
- data/spec/rails3_mongoid/app/views/layouts/application.html.erb +0 -14
- data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.html.erb +0 -17
- data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.text.erb +0 -9
- data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.html.erb +0 -17
- data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
- data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
- data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
- data/spec/rails3_mongoid/config.ru +0 -4
- data/spec/rails3_mongoid/config/boot.rb +0 -13
- data/spec/rails3_mongoid/config/environment.rb +0 -5
- data/spec/rails3_mongoid/config/environments/development.rb +0 -26
- data/spec/rails3_mongoid/config/environments/in_memory.rb +0 -0
- data/spec/rails3_mongoid/config/environments/production.rb +0 -49
- data/spec/rails3_mongoid/config/environments/test.rb +0 -35
- data/spec/rails3_mongoid/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/rails3_mongoid/config/initializers/inflections.rb +0 -10
- data/spec/rails3_mongoid/config/initializers/mime_types.rb +0 -5
- data/spec/rails3_mongoid/config/initializers/secret_token.rb +0 -7
- data/spec/rails3_mongoid/config/initializers/session_store.rb +0 -8
- data/spec/rails3_mongoid/config/locales/en.yml +0 -5
- data/spec/rails3_mongoid/config/mongoid.yml +0 -7
- data/spec/rails3_mongoid/config/routes.rb +0 -59
- data/spec/rails3_mongoid/db/schema.rb +0 -23
- data/spec/rails3_mongoid/db/seeds.rb +0 -7
- data/spec/rails3_mongoid/lib/tasks/.gitkeep +0 -0
- data/spec/rails3_mongoid/public/404.html +0 -26
- data/spec/rails3_mongoid/public/422.html +0 -26
- data/spec/rails3_mongoid/public/500.html +0 -26
- data/spec/rails3_mongoid/public/favicon.ico +0 -0
- data/spec/rails3_mongoid/public/images/rails.png +0 -0
- data/spec/rails3_mongoid/public/javascripts/application.js +0 -2
- data/spec/rails3_mongoid/public/javascripts/controls.js +0 -965
- data/spec/rails3_mongoid/public/javascripts/dragdrop.js +0 -974
- data/spec/rails3_mongoid/public/javascripts/effects.js +0 -1123
- data/spec/rails3_mongoid/public/javascripts/prototype.js +0 -6001
- data/spec/rails3_mongoid/public/javascripts/rails.js +0 -175
- data/spec/rails3_mongoid/public/robots.txt +0 -5
- data/spec/rails3_mongoid/public/stylesheets/.gitkeep +0 -0
- data/spec/rails3_mongoid/script/rails +0 -6
- data/spec/rails3_mongoid/spec/spec.opts +0 -2
- data/spec/rails3_mongoid/spec/spec_helper.orig.rb +0 -27
- data/spec/rails3_mongoid/spec/spec_helper.rb +0 -55
- data/spec/rails3_mongoid/spec/user_activation_spec.rb +0 -9
- data/spec/rails3_mongoid/spec/user_activity_logging_spec.rb +0 -8
- data/spec/rails3_mongoid/spec/user_brute_force_protection_spec.rb +0 -8
- data/spec/rails3_mongoid/spec/user_oauth_spec.rb +0 -8
- data/spec/rails3_mongoid/spec/user_remember_me_spec.rb +0 -8
- data/spec/rails3_mongoid/spec/user_reset_password_spec.rb +0 -8
- data/spec/rails3_mongoid/vendor/plugins/.gitkeep +0 -0
File without changes
|
File without changes
|
File without changes
|
data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
class CreateAuthenticationsAndUserProviders < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :authentications do |t|
|
4
|
+
t.integer :user_id, null: false
|
5
|
+
t.string :provider, :uid, null: false
|
6
|
+
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
|
10
|
+
create_table :user_providers do |t|
|
11
|
+
t.integer :user_id, null: false
|
12
|
+
t.string :provider, :uid, null: false
|
13
|
+
|
14
|
+
t.timestamps
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.down
|
19
|
+
drop_table :authentications
|
20
|
+
drop_table :user_providers
|
21
|
+
end
|
22
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -5,7 +5,7 @@ shared_examples_for "oauth_controller" do
|
|
5
5
|
User.delete_all
|
6
6
|
Authentication.delete_all
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
it "should create a new user" do
|
10
10
|
sorcery_model_property_set(:authentications_class, Authentication)
|
11
11
|
sorcery_controller_external_property_set(:twitter, :user_info_mapping, {:username => "screen_name"})
|
@@ -14,7 +14,7 @@ shared_examples_for "oauth_controller" do
|
|
14
14
|
end.should change(User, :count).by(1)
|
15
15
|
User.first.username.should == "nbenari"
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
it "should support nested attributes" do
|
19
19
|
sorcery_model_property_set(:authentications_class, Authentication)
|
20
20
|
sorcery_controller_external_property_set(:twitter, :user_info_mapping, {:username => "status/text"})
|
@@ -23,7 +23,7 @@ shared_examples_for "oauth_controller" do
|
|
23
23
|
end.should change(User, :count).by(1)
|
24
24
|
User.first.username.should == "coming soon to sorcery gem: twitter and facebook authentication support."
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
it "should not crash on missing nested attributes" do
|
28
28
|
sorcery_model_property_set(:authentications_class, Authentication)
|
29
29
|
sorcery_controller_external_property_set(:twitter, :user_info_mapping, {:username => "status/text", :created_at => "does/not/exist"})
|
@@ -33,15 +33,29 @@ shared_examples_for "oauth_controller" do
|
|
33
33
|
User.first.username.should == "coming soon to sorcery gem: twitter and facebook authentication support."
|
34
34
|
User.first.created_at.should_not be_nil
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
|
+
it "binds new provider" do
|
38
|
+
sorcery_model_property_set(:authentications_class, UserProvider)
|
39
|
+
|
40
|
+
current_user = custom_create_new_external_user(:facebook, UserProvider)
|
41
|
+
login_user(current_user)
|
42
|
+
|
43
|
+
lambda do
|
44
|
+
get :test_add_second_provider, :provider => "twitter"
|
45
|
+
end.should change(UserProvider, :count).by(1)
|
46
|
+
|
47
|
+
UserProvider.where(:user_id => current_user.id).should have(2).items
|
48
|
+
User.should have(1).item
|
49
|
+
end
|
50
|
+
|
37
51
|
describe "with a block" do
|
38
|
-
|
52
|
+
|
39
53
|
before(:each) do
|
40
54
|
user = User.new(:username => 'nbenari')
|
41
55
|
user.save!(:validate => false)
|
42
56
|
user.authentications.create(:provider => 'github', :uid => '456')
|
43
57
|
end
|
44
|
-
|
58
|
+
|
45
59
|
it "should not create user" do
|
46
60
|
sorcery_model_property_set(:authentications_class, Authentication)
|
47
61
|
sorcery_controller_external_property_set(:twitter, :user_info_mapping, {:username => "screen_name"})
|
@@ -49,7 +63,7 @@ shared_examples_for "oauth_controller" do
|
|
49
63
|
get :test_create_from_provider_with_block, :provider => "twitter"
|
50
64
|
end.should_not change(User, :count)
|
51
65
|
end
|
52
|
-
|
66
|
+
|
53
67
|
end
|
54
68
|
end
|
55
|
-
end
|
69
|
+
end
|
@@ -4,32 +4,32 @@ shared_examples_for "rails_3_activation_model" do
|
|
4
4
|
before(:all) do
|
5
5
|
sorcery_reload!([:user_activation], :user_activation_mailer => ::SorceryMailer)
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
after(:each) do
|
9
9
|
User.sorcery_config.reset!
|
10
10
|
sorcery_reload!([:user_activation], :user_activation_mailer => ::SorceryMailer)
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
it "should enable configuration option 'activation_state_attribute_name'" do
|
14
14
|
sorcery_model_property_set(:activation_state_attribute_name, :status)
|
15
|
-
User.sorcery_config.activation_state_attribute_name.should equal(:status)
|
15
|
+
User.sorcery_config.activation_state_attribute_name.should equal(:status)
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
it "should enable configuration option 'activation_token_attribute_name'" do
|
19
19
|
sorcery_model_property_set(:activation_token_attribute_name, :code)
|
20
|
-
User.sorcery_config.activation_token_attribute_name.should equal(:code)
|
20
|
+
User.sorcery_config.activation_token_attribute_name.should equal(:code)
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
it "should enable configuration option 'user_activation_mailer'" do
|
24
24
|
sorcery_model_property_set(:user_activation_mailer, TestMailer)
|
25
|
-
User.sorcery_config.user_activation_mailer.should equal(TestMailer)
|
25
|
+
User.sorcery_config.user_activation_mailer.should equal(TestMailer)
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
it "should enable configuration option 'activation_needed_email_method_name'" do
|
29
29
|
sorcery_model_property_set(:activation_needed_email_method_name, :my_activation_email)
|
30
30
|
User.sorcery_config.activation_needed_email_method_name.should equal(:my_activation_email)
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
it "should enable configuration option 'activation_success_email_method_name'" do
|
34
34
|
sorcery_model_property_set(:activation_success_email_method_name, :my_activation_email)
|
35
35
|
User.sorcery_config.activation_success_email_method_name.should equal(:my_activation_email)
|
@@ -39,7 +39,7 @@ shared_examples_for "rails_3_activation_model" do
|
|
39
39
|
sorcery_model_property_set(:activation_mailer_disabled, :my_activation_mailer_disabled)
|
40
40
|
User.sorcery_config.activation_mailer_disabled.should equal(:my_activation_mailer_disabled)
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
it "if mailer is nil and mailer is enabled, throw exception!" do
|
44
44
|
expect{sorcery_reload!([:user_activation], :activation_mailer_disabled => false)}.to raise_error(ArgumentError)
|
45
45
|
end
|
@@ -54,17 +54,17 @@ shared_examples_for "rails_3_activation_model" do
|
|
54
54
|
before(:all) do
|
55
55
|
sorcery_reload!([:user_activation], :user_activation_mailer => ::SorceryMailer)
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
before(:each) do
|
59
59
|
create_new_user
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
it "should initialize user state to 'pending'" do
|
63
63
|
@user.activation_state.should == "pending"
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
specify { @user.should respond_to(:activate!) }
|
67
|
-
|
67
|
+
|
68
68
|
it "should clear activation code and change state to 'active' on activation" do
|
69
69
|
activation_token = @user.activation_token
|
70
70
|
@user.activate!
|
@@ -82,9 +82,15 @@ shared_examples_for "rails_3_activation_model" do
|
|
82
82
|
ActionMailer::Base.deliveries.size.should == old_size + 1
|
83
83
|
end
|
84
84
|
|
85
|
+
it "should call send_activation_needed_email! method of user" do
|
86
|
+
user = build_new_user
|
87
|
+
user.should_receive(:send_activation_needed_email!).once
|
88
|
+
user.save!
|
89
|
+
end
|
90
|
+
|
85
91
|
it "subsequent saves do not send activation email" do
|
86
92
|
old_size = ActionMailer::Base.deliveries.size
|
87
|
-
@user.
|
93
|
+
@user.email = "Shauli"
|
88
94
|
@user.save!
|
89
95
|
ActionMailer::Base.deliveries.size.should == old_size
|
90
96
|
end
|
@@ -95,10 +101,15 @@ shared_examples_for "rails_3_activation_model" do
|
|
95
101
|
ActionMailer::Base.deliveries.size.should == old_size + 1
|
96
102
|
end
|
97
103
|
|
104
|
+
it "should call send_activation_success_email! method of user on activation" do
|
105
|
+
@user.should_receive(:send_activation_success_email!).once
|
106
|
+
@user.activate!
|
107
|
+
end
|
108
|
+
|
98
109
|
it "subsequent saves do not send activation success email" do
|
99
110
|
@user.activate!
|
100
111
|
old_size = ActionMailer::Base.deliveries.size
|
101
|
-
@user.
|
112
|
+
@user.email = "Shauli"
|
102
113
|
@user.save!
|
103
114
|
ActionMailer::Base.deliveries.size.should == old_size
|
104
115
|
end
|
@@ -129,11 +140,22 @@ shared_examples_for "rails_3_activation_model" do
|
|
129
140
|
ActionMailer::Base.deliveries.size.should == old_size
|
130
141
|
end
|
131
142
|
|
143
|
+
it "should not call send_activation_needed_email! method of user" do
|
144
|
+
user = build_new_user
|
145
|
+
user.should_receive(:send_activation_needed_email!).never
|
146
|
+
user.save!
|
147
|
+
end
|
148
|
+
|
132
149
|
it "should not send the user an activation success email on successful activation" do
|
133
150
|
old_size = ActionMailer::Base.deliveries.size
|
134
151
|
@user.activate!
|
135
152
|
ActionMailer::Base.deliveries.size.should == old_size
|
136
153
|
end
|
154
|
+
|
155
|
+
it "should call send_activation_success_email! method of user on activation" do
|
156
|
+
@user.should_receive(:send_activation_success_email!).never
|
157
|
+
@user.activate!
|
158
|
+
end
|
137
159
|
end
|
138
160
|
end
|
139
161
|
|
@@ -148,52 +170,52 @@ shared_examples_for "rails_3_activation_model" do
|
|
148
170
|
end
|
149
171
|
|
150
172
|
it "should not allow a non-active user to authenticate" do
|
151
|
-
User.authenticate(@user.
|
173
|
+
User.authenticate(@user.email, 'secret').should be_false
|
152
174
|
end
|
153
|
-
|
175
|
+
|
154
176
|
it "should allow a non-active user to authenticate if configured so" do
|
155
177
|
sorcery_model_property_set(:prevent_non_active_users_to_login, false)
|
156
|
-
User.authenticate(@user.
|
178
|
+
User.authenticate(@user.email, 'secret').should be_true
|
157
179
|
end
|
158
180
|
end
|
159
|
-
|
181
|
+
|
160
182
|
describe User, "load_from_activation_token" do
|
161
183
|
before(:all) do
|
162
184
|
sorcery_reload!([:user_activation], :user_activation_mailer => ::SorceryMailer)
|
163
185
|
end
|
164
|
-
|
186
|
+
|
165
187
|
after(:each) do
|
166
188
|
Timecop.return
|
167
189
|
end
|
168
|
-
|
190
|
+
|
169
191
|
it "load_from_activation_token should return user when token is found" do
|
170
192
|
create_new_user
|
171
193
|
User.load_from_activation_token(@user.activation_token).should == @user
|
172
194
|
end
|
173
|
-
|
195
|
+
|
174
196
|
it "load_from_activation_token should NOT return user when token is NOT found" do
|
175
197
|
create_new_user
|
176
198
|
User.load_from_activation_token("a").should == nil
|
177
199
|
end
|
178
|
-
|
200
|
+
|
179
201
|
it "load_from_activation_token should return user when token is found and not expired" do
|
180
202
|
sorcery_model_property_set(:activation_token_expiration_period, 500)
|
181
203
|
create_new_user
|
182
204
|
User.load_from_activation_token(@user.activation_token).should == @user
|
183
205
|
end
|
184
|
-
|
206
|
+
|
185
207
|
it "load_from_activation_token should NOT return user when token is found and expired" do
|
186
208
|
sorcery_model_property_set(:activation_token_expiration_period, 0.1)
|
187
209
|
create_new_user
|
188
210
|
Timecop.travel(Time.now.in_time_zone+0.5)
|
189
211
|
User.load_from_activation_token(@user.activation_token).should == nil
|
190
212
|
end
|
191
|
-
|
213
|
+
|
192
214
|
it "load_from_activation_token should return nil if token is blank" do
|
193
215
|
User.load_from_activation_token(nil).should == nil
|
194
216
|
User.load_from_activation_token("").should == nil
|
195
217
|
end
|
196
|
-
|
218
|
+
|
197
219
|
it "load_from_activation_token should always be valid if expiration period is nil" do
|
198
220
|
sorcery_model_property_set(:activation_token_expiration_period, nil)
|
199
221
|
create_new_user
|
@@ -1,22 +1,22 @@
|
|
1
1
|
shared_examples_for "rails_3_reset_password_model" do
|
2
2
|
# ----------------- PLUGIN CONFIGURATION -----------------------
|
3
3
|
describe User, "loaded plugin configuration" do
|
4
|
-
|
4
|
+
|
5
5
|
before(:all) do
|
6
6
|
sorcery_reload!([:reset_password], :reset_password_mailer => ::SorceryMailer)
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
after(:each) do
|
10
10
|
User.sorcery_config.reset!
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
context "API" do
|
14
14
|
before(:all) do
|
15
15
|
create_new_user
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
specify { @user.should respond_to(:deliver_reset_password_instructions!) }
|
19
|
-
|
19
|
+
|
20
20
|
specify { @user.should respond_to(:change_password!) }
|
21
21
|
|
22
22
|
it "should respond to .load_from_reset_password_token" do
|
@@ -28,7 +28,7 @@ shared_examples_for "rails_3_reset_password_model" do
|
|
28
28
|
sorcery_model_property_set(:reset_password_token_attribute_name, :my_code)
|
29
29
|
User.sorcery_config.reset_password_token_attribute_name.should equal(:my_code)
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
it "should allow configuration option 'reset_password_mailer'" do
|
33
33
|
sorcery_model_property_set(:reset_password_mailer, TestUser)
|
34
34
|
User.sorcery_config.reset_password_mailer.should equal(TestUser)
|
@@ -38,30 +38,30 @@ shared_examples_for "rails_3_reset_password_model" do
|
|
38
38
|
sorcery_model_property_set(:reset_password_mailer_disabled, :my_reset_password_mailer_disabled)
|
39
39
|
User.sorcery_config.reset_password_mailer_disabled.should equal(:my_reset_password_mailer_disabled)
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
it "if mailer is nil and mailer is enabled, throw exception!" do
|
43
43
|
expect{sorcery_reload!([:reset_password], :reset_password_mailer_disabled => false)}.to raise_error(ArgumentError)
|
44
44
|
end
|
45
45
|
|
46
46
|
it "if mailer is disabled and mailer is nil, do NOT throw exception" do
|
47
47
|
expect{sorcery_reload!([:reset_password], :reset_password_mailer_disabled => true)}.to_not raise_error
|
48
|
-
end
|
48
|
+
end
|
49
49
|
|
50
50
|
it "should allow configuration option 'reset_password_email_method_name'" do
|
51
51
|
sorcery_model_property_set(:reset_password_email_method_name, :my_mailer_method)
|
52
52
|
User.sorcery_config.reset_password_email_method_name.should equal(:my_mailer_method)
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
it "should allow configuration option 'reset_password_expiration_period'" do
|
56
56
|
sorcery_model_property_set(:reset_password_expiration_period, 16)
|
57
57
|
User.sorcery_config.reset_password_expiration_period.should equal(16)
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
it "should allow configuration option 'reset_password_email_sent_at_attribute_name'" do
|
61
61
|
sorcery_model_property_set(:reset_password_email_sent_at_attribute_name, :blabla)
|
62
62
|
User.sorcery_config.reset_password_email_sent_at_attribute_name.should equal(:blabla)
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
it "should allow configuration option 'reset_password_time_between_emails'" do
|
66
66
|
sorcery_model_property_set(:reset_password_time_between_emails, 16)
|
67
67
|
User.sorcery_config.reset_password_time_between_emails.should equal(16)
|
@@ -70,38 +70,38 @@ shared_examples_for "rails_3_reset_password_model" do
|
|
70
70
|
|
71
71
|
# ----------------- PLUGIN ACTIVATED -----------------------
|
72
72
|
describe User, "when activated with sorcery" do
|
73
|
-
|
73
|
+
|
74
74
|
before(:all) do
|
75
75
|
sorcery_reload!([:reset_password], :reset_password_mailer => ::SorceryMailer)
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
before(:each) do
|
79
79
|
User.delete_all
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
after(:each) do
|
83
83
|
Timecop.return
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
86
|
it "load_from_reset_password_token should return user when token is found" do
|
87
87
|
create_new_user
|
88
88
|
@user.deliver_reset_password_instructions!
|
89
89
|
User.load_from_reset_password_token(@user.reset_password_token).should == @user
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
it "load_from_reset_password_token should NOT return user when token is NOT found" do
|
93
93
|
create_new_user
|
94
94
|
@user.deliver_reset_password_instructions!
|
95
95
|
User.load_from_reset_password_token("a").should == nil
|
96
96
|
end
|
97
|
-
|
97
|
+
|
98
98
|
it "load_from_reset_password_token should return user when token is found and not expired" do
|
99
99
|
create_new_user
|
100
100
|
sorcery_model_property_set(:reset_password_expiration_period, 500)
|
101
101
|
@user.deliver_reset_password_instructions!
|
102
102
|
User.load_from_reset_password_token(@user.reset_password_token).should == @user
|
103
103
|
end
|
104
|
-
|
104
|
+
|
105
105
|
it "load_from_reset_password_token should NOT return user when token is found and expired" do
|
106
106
|
create_new_user
|
107
107
|
sorcery_model_property_set(:reset_password_expiration_period, 0.1)
|
@@ -109,19 +109,19 @@ shared_examples_for "rails_3_reset_password_model" do
|
|
109
109
|
Timecop.travel(Time.now.in_time_zone+0.5)
|
110
110
|
User.load_from_reset_password_token(@user.reset_password_token).should == nil
|
111
111
|
end
|
112
|
-
|
112
|
+
|
113
113
|
it "load_from_reset_password_token should always be valid if expiration period is nil" do
|
114
114
|
create_new_user
|
115
115
|
sorcery_model_property_set(:reset_password_expiration_period, nil)
|
116
116
|
@user.deliver_reset_password_instructions!
|
117
117
|
User.load_from_reset_password_token(@user.reset_password_token).should == @user
|
118
118
|
end
|
119
|
-
|
119
|
+
|
120
120
|
it "load_from_reset_password_token should return nil if token is blank" do
|
121
121
|
User.load_from_reset_password_token(nil).should == nil
|
122
122
|
User.load_from_reset_password_token("").should == nil
|
123
123
|
end
|
124
|
-
|
124
|
+
|
125
125
|
it "'deliver_reset_password_instructions!' should generate a reset_password_token" do
|
126
126
|
create_new_user
|
127
127
|
@user.reset_password_token.should be_nil
|
@@ -145,6 +145,12 @@ shared_examples_for "rails_3_reset_password_model" do
|
|
145
145
|
@user.deliver_reset_password_instructions!
|
146
146
|
ActionMailer::Base.deliveries.size.should == old_size + 1
|
147
147
|
end
|
148
|
+
|
149
|
+
it "should call send_reset_password_email! on reset" do
|
150
|
+
create_new_user
|
151
|
+
@user.should_receive(:send_reset_password_email!).once
|
152
|
+
@user.deliver_reset_password_instructions!
|
153
|
+
end
|
148
154
|
|
149
155
|
it "should not send an email if time between emails has not passed since last email" do
|
150
156
|
create_new_user
|
@@ -180,6 +186,12 @@ shared_examples_for "rails_3_reset_password_model" do
|
|
180
186
|
@user.deliver_reset_password_instructions!
|
181
187
|
ActionMailer::Base.deliveries.size.should == old_size
|
182
188
|
end
|
189
|
+
|
190
|
+
it "should not call send_reset_password_email! on reset" do
|
191
|
+
create_new_user
|
192
|
+
@user.should_receive(:send_reset_password_email!).never
|
193
|
+
@user.deliver_reset_password_instructions!
|
194
|
+
end
|
183
195
|
|
184
196
|
it "should not send an email if time between emails has not passed since last email" do
|
185
197
|
create_new_user
|