spec/access_rules_spec.rb in tuersteher-0.4.0 vs spec/access_rules_spec.rb in tuersteher-0.4.1
- old
+ new
@@ -90,10 +90,11 @@
class SampleModel1; end
class SampleModel2; end
before do
rules = [
+ ModelAccessRule.new(:all).grant.role(:sysadmin),
ModelAccessRule.new(SampleModel1).grant.method(:all),
ModelAccessRule.new(SampleModel2).grant.method(:read),
ModelAccessRule.new(SampleModel2).grant.method(:update).role(:user).extension(:owner?),
ModelAccessRule.new(SampleModel2).deny.method(:create),
ModelAccessRule.new(SampleModel2).grant.method(:all).role(:admin),
@@ -139,9 +140,26 @@
it "should not be true for this" do
AccessRules.model_access?(@user, @model2, :create).should_not be_true
end
end
+
+
+ context "User with role :sysadmin" do
+ before do
+ @user.stub(:has_role?){|role| role==:sysadmin}
+ end
+
+ it "should be true for this" do
+ AccessRules.model_access?(@user, "test", :xyz).should be_true
+ AccessRules.model_access?(@user, @model1, :xyz).should be_true
+ AccessRules.model_access?(@user, @model2, :read).should be_true
+ AccessRules.model_access?(@user, @model2, :update).should be_true
+ AccessRules.model_access?(@user, @model2, :delete).should be_true
+ AccessRules.model_access?(@user, @model2, :create).should be_true
+ end
+ end
+
context "without user" do
it "should be true for this models" do
AccessRules.model_access?(nil, @model1, :xyz).should be_true
AccessRules.model_access?(nil, @model2, :read).should be_true