sorcery 0.9.1 → 0.10.0
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/.travis.yml +29 -104
- data/CHANGELOG.md +13 -1
- data/Gemfile +2 -16
- data/README.md +124 -272
- data/Rakefile +2 -2
- data/gemfiles/{mongoid-rails40.gemfile → active_record-rails42.gemfile} +1 -3
- data/lib/generators/sorcery/helpers.rb +4 -4
- data/lib/generators/sorcery/install_generator.rb +25 -19
- data/lib/generators/sorcery/templates/initializer.rb +27 -52
- data/lib/generators/sorcery/templates/migration/activity_logging.rb +2 -2
- data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +1 -1
- data/lib/generators/sorcery/templates/migration/core.rb +3 -3
- data/lib/generators/sorcery/templates/migration/external.rb +2 -2
- data/lib/generators/sorcery/templates/migration/remember_me.rb +2 -2
- data/lib/generators/sorcery/templates/migration/reset_password.rb +2 -2
- data/lib/generators/sorcery/templates/migration/user_activation.rb +2 -2
- data/lib/sorcery.rb +0 -28
- data/lib/sorcery/adapters/active_record_adapter.rb +7 -18
- data/lib/sorcery/controller.rb +19 -21
- data/lib/sorcery/controller/config.rb +20 -18
- data/lib/sorcery/controller/submodules/activity_logging.rb +7 -15
- data/lib/sorcery/controller/submodules/brute_force_protection.rb +1 -2
- data/lib/sorcery/controller/submodules/external.rb +22 -14
- data/lib/sorcery/controller/submodules/http_basic_auth.rb +16 -19
- data/lib/sorcery/controller/submodules/remember_me.rb +15 -10
- data/lib/sorcery/controller/submodules/session_timeout.rb +7 -8
- data/lib/sorcery/crypto_providers/aes256.rb +15 -15
- data/lib/sorcery/crypto_providers/bcrypt.rb +19 -21
- data/lib/sorcery/crypto_providers/common.rb +1 -1
- data/lib/sorcery/crypto_providers/md5.rb +5 -5
- data/lib/sorcery/crypto_providers/sha1.rb +5 -5
- data/lib/sorcery/crypto_providers/sha256.rb +2 -2
- data/lib/sorcery/crypto_providers/sha512.rb +3 -3
- data/lib/sorcery/engine.rb +3 -8
- data/lib/sorcery/model.rb +24 -32
- data/lib/sorcery/model/config.rb +64 -49
- data/lib/sorcery/model/submodules/activity_logging.rb +31 -12
- data/lib/sorcery/model/submodules/brute_force_protection.rb +23 -23
- data/lib/sorcery/model/submodules/external.rb +3 -7
- data/lib/sorcery/model/submodules/remember_me.rb +19 -7
- data/lib/sorcery/model/submodules/reset_password.rb +32 -36
- data/lib/sorcery/model/submodules/user_activation.rb +38 -50
- data/lib/sorcery/model/temporary_token.rb +2 -2
- data/lib/sorcery/protocols/oauth.rb +3 -9
- data/lib/sorcery/protocols/oauth2.rb +0 -2
- data/lib/sorcery/providers/base.rb +4 -4
- data/lib/sorcery/providers/facebook.rb +5 -8
- data/lib/sorcery/providers/github.rb +5 -7
- data/lib/sorcery/providers/google.rb +3 -5
- data/lib/sorcery/providers/heroku.rb +6 -8
- data/lib/sorcery/providers/jira.rb +12 -17
- data/lib/sorcery/providers/linkedin.rb +6 -8
- data/lib/sorcery/providers/liveid.rb +4 -7
- data/lib/sorcery/providers/paypal.rb +60 -0
- data/lib/sorcery/providers/salesforce.rb +3 -5
- data/lib/sorcery/providers/slack.rb +45 -0
- data/lib/sorcery/providers/twitter.rb +4 -6
- data/lib/sorcery/providers/vk.rb +3 -5
- data/lib/sorcery/providers/wechat.rb +79 -0
- data/lib/sorcery/providers/xing.rb +7 -10
- data/lib/sorcery/test_helpers/internal.rb +10 -10
- data/lib/sorcery/test_helpers/internal/rails.rb +16 -8
- data/lib/sorcery/test_helpers/rails/controller.rb +1 -1
- data/lib/sorcery/test_helpers/rails/integration.rb +5 -6
- data/lib/sorcery/version.rb +1 -1
- data/sorcery.gemspec +25 -27
- data/spec/active_record/user_activation_spec.rb +2 -3
- data/spec/active_record/user_activity_logging_spec.rb +2 -4
- data/spec/active_record/user_brute_force_protection_spec.rb +3 -4
- data/spec/active_record/user_oauth_spec.rb +3 -4
- data/spec/active_record/user_remember_me_spec.rb +3 -4
- data/spec/active_record/user_reset_password_spec.rb +2 -3
- data/spec/active_record/user_spec.rb +7 -7
- data/spec/controllers/controller_activity_logging_spec.rb +13 -24
- data/spec/controllers/controller_brute_force_protection_spec.rb +6 -8
- data/spec/controllers/controller_http_basic_auth_spec.rb +19 -20
- data/spec/controllers/controller_oauth2_spec.rb +125 -100
- data/spec/controllers/controller_oauth_spec.rb +86 -66
- data/spec/controllers/controller_remember_me_spec.rb +35 -30
- data/spec/controllers/controller_session_timeout_spec.rb +14 -15
- data/spec/controllers/controller_spec.rb +77 -111
- data/spec/orm/active_record.rb +1 -1
- data/spec/rails_app/app/active_record/authentication.rb +1 -1
- data/spec/rails_app/app/active_record/user.rb +2 -2
- data/spec/rails_app/app/controllers/sorcery_controller.rb +89 -24
- data/spec/rails_app/app/mailers/sorcery_mailer.rb +16 -17
- data/spec/rails_app/config.ru +1 -1
- data/spec/rails_app/config/application.rb +7 -7
- data/spec/rails_app/config/boot.rb +1 -1
- data/spec/rails_app/config/environments/test.rb +1 -1
- data/spec/rails_app/config/initializers/compatible_legacy_migration.rb +11 -0
- data/spec/rails_app/config/initializers/session_store.rb +3 -3
- data/spec/rails_app/config/routes.rb +11 -1
- data/spec/rails_app/db/migrate/activation/20101224223622_add_activation_to_users.rb +4 -4
- data/spec/rails_app/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +8 -8
- data/spec/rails_app/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +5 -5
- data/spec/rails_app/db/migrate/core/20101224223620_create_users.rb +5 -5
- data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb +3 -3
- data/spec/rails_app/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +6 -6
- data/spec/rails_app/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +5 -5
- data/spec/shared_examples/user_activation_shared_examples.rb +99 -58
- data/spec/shared_examples/user_activity_logging_shared_examples.rb +47 -41
- data/spec/shared_examples/user_brute_force_protection_shared_examples.rb +19 -24
- data/spec/shared_examples/user_oauth_shared_examples.rb +7 -10
- data/spec/shared_examples/user_remember_me_shared_examples.rb +90 -21
- data/spec/shared_examples/user_reset_password_shared_examples.rb +52 -54
- data/spec/shared_examples/user_shared_examples.rb +215 -118
- data/spec/sorcery_crypto_providers_spec.rb +63 -76
- data/spec/spec_helper.rb +17 -13
- metadata +28 -83
- data/gemfiles/mongo_mapper-rails40.gemfile +0 -9
- data/gemfiles/mongo_mapper-rails41.gemfile +0 -9
- data/gemfiles/mongoid-rails41.gemfile +0 -9
- data/gemfiles/mongoid3-rails32.gemfile +0 -9
- data/lib/sorcery/adapters/data_mapper_adapter.rb +0 -176
- data/lib/sorcery/adapters/mongo_mapper_adapter.rb +0 -110
- data/lib/sorcery/adapters/mongoid_adapter.rb +0 -97
- data/lib/sorcery/railties/tasks.rake +0 -6
- data/spec/data_mapper/user_activation_spec.rb +0 -10
- data/spec/data_mapper/user_activity_logging_spec.rb +0 -14
- data/spec/data_mapper/user_brute_force_protection_spec.rb +0 -9
- data/spec/data_mapper/user_oauth_spec.rb +0 -9
- data/spec/data_mapper/user_remember_me_spec.rb +0 -8
- data/spec/data_mapper/user_reset_password_spec.rb +0 -8
- data/spec/data_mapper/user_spec.rb +0 -27
- data/spec/mongo_mapper/user_activation_spec.rb +0 -9
- data/spec/mongo_mapper/user_activity_logging_spec.rb +0 -8
- data/spec/mongo_mapper/user_brute_force_protection_spec.rb +0 -8
- data/spec/mongo_mapper/user_oauth_spec.rb +0 -8
- data/spec/mongo_mapper/user_remember_me_spec.rb +0 -8
- data/spec/mongo_mapper/user_reset_password_spec.rb +0 -8
- data/spec/mongo_mapper/user_spec.rb +0 -37
- data/spec/mongoid/user_activation_spec.rb +0 -9
- data/spec/mongoid/user_activity_logging_spec.rb +0 -8
- data/spec/mongoid/user_brute_force_protection_spec.rb +0 -8
- data/spec/mongoid/user_oauth_spec.rb +0 -8
- data/spec/mongoid/user_remember_me_spec.rb +0 -8
- data/spec/mongoid/user_reset_password_spec.rb +0 -8
- data/spec/mongoid/user_spec.rb +0 -51
- data/spec/orm/data_mapper.rb +0 -48
- data/spec/orm/mongo_mapper.rb +0 -10
- data/spec/orm/mongoid.rb +0 -22
- data/spec/rails_app/app/data_mapper/authentication.rb +0 -8
- data/spec/rails_app/app/data_mapper/user.rb +0 -7
- data/spec/rails_app/app/mongo_mapper/authentication.rb +0 -6
- data/spec/rails_app/app/mongo_mapper/user.rb +0 -7
- data/spec/rails_app/app/mongoid/authentication.rb +0 -7
- data/spec/rails_app/app/mongoid/user.rb +0 -7
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
require 'rails_app/app/mailers/sorcery_mailer'
|
4
|
-
require 'shared_examples/user_shared_examples'
|
5
|
-
|
6
|
-
describe User, "with no submodules (core)", :data_mapper => true do
|
7
|
-
before(:all) do
|
8
|
-
sorcery_reload!
|
9
|
-
end
|
10
|
-
|
11
|
-
context "when app has plugin loaded" do
|
12
|
-
it "User responds to .authenticates_with_sorcery!" do
|
13
|
-
expect(User).to respond_to :authenticates_with_sorcery!
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
# ----------------- PLUGIN CONFIGURATION -----------------------
|
18
|
-
|
19
|
-
it_should_behave_like "rails_3_core_model"
|
20
|
-
|
21
|
-
describe "external users" do
|
22
|
-
|
23
|
-
it_should_behave_like "external_user"
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'rails_app/app/mailers/sorcery_mailer'
|
3
|
-
require 'shared_examples/user_shared_examples'
|
4
|
-
|
5
|
-
describe User, "with no submodules (core)", :mongo_mapper => true do
|
6
|
-
before(:all) do
|
7
|
-
sorcery_reload!
|
8
|
-
end
|
9
|
-
|
10
|
-
describe User, "when app has plugin loaded" do
|
11
|
-
it "User responds to .authenticates_with_sorcery!" do
|
12
|
-
expect(User).to respond_to :authenticates_with_sorcery!
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# ----------------- PLUGIN CONFIGURATION -----------------------
|
17
|
-
|
18
|
-
it_should_behave_like "rails_3_core_model"
|
19
|
-
|
20
|
-
describe "external users" do
|
21
|
-
|
22
|
-
it_should_behave_like "external_user"
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
context "when inherited" do
|
27
|
-
it "inherits mongo_mapper keys" do
|
28
|
-
User.class_eval do
|
29
|
-
key :blabla
|
30
|
-
end
|
31
|
-
class SubUser < User
|
32
|
-
end
|
33
|
-
|
34
|
-
expect(SubUser.keys).to include("blabla")
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
data/spec/mongoid/user_spec.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'rails_app/app/mailers/sorcery_mailer'
|
3
|
-
require 'shared_examples/user_shared_examples'
|
4
|
-
|
5
|
-
describe User, "with no submodules (core)", :mongoid => true do
|
6
|
-
before(:all) do
|
7
|
-
sorcery_reload!
|
8
|
-
end
|
9
|
-
|
10
|
-
context "when app has plugin loaded" do
|
11
|
-
it "User responds to .authenticates_with_sorcery!" do
|
12
|
-
expect(User).to respond_to :authenticates_with_sorcery!
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# ----------------- PLUGIN CONFIGURATION -----------------------
|
17
|
-
|
18
|
-
it_should_behave_like "rails_3_core_model"
|
19
|
-
|
20
|
-
describe "external users" do
|
21
|
-
|
22
|
-
it_should_behave_like "external_user"
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
context "when inherited" do
|
27
|
-
it "inherits mongoid fields" do
|
28
|
-
User.class_eval do
|
29
|
-
field :blabla
|
30
|
-
end
|
31
|
-
class SubUser < User
|
32
|
-
end
|
33
|
-
|
34
|
-
expect(SubUser.fields).to include("blabla")
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
describe "increment" do
|
39
|
-
it "increments attribute" do
|
40
|
-
User.class_eval do
|
41
|
-
field :some_number, type: Integer
|
42
|
-
end
|
43
|
-
|
44
|
-
user = User.new(some_number: 3)
|
45
|
-
user.sorcery_adapter.increment(:some_number)
|
46
|
-
|
47
|
-
expect(user.some_number).to eql 4
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
data/spec/orm/data_mapper.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
require 'data_mapper'
|
2
|
-
require 'dm-migrations'
|
3
|
-
require 'sorcery'
|
4
|
-
|
5
|
-
#DataMapper.setup(:default, 'sqlite::memory:')
|
6
|
-
# NOTE
|
7
|
-
# 1. Problems with Time fields, hh mm ss values.
|
8
|
-
#DataMapper.setup(:default, "sqlite3://#{File.dirname(__FILE__)}/../rails_app/test.sqlite3")
|
9
|
-
|
10
|
-
# MySQL
|
11
|
-
# NOTE
|
12
|
-
# 1. Create test database.
|
13
|
-
# 2. DM creates tables case insensitive by default.
|
14
|
-
# -
|
15
|
-
#DataMapper.setup(:default, "mysql://root:<password>@localhost/sorcery_test")
|
16
|
-
DataMapper.setup(:default, "mysql://root@127.0.0.1/sorcery_test")
|
17
|
-
|
18
|
-
# Redis
|
19
|
-
# NOTE
|
20
|
-
# 1. Submodule activity_logging is not supported.
|
21
|
-
# 2. case sensitive.
|
22
|
-
#DataMapper.setup(:default, {
|
23
|
-
# :adapter => 'redis',
|
24
|
-
# :host => 'localhost',
|
25
|
-
# :port => 6379,
|
26
|
-
#})
|
27
|
-
|
28
|
-
class TestUser
|
29
|
-
include DataMapper::Resource
|
30
|
-
property :id, Serial
|
31
|
-
authenticates_with_sorcery!
|
32
|
-
end
|
33
|
-
|
34
|
-
def setup_orm
|
35
|
-
TestUser.finalize
|
36
|
-
DataMapper.auto_migrate!
|
37
|
-
end
|
38
|
-
|
39
|
-
module Sorcery
|
40
|
-
module TestHelpers
|
41
|
-
module Internal
|
42
|
-
def update_model(&block)
|
43
|
-
User.class_exec(&block)
|
44
|
-
User.finalize
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
data/spec/orm/mongo_mapper.rb
DELETED
data/spec/orm/mongoid.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'mongoid'
|
2
|
-
require 'sorcery'
|
3
|
-
|
4
|
-
Mongoid.configure do |config|
|
5
|
-
database = "sorcery_mongoid_test"
|
6
|
-
if config.respond_to?(:connect_to)
|
7
|
-
config.connect_to(database)
|
8
|
-
else
|
9
|
-
config.master = Mongo::Connection.new.db(database)
|
10
|
-
end
|
11
|
-
|
12
|
-
config.use_utc = true
|
13
|
-
config.include_root_in_json = true
|
14
|
-
end
|
15
|
-
|
16
|
-
class TestUser
|
17
|
-
include Mongoid::Document
|
18
|
-
end
|
19
|
-
|
20
|
-
def setup_orm
|
21
|
-
Mongoid.purge!
|
22
|
-
end
|