cancan-permits 0.2.1 → 0.2.2
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/README.markdown +4 -3
- data/VERSION +1 -1
- data/cancan-permits.gemspec +17 -1
- data/lib/cancan-permits/permit/base_permit.rb +2 -15
- data/spec/data_mapper/models/all_models.rb +20 -0
- data/spec/data_mapper/owner_permits_spec.rb +73 -0
- data/spec/data_mapper/permits_spec.rb +36 -0
- data/spec/data_mapper/spec_helper.rb +56 -0
- data/spec/mongo_mapper/models/all_models.rb +17 -0
- data/spec/mongo_mapper/owner_permits_spec.rb +73 -0
- data/spec/mongo_mapper/permits_spec.rb +36 -0
- data/spec/mongo_mapper/spec_helper.rb +59 -0
- data/spec/mongoid/owner_permits_spec.rb +2 -2
- data/spec/mongoid/permits_spec.rb +2 -21
- data/spec/mongoid/spec_helper.rb +0 -4
- metadata +18 -2
data/README.markdown
CHANGED
@@ -4,10 +4,11 @@ Role specific Permits for use with [CanCan](http://github.com/ryanb/cancan) perm
|
|
4
4
|
|
5
5
|
## Update Oct 13
|
6
6
|
|
7
|
-
Now updated to support multiple ownership startegies so that alternative ORMs can be supported.
|
8
|
-
|
7
|
+
Now updated to support multiple ownership startegies so that alternative ORMs can be supported.
|
8
|
+
This gem now includes specs that demonstrate how to configure it for use with Mongoid, Mongo Mapper and Data Mapper!
|
9
|
+
Special thanks to Sam (yoda) for the initial inspiration and work to ensure support for Mongoid :)
|
9
10
|
|
10
|
-
The generator has also been updated slightly to support this new strategy as of version 0.2.1.
|
11
|
+
The generator has also been updated slightly to support this new strategy option as of version 0.2.1.
|
11
12
|
In general, the new Permits API now uses an options hash to replace the old optional request parameter.
|
12
13
|
This design allows for better extensibility in the future if needed.
|
13
14
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.2
|
data/cancan-permits.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{cancan-permits}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
@@ -47,7 +47,15 @@ Gem::Specification.new do |s|
|
|
47
47
|
"spec/cancan-permits/permits/fixtures/models.rb",
|
48
48
|
"spec/cancan-permits/permits/owner_permits_spec.rb",
|
49
49
|
"spec/cancan-permits/permits/permits_spec.rb",
|
50
|
+
"spec/data_mapper/models/all_models.rb",
|
51
|
+
"spec/data_mapper/owner_permits_spec.rb",
|
52
|
+
"spec/data_mapper/permits_spec.rb",
|
53
|
+
"spec/data_mapper/spec_helper.rb",
|
50
54
|
"spec/generators/permit_generator_spec.rb",
|
55
|
+
"spec/mongo_mapper/models/all_models.rb",
|
56
|
+
"spec/mongo_mapper/owner_permits_spec.rb",
|
57
|
+
"spec/mongo_mapper/permits_spec.rb",
|
58
|
+
"spec/mongo_mapper/spec_helper.rb",
|
51
59
|
"spec/mongoid/models/all_models.rb",
|
52
60
|
"spec/mongoid/owner_permits_spec.rb",
|
53
61
|
"spec/mongoid/permits_spec.rb",
|
@@ -66,7 +74,15 @@ Gem::Specification.new do |s|
|
|
66
74
|
"spec/cancan-permits/permits/fixtures/models.rb",
|
67
75
|
"spec/cancan-permits/permits/owner_permits_spec.rb",
|
68
76
|
"spec/cancan-permits/permits/permits_spec.rb",
|
77
|
+
"spec/data_mapper/models/all_models.rb",
|
78
|
+
"spec/data_mapper/owner_permits_spec.rb",
|
79
|
+
"spec/data_mapper/permits_spec.rb",
|
80
|
+
"spec/data_mapper/spec_helper.rb",
|
69
81
|
"spec/generators/permit_generator_spec.rb",
|
82
|
+
"spec/mongo_mapper/models/all_models.rb",
|
83
|
+
"spec/mongo_mapper/owner_permits_spec.rb",
|
84
|
+
"spec/mongo_mapper/permits_spec.rb",
|
85
|
+
"spec/mongo_mapper/spec_helper.rb",
|
70
86
|
"spec/mongoid/models/all_models.rb",
|
71
87
|
"spec/mongoid/owner_permits_spec.rb",
|
72
88
|
"spec/mongoid/permits_spec.rb",
|
@@ -43,21 +43,8 @@ module Permit
|
|
43
43
|
# puts "Using strategy: #{strategy_used}"
|
44
44
|
begin
|
45
45
|
case strategy_used
|
46
|
-
when :
|
47
|
-
|
48
|
-
# can :manage, clazz, ownership_relation => user_id
|
49
|
-
can :manage, clazz do |obj|
|
50
|
-
# puts "obj: #{obj.inspect}"
|
51
|
-
# puts "ownership relation: #{ownership_relation}"
|
52
|
-
# rel = obj.send ownership_relation
|
53
|
-
#
|
54
|
-
# puts "related obj: #{rel.inspect}"
|
55
|
-
# puts "user_id: #{user_id_attribute.inspect}"
|
56
|
-
# puts "user.user_id: #{user.send(user_id_attribute).inspect}"
|
57
|
-
# puts user.send(user_id_attribute).to_s
|
58
|
-
#
|
59
|
-
obj.send(ownership_relation) == user.send(user_id_attribute).to_s
|
60
|
-
end
|
46
|
+
when :orm
|
47
|
+
can :manage, clazz, ownership_relation => user_id.to_s
|
61
48
|
when :default
|
62
49
|
# puts "Basic CanCan ownership"
|
63
50
|
can :manage, clazz, ownership_relation => user_id
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Comment
|
2
|
+
include DataMapper::Resource
|
3
|
+
|
4
|
+
property :id, Serial
|
5
|
+
property :user_id, String
|
6
|
+
end
|
7
|
+
|
8
|
+
class Post
|
9
|
+
include DataMapper::Resource
|
10
|
+
|
11
|
+
property :id, Serial
|
12
|
+
property :writer, String
|
13
|
+
end
|
14
|
+
|
15
|
+
class Article
|
16
|
+
include DataMapper::Resource
|
17
|
+
|
18
|
+
property :id, Serial
|
19
|
+
property :author, String
|
20
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'data_mapper/spec_helper'
|
2
|
+
|
3
|
+
describe Permits::Ability do
|
4
|
+
context "Editor user" do
|
5
|
+
context "using default :user_id relation - foreign key to User.id" do
|
6
|
+
before :each do
|
7
|
+
@editor = User.create(:name => "Kristian", :role => "editor")
|
8
|
+
@other_guy = User.create(:name => "Random dude", :role => "admin")
|
9
|
+
|
10
|
+
@ability = Permits::Ability.new(@editor, :strategy => :orm)
|
11
|
+
|
12
|
+
@own_comment = Comment.create(:user_id => @editor.id)
|
13
|
+
@other_comment = Comment.create(:user_id => @other_guy.id)
|
14
|
+
# @post = Post.create(:writer => @editor.id)
|
15
|
+
# @article = Article.create(:author => @editor.id)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should be able to :read Comment he owns" do
|
19
|
+
@ability.should be_able_to(:read, Comment)
|
20
|
+
@ability.should be_able_to(:read, @own_comment)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should be able to :update Comment he owns" do
|
24
|
+
@ability.should be_able_to(:update, @own_comment)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should NOT be able to :update Comment he does NOT own" do
|
28
|
+
@ability.should_not be_able_to(:update, @other_comment)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should be able to :delete Comment he owns" do
|
32
|
+
@ability.should be_able_to(:delete, @own_comment)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should NOT be able to :update Comment he does NOT own" do
|
36
|
+
@ability.should_not be_able_to(:delete, @other_comment)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "using custom :writer relation - foreign key to User.id" do
|
41
|
+
before :each do
|
42
|
+
@editor = User.create(:name => "Kristian", :role => "editor")
|
43
|
+
@other_guy = User.create(:name => "Random dude", :role => "admin")
|
44
|
+
|
45
|
+
@ability = Permits::Ability.new(@editor, :strategy => :orm)
|
46
|
+
|
47
|
+
@own_post = Post.create(:writer => @editor.id)
|
48
|
+
@other_post = Post.create(:writer => @other_guy.id)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should be able to :read Post he owns" do
|
52
|
+
@ability.should be_able_to(:read, Post)
|
53
|
+
@ability.should be_able_to(:read, @own_post)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should be able to :update Post he owns" do
|
57
|
+
@ability.should be_able_to(:update, @own_post)
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should NOT be able to :update Post he does NOT own" do
|
61
|
+
@ability.should_not be_able_to(:update, @other_post)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should be able to :delete Post he owns" do
|
65
|
+
@ability.should be_able_to(:delete, @own_post)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should NOT be able to :update Post he does NOT own" do
|
69
|
+
@ability.should_not be_able_to(:delete, @other_post)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'data_mapper/spec_helper'
|
2
|
+
|
3
|
+
describe Permits::Ability do
|
4
|
+
context "Guest user" do
|
5
|
+
before :each do
|
6
|
+
@guest = User.create(:name => "Kristian", :role => "guest")
|
7
|
+
|
8
|
+
@ability = Permits::Ability.new(@guest, :strategy => :orm)
|
9
|
+
|
10
|
+
@comment = Comment.create(:user_id => @guest.id)
|
11
|
+
|
12
|
+
@post = Post.create(:writer => @guest.id)
|
13
|
+
|
14
|
+
@article = Article.create(:author => @guest.id)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should be able to :read Comment and Post but NOT Article" do
|
18
|
+
@ability.can?(:read, Comment).should be_true
|
19
|
+
@ability.can?(:read, @comment).should be_true
|
20
|
+
|
21
|
+
@ability.can?(:read, Post).should be_true
|
22
|
+
@ability.can?(:read, @post).should be_true
|
23
|
+
|
24
|
+
@ability.can?(:read, Article).should be_false
|
25
|
+
@ability.can?(:read, @article).should be_false
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should be not able to :update only Comment" do
|
29
|
+
@ability.can?(:update, Comment).should be_true
|
30
|
+
@ability.can?(:update, @comment).should be_true
|
31
|
+
|
32
|
+
@ability.can?(:update, Post).should be_false
|
33
|
+
@ability.can?(:update, @post).should be_false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'rspec/core'
|
2
|
+
|
3
|
+
require 'dm-core'
|
4
|
+
require 'dm-types'
|
5
|
+
require 'dm-migrations'
|
6
|
+
|
7
|
+
require 'cancan/matchers'
|
8
|
+
require 'cancan-permits'
|
9
|
+
require 'cancan-permits/rspec'
|
10
|
+
|
11
|
+
# gem install dm-core dm-sqlite-adapter
|
12
|
+
# gem install dm-types dm-validations dm-timestamps dm-aggregates dm-adjust dm-is-list dm-is-tree dm-is-versioned dm-is-nested_set
|
13
|
+
# gem install rails_datamapper dm-migrations dm-observer
|
14
|
+
|
15
|
+
DataMapper::Logger.new($stdout, :debug)
|
16
|
+
DataMapper.setup(:default, 'sqlite::memory:')
|
17
|
+
|
18
|
+
RSpec.configure do |config|
|
19
|
+
config.mock_with :mocha
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
require_all File.dirname(__FILE__) + '/../cancan-permits/fixtures/permits'
|
24
|
+
require_all File.dirname(__FILE__) + '/models/all_models'
|
25
|
+
|
26
|
+
RSpec.configure do |config|
|
27
|
+
config.mock_with :mocha
|
28
|
+
end
|
29
|
+
|
30
|
+
module Permits::Roles
|
31
|
+
def self.available
|
32
|
+
User.roles
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class User
|
37
|
+
include DataMapper::Resource
|
38
|
+
|
39
|
+
property :id, Serial
|
40
|
+
property :role, String
|
41
|
+
property :name, String
|
42
|
+
|
43
|
+
|
44
|
+
def self.roles
|
45
|
+
[:guest, :admin, :editor]
|
46
|
+
end
|
47
|
+
|
48
|
+
def has_role? role
|
49
|
+
self.role.to_sym == role.to_sym
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
DataMapper.finalize
|
54
|
+
DataMapper.auto_migrate!
|
55
|
+
|
56
|
+
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'mongo_mapper/spec_helper'
|
2
|
+
|
3
|
+
describe Permits::Ability do
|
4
|
+
context "Editor user" do
|
5
|
+
context "using default :user_id relation - foreign key to User.id" do
|
6
|
+
before :each do
|
7
|
+
@editor = User.create(:name => "Kristian", :role => "editor")
|
8
|
+
@other_guy = User.create(:name => "Random dude", :role => "admin")
|
9
|
+
|
10
|
+
@ability = Permits::Ability.new(@editor, :strategy => :orm)
|
11
|
+
|
12
|
+
@own_comment = Comment.create(:user_id => @editor.id)
|
13
|
+
@other_comment = Comment.create(:user_id => @other_guy.id)
|
14
|
+
# @post = Post.create(:writer => @editor.id)
|
15
|
+
# @article = Article.create(:author => @editor.id)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should be able to :read Comment he owns" do
|
19
|
+
@ability.should be_able_to(:read, Comment)
|
20
|
+
@ability.should be_able_to(:read, @own_comment)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should be able to :update Comment he owns" do
|
24
|
+
@ability.should be_able_to(:update, @own_comment)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should NOT be able to :update Comment he does NOT own" do
|
28
|
+
@ability.should_not be_able_to(:update, @other_comment)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should be able to :delete Comment he owns" do
|
32
|
+
@ability.should be_able_to(:delete, @own_comment)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should NOT be able to :update Comment he does NOT own" do
|
36
|
+
@ability.should_not be_able_to(:delete, @other_comment)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "using custom :writer relation - foreign key to User.id" do
|
41
|
+
before :each do
|
42
|
+
@editor = User.create(:name => "Kristian", :role => "editor")
|
43
|
+
@other_guy = User.create(:name => "Random dude", :role => "admin")
|
44
|
+
|
45
|
+
@ability = Permits::Ability.new(@editor, :strategy => :mongo)
|
46
|
+
|
47
|
+
@own_post = Post.create(:writer => @editor.id)
|
48
|
+
@other_post = Post.create(:writer => @other_guy.id)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should be able to :read Post he owns" do
|
52
|
+
@ability.should be_able_to(:read, Post)
|
53
|
+
@ability.should be_able_to(:read, @own_post)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should be able to :update Post he owns" do
|
57
|
+
@ability.should be_able_to(:update, @own_post)
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should NOT be able to :update Post he does NOT own" do
|
61
|
+
@ability.should_not be_able_to(:update, @other_post)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should be able to :delete Post he owns" do
|
65
|
+
@ability.should be_able_to(:delete, @own_post)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should NOT be able to :update Post he does NOT own" do
|
69
|
+
@ability.should_not be_able_to(:delete, @other_post)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'mongo_mapper/spec_helper'
|
2
|
+
|
3
|
+
describe Permits::Ability do
|
4
|
+
context "Guest user" do
|
5
|
+
before :each do
|
6
|
+
@guest = User.create(:name => "Kristian", :role => "guest")
|
7
|
+
|
8
|
+
@ability = Permits::Ability.new(@guest, :strategy => :orm)
|
9
|
+
|
10
|
+
@comment = Comment.create(:user_id => @guest.id)
|
11
|
+
|
12
|
+
@post = Post.create(:writer => @guest.id)
|
13
|
+
|
14
|
+
@article = Article.create(:author => @guest.id)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should be able to :read Comment and Post but NOT Article" do
|
18
|
+
@ability.can?(:read, Comment).should be_true
|
19
|
+
@ability.can?(:read, @comment).should be_true
|
20
|
+
|
21
|
+
@ability.can?(:read, Post).should be_true
|
22
|
+
@ability.can?(:read, @post).should be_true
|
23
|
+
|
24
|
+
@ability.can?(:read, Article).should be_false
|
25
|
+
@ability.can?(:read, @article).should be_false
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should be not able to :update only Comment" do
|
29
|
+
@ability.can?(:update, Comment).should be_true
|
30
|
+
@ability.can?(:update, @comment).should be_true
|
31
|
+
|
32
|
+
@ability.can?(:update, Post).should be_false
|
33
|
+
@ability.can?(:update, @post).should be_false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'rspec/core'
|
2
|
+
require 'mongo_mapper'
|
3
|
+
require 'cancan/matchers'
|
4
|
+
require 'cancan-permits'
|
5
|
+
require 'cancan-permits/rspec'
|
6
|
+
|
7
|
+
require_all File.dirname(__FILE__) + '/../cancan-permits/fixtures/permits'
|
8
|
+
require_all File.dirname(__FILE__) + '/models/all_models'
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
config.mock_with :mocha
|
12
|
+
end
|
13
|
+
|
14
|
+
module Permits::Roles
|
15
|
+
def self.available
|
16
|
+
User.roles
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class User
|
21
|
+
include MongoMapper::Document
|
22
|
+
|
23
|
+
key :role, String
|
24
|
+
key :name, String
|
25
|
+
|
26
|
+
def self.roles
|
27
|
+
[:guest, :admin, :editor]
|
28
|
+
end
|
29
|
+
|
30
|
+
def has_role? role
|
31
|
+
self.role.to_sym == role.to_sym
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
MongoMapper.database = 'cancan-permits_mongo_mapper'
|
37
|
+
|
38
|
+
module Database
|
39
|
+
def self.teardown
|
40
|
+
# MongoMapper.database.collections.each {|collection| collection.drop }
|
41
|
+
MongoMapper.database.collections.each do |coll|
|
42
|
+
coll.drop unless coll.name =~ /(.*\.)?system\..*/
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
RSpec.configure do |config|
|
49
|
+
config.mock_with :mocha
|
50
|
+
config.before do
|
51
|
+
MongoMapper.database.collections.each do |coll|
|
52
|
+
coll.drop unless coll.name =~ /(.*\.)?system\..*/
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
|
@@ -7,7 +7,7 @@ describe Permits::Ability do
|
|
7
7
|
@editor = User.create(:name => "Kristian", :role => "editor")
|
8
8
|
@other_guy = User.create(:name => "Random dude", :role => "admin")
|
9
9
|
|
10
|
-
@ability = Permits::Ability.new(@editor, :strategy => :
|
10
|
+
@ability = Permits::Ability.new(@editor, :strategy => :orm)
|
11
11
|
|
12
12
|
@own_comment = Comment.create(:user_id => @editor.id)
|
13
13
|
@other_comment = Comment.create(:user_id => @other_guy.id)
|
@@ -42,7 +42,7 @@ describe Permits::Ability do
|
|
42
42
|
@editor = User.create(:name => "Kristian", :role => "editor")
|
43
43
|
@other_guy = User.create(:name => "Random dude", :role => "admin")
|
44
44
|
|
45
|
-
@ability = Permits::Ability.new(@editor, :strategy => :
|
45
|
+
@ability = Permits::Ability.new(@editor, :strategy => :mongo)
|
46
46
|
|
47
47
|
@own_post = Post.create(:writer => @editor.id)
|
48
48
|
@other_post = Post.create(:writer => @other_guy.id)
|
@@ -1,23 +1,11 @@
|
|
1
1
|
require 'mongoid/spec_helper'
|
2
2
|
|
3
|
-
# class Comment
|
4
|
-
# attr_accessor :owner
|
5
|
-
# end
|
6
|
-
#
|
7
|
-
# class Post
|
8
|
-
# attr_accessor :writer
|
9
|
-
# end
|
10
|
-
#
|
11
|
-
# class Article
|
12
|
-
# attr_accessor :author
|
13
|
-
# end
|
14
|
-
|
15
3
|
describe Permits::Ability do
|
16
4
|
context "Guest user" do
|
17
5
|
before :each do
|
18
6
|
@guest = User.create(:name => "Kristian", :role => "guest")
|
19
7
|
|
20
|
-
@ability = Permits::Ability.new(@guest)
|
8
|
+
@ability = Permits::Ability.new(@guest, :strategy => :orm)
|
21
9
|
|
22
10
|
@comment = Comment.create(:user_id => @guest.id)
|
23
11
|
|
@@ -26,10 +14,6 @@ describe Permits::Ability do
|
|
26
14
|
@article = Article.create(:author => @guest.id)
|
27
15
|
end
|
28
16
|
|
29
|
-
# can :read, [Comment, Post]
|
30
|
-
# can [:update, :destroy], [Comment]
|
31
|
-
# can :create, Article
|
32
|
-
|
33
17
|
it "should be able to :read Comment and Post but NOT Article" do
|
34
18
|
@ability.can?(:read, Comment).should be_true
|
35
19
|
@ability.can?(:read, @comment).should be_true
|
@@ -48,7 +32,6 @@ describe Permits::Ability do
|
|
48
32
|
@ability.can?(:update, Post).should be_false
|
49
33
|
@ability.can?(:update, @post).should be_false
|
50
34
|
end
|
51
|
-
|
52
35
|
end
|
53
36
|
|
54
37
|
context "Admin user" do
|
@@ -56,9 +39,7 @@ describe Permits::Ability do
|
|
56
39
|
@admin = User.create(:role => 'admin')
|
57
40
|
@ability = Permits::Ability.new(@admin)
|
58
41
|
end
|
59
|
-
|
60
|
-
# # can :manage, :all
|
61
|
-
#
|
42
|
+
|
62
43
|
it "should be able to :read anything" do
|
63
44
|
@ability.can?(:read, Comment).should be_true
|
64
45
|
@ability.can?(:read, Post).should be_true
|
data/spec/mongoid/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 2
|
9
|
+
version: 0.2.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Kristian Mandrup
|
@@ -149,7 +149,15 @@ files:
|
|
149
149
|
- spec/cancan-permits/permits/fixtures/models.rb
|
150
150
|
- spec/cancan-permits/permits/owner_permits_spec.rb
|
151
151
|
- spec/cancan-permits/permits/permits_spec.rb
|
152
|
+
- spec/data_mapper/models/all_models.rb
|
153
|
+
- spec/data_mapper/owner_permits_spec.rb
|
154
|
+
- spec/data_mapper/permits_spec.rb
|
155
|
+
- spec/data_mapper/spec_helper.rb
|
152
156
|
- spec/generators/permit_generator_spec.rb
|
157
|
+
- spec/mongo_mapper/models/all_models.rb
|
158
|
+
- spec/mongo_mapper/owner_permits_spec.rb
|
159
|
+
- spec/mongo_mapper/permits_spec.rb
|
160
|
+
- spec/mongo_mapper/spec_helper.rb
|
153
161
|
- spec/mongoid/models/all_models.rb
|
154
162
|
- spec/mongoid/owner_permits_spec.rb
|
155
163
|
- spec/mongoid/permits_spec.rb
|
@@ -194,7 +202,15 @@ test_files:
|
|
194
202
|
- spec/cancan-permits/permits/fixtures/models.rb
|
195
203
|
- spec/cancan-permits/permits/owner_permits_spec.rb
|
196
204
|
- spec/cancan-permits/permits/permits_spec.rb
|
205
|
+
- spec/data_mapper/models/all_models.rb
|
206
|
+
- spec/data_mapper/owner_permits_spec.rb
|
207
|
+
- spec/data_mapper/permits_spec.rb
|
208
|
+
- spec/data_mapper/spec_helper.rb
|
197
209
|
- spec/generators/permit_generator_spec.rb
|
210
|
+
- spec/mongo_mapper/models/all_models.rb
|
211
|
+
- spec/mongo_mapper/owner_permits_spec.rb
|
212
|
+
- spec/mongo_mapper/permits_spec.rb
|
213
|
+
- spec/mongo_mapper/spec_helper.rb
|
198
214
|
- spec/mongoid/models/all_models.rb
|
199
215
|
- spec/mongoid/owner_permits_spec.rb
|
200
216
|
- spec/mongoid/permits_spec.rb
|