cantango-core 0.1.2 → 0.1.3
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.
- data/Gemfile +7 -1
- data/Gemfile.lock +70 -12
- data/README.mdown +16 -14
- data/VERSION +1 -1
- data/cantango-core.gemspec +41 -51
- data/lib/cantango/ability/base/callbacks.rb +37 -0
- data/lib/cantango/ability/base.rb +21 -8
- data/lib/cantango/ability/cache.rb +1 -1
- data/lib/cantango/ability/executor/modes.rb +6 -6
- data/lib/cantango/ability/executor/no_cache_mode.rb +2 -6
- data/lib/cantango/ability/executor.rb +1 -1
- data/lib/cantango/ability/helper/account.rb +6 -10
- data/lib/cantango/ability/helper/engine.rb +22 -26
- data/lib/cantango/ability/helper/user.rb +10 -14
- data/lib/cantango/ability/helper.rb +1 -1
- data/lib/cantango/ability.rb +7 -2
- data/lib/cantango/adaptor/active_record.rb +6 -0
- data/lib/cantango/adaptor/data_mapper.rb +5 -0
- data/lib/cantango/adaptor/generic.rb +12 -0
- data/lib/cantango/adaptor/mongo.rb +13 -0
- data/lib/cantango/adaptor/mongo_mapper.rb +5 -0
- data/lib/cantango/adaptor/mongoid.rb +5 -0
- data/lib/cantango/adaptor/relational.rb +8 -0
- data/lib/cantango/{rules/adaptor.rb → adaptor.rb} +4 -4
- data/lib/cantango/{rules → cancan}/rule_class.rb +1 -1
- data/lib/cantango/cancan.rb +5 -0
- data/lib/cantango/core.rb +5 -13
- data/lib/cantango/engine.rb +6 -16
- data/lib/cantango/filter/base.rb +1 -1
- data/lib/cantango/helpers/debug.rb +31 -1
- data/lib/cantango/loader/yaml.rb +2 -11
- data/lib/cantango/model/guest.rb +3 -1
- data/spec/cantango/ability/base_spec.rb +13 -63
- data/spec/cantango/ability/cache/simple_key_spec.rb +29 -0
- data/spec/cantango/ability/executor/base_spec.rb +12 -52
- data/spec/cantango/ability/executor/custom_spec.rb +51 -0
- data/spec/cantango/ability/executor/modes_spec.rb +27 -49
- data/spec/cantango/ability/executor/no_cache_mode_spec.rb +29 -0
- data/spec/cantango/ability/helper/account_spec.rb +37 -0
- data/spec/cantango/ability/helper/engine_spec.rb +36 -0
- data/spec/cantango/ability/helper/user_spec.rb +38 -0
- data/spec/cantango/adaptor/active_record_spec.rb +38 -0
- data/spec/cantango/adaptor/data_mapper_spec.rb +39 -0
- data/spec/cantango/{rules/adaptor → adaptor}/mongo_mapper_spec.rb +0 -0
- data/spec/cantango/{rules/adaptor → adaptor}/mongoid_spec.rb +0 -0
- data/spec/cantango/cancan/rule_spec.rb +5 -0
- data/spec/cantango/core_spec.rb +0 -2
- data/spec/cantango/engine_spec.rb +51 -0
- data/spec/cantango/filter/base_spec.rb +25 -0
- data/spec/cantango/helpers/debug_spec.rb +29 -0
- data/spec/cantango/loader/yaml_spec.rb +5 -0
- data/spec/cantango/model/guest_spec.rb +14 -0
- data/spec/cantango/rspec/be_allowed_to_spec.rb +5 -0
- data/spec/cantango/scope/ability_spec.rb +33 -0
- data/spec/fixtures/models/account.rb +7 -0
- data/spec/fixtures/models/admin.rb +2 -0
- data/spec/fixtures/models/admin_account.rb +8 -0
- data/spec/fixtures/models/items.rb +11 -0
- data/spec/fixtures/models/user.rb +20 -0
- data/spec/fixtures/models.rb +2 -0
- data/spec/spec_helper.rb +4 -0
- metadata +60 -67
- data/lib/cantango/ability/executor/cache_mode.rb +0 -33
- data/lib/cantango/ability/helper/role.rb +0 -21
- data/lib/cantango/ability/helper/role_group.rb +0 -21
- data/lib/cantango/macros/account.rb +0 -14
- data/lib/cantango/macros/user.rb +0 -16
- data/lib/cantango/macros.rb +0 -11
- data/lib/cantango/rules/adaptor/active_record.rb +0 -10
- data/lib/cantango/rules/adaptor/data_mapper.rb +0 -11
- data/lib/cantango/rules/adaptor/generic.rb +0 -16
- data/lib/cantango/rules/adaptor/mongo.rb +0 -19
- data/lib/cantango/rules/adaptor/mongo_mapper.rb +0 -10
- data/lib/cantango/rules/adaptor/mongoid.rb +0 -9
- data/lib/cantango/rules/adaptor/relational.rb +0 -13
- data/lib/cantango/rules/dsl.rb +0 -24
- data/lib/cantango/rules/relation.rb +0 -67
- data/lib/cantango/rules/scope.rb +0 -24
- data/lib/cantango/rules.rb +0 -8
- data/spec/cantango/ability/cached_spec.rb +0 -0
- data/spec/cantango/ability/executor/base2.rb +0 -75
- data/spec/cantango/ability/executor/cache_mode_spec.rb +0 -77
- data/spec/cantango/macros/account_spec.rb +0 -0
- data/spec/cantango/macros/user_spec.rb +0 -0
- data/spec/cantango/rules/adaptor/active_record_spec.rb +0 -0
- data/spec/cantango/rules/adaptor/data_mapper_spec.rb +0 -0
- data/spec/cantango/rules/adaptor_spec.rb +0 -0
- data/spec/cantango/rules/dsl_spec.rb +0 -0
- data/spec/cantango/rules/relation_spec.rb +0 -0
- data/spec/cantango/rules/rule_class_spec.rb +0 -0
- data/spec/cantango/rules/scope_spec.rb +0 -0
- data/spec/cantango/rules_spec.rb +0 -55
@@ -1,75 +0,0 @@
|
|
1
|
-
require 'rspec'
|
2
|
-
require 'cantango'
|
3
|
-
# require 'simple_roles'
|
4
|
-
require 'fixtures/models'
|
5
|
-
require 'cantango/rspec'
|
6
|
-
|
7
|
-
def config_folder
|
8
|
-
File.dirname(__FILE__)+ "/../fixtures/config/"
|
9
|
-
end
|
10
|
-
|
11
|
-
CanTango.configure do |config|
|
12
|
-
config.clear!
|
13
|
-
end
|
14
|
-
# CanTango.debug!
|
15
|
-
|
16
|
-
class User
|
17
|
-
tango_user
|
18
|
-
include_and_extend SimpleRoles
|
19
|
-
end
|
20
|
-
|
21
|
-
class AdminRolePermit < CanTango::RolePermit
|
22
|
-
def initialize ability
|
23
|
-
super
|
24
|
-
end
|
25
|
-
|
26
|
-
protected
|
27
|
-
|
28
|
-
def static_rules
|
29
|
-
can :read, Article
|
30
|
-
end
|
31
|
-
|
32
|
-
module Cached
|
33
|
-
def permit_rules
|
34
|
-
can :edit, Article
|
35
|
-
can :delete, Article
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
module CanTango
|
41
|
-
class Ability
|
42
|
-
def permit_rules
|
43
|
-
can :read, Post
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe CanTango::AbilityExecutor do
|
49
|
-
context 'non-cached only' do
|
50
|
-
before do
|
51
|
-
CanTango.configure.ability.mode = :no_cache
|
52
|
-
|
53
|
-
@user = User.new 'admin', 'admin@mail.ru', :role => 'admin'
|
54
|
-
@abil = CanTango::AbilityExecutor.new @user
|
55
|
-
end
|
56
|
-
|
57
|
-
subject { CanTango::AbilityExecutor.new @user }
|
58
|
-
|
59
|
-
describe 'config no_cache' do
|
60
|
-
specify { CanTango.configure.ability.modes.should == [:no_cache] }
|
61
|
-
end
|
62
|
-
|
63
|
-
describe 'engines_on?' do
|
64
|
-
specify { subject.engines_on?.should be_true }
|
65
|
-
end
|
66
|
-
|
67
|
-
its(:cached_rules) { should be_empty }
|
68
|
-
its(:non_cached_rules) { should_not be_empty }
|
69
|
-
|
70
|
-
describe 'rules contain only non-cached rules' do
|
71
|
-
specify { subject.rules.size.should == @abil.non_cached_rules.size }
|
72
|
-
specify { subject.rules.size.should == 2 }
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
@@ -1,77 +0,0 @@
|
|
1
|
-
require 'rspec'
|
2
|
-
require 'cantango'
|
3
|
-
# require 'simple_roles'
|
4
|
-
require 'fixtures/models'
|
5
|
-
require 'cantango/rspec'
|
6
|
-
|
7
|
-
def config_folder
|
8
|
-
File.dirname(__FILE__)+ "/../fixtures/config/"
|
9
|
-
end
|
10
|
-
|
11
|
-
CanTango.configure do |config|
|
12
|
-
config.clear!
|
13
|
-
config.ability.mode = :cache
|
14
|
-
end
|
15
|
-
# CanTango.debug!
|
16
|
-
|
17
|
-
class User
|
18
|
-
tango_user
|
19
|
-
include_and_extend SimpleRoles
|
20
|
-
end
|
21
|
-
|
22
|
-
class AdminRolePermit < CanTango::Permit::Role
|
23
|
-
def initialize ability
|
24
|
-
super
|
25
|
-
end
|
26
|
-
|
27
|
-
protected
|
28
|
-
|
29
|
-
def static_rules
|
30
|
-
can :read, Article
|
31
|
-
end
|
32
|
-
|
33
|
-
module Cached
|
34
|
-
def permit_rules
|
35
|
-
can :edit, Article
|
36
|
-
can :delete, Article
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
module CanTango
|
42
|
-
class CachedAbility
|
43
|
-
def permit_rules
|
44
|
-
can :read, Post
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
describe CanTango::Ability::Executor::CacheMode do
|
50
|
-
context 'cached only' do
|
51
|
-
before do
|
52
|
-
CanTango.configure.ability.mode = :cache
|
53
|
-
|
54
|
-
@user = User.new 'admin', 'admin@mail.ru', :role => 'admin'
|
55
|
-
@abil = CanTango::AbilityExecutor.new @user
|
56
|
-
end
|
57
|
-
|
58
|
-
subject { CanTango::AbilityExecutor.new @user }
|
59
|
-
|
60
|
-
describe 'config cache' do
|
61
|
-
specify { CanTango.configure.ability.modes.should == [:cache] }
|
62
|
-
end
|
63
|
-
|
64
|
-
describe 'engines_on?' do
|
65
|
-
specify { subject.engines_on?.should be_true }
|
66
|
-
end
|
67
|
-
|
68
|
-
its(:cached_rules) { should_not be_empty }
|
69
|
-
its(:non_cached_rules) { should be_empty }
|
70
|
-
|
71
|
-
describe 'rules contain only non-cached rules' do
|
72
|
-
specify { subject.rules.size.should == @abil.cached_rules.size }
|
73
|
-
specify { subject.rules.size.should == 4 }
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
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
|
data/spec/cantango/rules_spec.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
require 'rspec'
|
2
|
-
require 'cantango'
|
3
|
-
require 'fixtures/models'
|
4
|
-
|
5
|
-
class SystemRolePermit < CanTango::RolePermit
|
6
|
-
def initialize ability
|
7
|
-
super
|
8
|
-
end
|
9
|
-
|
10
|
-
protected
|
11
|
-
|
12
|
-
def static_rules
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def setup
|
17
|
-
let (:user) do
|
18
|
-
User.new 'kris'
|
19
|
-
end
|
20
|
-
|
21
|
-
let (:user_account) do
|
22
|
-
ua = UserAccount.new user
|
23
|
-
user.account = ua
|
24
|
-
end
|
25
|
-
|
26
|
-
let (:ability) do
|
27
|
-
CanTango::Ability.new user_account
|
28
|
-
end
|
29
|
-
|
30
|
-
let (:permit) do
|
31
|
-
SystemRolePermit.new ability
|
32
|
-
end
|
33
|
-
|
34
|
-
let (:executor) do
|
35
|
-
CanTango::PermitEngine::Executor::System.new permit, user_account
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
|
-
describe CanTango::Rules do
|
41
|
-
setup
|
42
|
-
|
43
|
-
describe '#can' do
|
44
|
-
it "should not have any rules" do
|
45
|
-
permit.rules.should be_empty
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should have rules after can" do
|
49
|
-
permit.can :read, Comment
|
50
|
-
permit.rules.should_not be_empty
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
|