cbac 0.6.5 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,11 +1,8 @@
1
- require 'spec'
2
- require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
3
- require 'cbac/cbac_pristine/pristine_role'
1
+ require 'spec_helper'
4
2
 
5
3
  include Cbac::CbacPristine
6
4
 
7
5
  describe "CbacPristineRole" do
8
-
9
6
  describe "convert pristine role to a yml fixture" do
10
7
  it "should return an empty string if the pristine role is of type :context" do
11
8
  pristine_role = PristineRole.new(:role_id => 0, :role_type => PristineRole.ROLE_TYPES[:context], :name => "name is irrelevant")
@@ -21,7 +18,6 @@ describe "CbacPristineRole" do
21
18
  }.should raise_error(ArgumentError)
22
19
  end
23
20
 
24
-
25
21
  it "should return a yml string starting with cbac_generic_role_ " do
26
22
  pristine_role = PristineRole.new(:role_id => 0, :role_type => PristineRole.ROLE_TYPES[:generic], :name => "name is irrelevant")
27
23
 
@@ -78,8 +74,5 @@ describe "CbacPristineRole" do
78
74
  admin_role.id.should be_nil
79
75
  end
80
76
  end
81
-
82
-
83
-
84
77
  end
85
78
 
@@ -0,0 +1,11 @@
1
+ module Dating
2
+ class DaughterController < ActionController::Base
3
+ include Cbac
4
+
5
+ def take_to_dinner; end
6
+ def bring_home; end
7
+
8
+ private
9
+ attr_accessor :current_user
10
+ end
11
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,37 @@
1
1
  ENV["RAILS_ENV"] ||= 'test'
2
2
 
3
- require 'spec/autorun'
4
- require 'spec/rails'
5
-
6
- Spec::Runner.configure do |config|
7
- # If you're not using ActiveRecord you should remove these
8
- # lines, delete config/database.yml and disable :active_record
9
- # in your config/boot.rb
10
- config.use_transactional_fixtures = true
11
- config.use_instantiated_fixtures = false
12
- end
3
+ require 'bundler'
4
+ Bundler.require
5
+ require 'rails/all'
6
+ require 'rspec/rails'
7
+
8
+ require 'cbac'
9
+
10
+ require 'support/schema'
11
+ require 'database_cleaner'
12
+
13
+ DatabaseCleaner.strategy = :transaction
14
+
15
+ RSpec.configure do |config|
16
+ config.before(:suite) do
17
+ Cbac::Schema.load
18
+
19
+ Cbac::Config.verbose = false
20
+
21
+ o = Object.new
22
+ o.send :extend, Cbac
23
+ o.cbac_boot!
24
+ end
25
+
26
+ config.after(:suite) do
27
+ Cbac::Schema.drop
28
+ end
29
+
30
+ config.before(:each) do
31
+ DatabaseCleaner.start
32
+ end
33
+
34
+ config.after(:each) do
35
+ DatabaseCleaner.clean
36
+ end
37
+ end
@@ -0,0 +1,30 @@
1
+ require File.expand_path('../../../lib/generators/cbac/copy_files/migrate/create_cbac_from_scratch.rb', __FILE__)
2
+
3
+ class Cbac::Schema
4
+ DATABASE_FILE = File.expand_path('../test.sqlite3', __FILE__)
5
+
6
+ def self.load
7
+ print "Loading fresh database schema..."
8
+
9
+ connect!
10
+ CreateCbacFromScratch.suppress_messages do
11
+ CreateCbacFromScratch.up
12
+ end
13
+ connect!
14
+
15
+ puts "done"
16
+ end
17
+
18
+ def self.drop
19
+ FileUtils.rm_rf(DATABASE_FILE)
20
+ end
21
+
22
+ private
23
+ def self.connect!
24
+ ActiveRecord::Base.establish_connection(
25
+ :adapter => 'sqlite3',
26
+ :database => Cbac::Schema::DATABASE_FILE
27
+ )
28
+ end
29
+
30
+ end
@@ -99,18 +99,22 @@ class CbacPrivilegeTest < ActiveSupport::TestCase
99
99
 
100
100
  # Test the Privilege.select method. This method accepts a controller method
101
101
  # string and an action type It returns the privilegesets that comply with this
102
- # combination The actions post, put and delete are identical. This test aims
102
+ # combination The actions post, put, patch and delete are identical. This test aims
103
103
  # at testing this assumption.
104
104
  def test_select_correct
105
105
  Privilege.resource :cbac_privilege, "select/correct/get", :get
106
- Privilege.resource :cbac_privilege, "select/correct/post", :post
107
- Privilege.resource :cbac_privilege, "select/correct/put", :post
108
- Privilege.resource :cbac_privilege, "select/correct/delete", :post
106
+ post_action_types = [:post, :put, :patch, :delete]
107
+
108
+ post_action_types.each do |action|
109
+ Privilege.resource :cbac_privilege, "select/correct/#{action}", :post
110
+ end
111
+
109
112
  assert_equal 1, Privilege.select("select/correct/get", :get).length
110
- [:post, :put, :delete].each do |action|
111
- assert_equal 1, Privilege.select("select/correct/post", action).length
112
- assert_equal 1, Privilege.select("select/correct/put", action).length
113
- assert_equal 1, Privilege.select("select/correct/delete", action).length
113
+
114
+ post_action_types.each do |configured_action|
115
+ post_action_types.each do |actual_action|
116
+ assert_equal 1, Privilege.select("select/correct/#{configured_action}", actual_action).length
117
+ end
114
118
  end
115
119
  end
116
120
 
@@ -149,4 +153,4 @@ class CbacPrivilegeTest < ActiveSupport::TestCase
149
153
  Privilege.select(controller_method, :post)
150
154
  end
151
155
  end
152
- end
156
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cbac
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.6.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,72 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-23 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2013-01-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '3.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec-rails
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: sqlite3
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: database_cleaner
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
14
78
  description: Simple authorization system for Rails applications. Allows you to develop
15
79
  applications with a mixed role based authorization and a context based authorization
16
80
  model. Does not supply authentication.
@@ -35,6 +99,7 @@ extra_rdoc_files:
35
99
  - lib/cbac/privilege_set.rb
36
100
  - lib/cbac/privilege_set_record.rb
37
101
  - lib/cbac/setup.rb
102
+ - lib/cbac/version.rb
38
103
  - lib/generators/cbac/USAGE
39
104
  - lib/generators/cbac/cbac_generator.rb
40
105
  - lib/generators/cbac/copy_files/config/cbac.pristine
@@ -49,7 +114,6 @@ extra_rdoc_files:
49
114
  - lib/generators/cbac/copy_files/fixtures/cbac_permissions.yml
50
115
  - lib/generators/cbac/copy_files/initializers/cbac_config.rb
51
116
  - lib/generators/cbac/copy_files/migrate/create_cbac_from_scratch.rb
52
- - lib/generators/cbac/copy_files/migrate/create_cbac_upgrade_path.rb
53
117
  - lib/generators/cbac/copy_files/stylesheets/cbac.css
54
118
  - lib/generators/cbac/copy_files/tasks/cbac.rake
55
119
  - lib/generators/cbac/copy_files/views/generic_roles/index.html.erb
@@ -64,9 +128,9 @@ extra_rdoc_files:
64
128
  files:
65
129
  - Gemfile
66
130
  - Gemfile.lock
67
- - Manifest
68
131
  - README.rdoc
69
132
  - Rakefile
133
+ - cbac.gemspec
70
134
  - config/cbac/context_roles.rb
71
135
  - config/cbac/privileges.rb
72
136
  - context_roles.rb
@@ -87,6 +151,7 @@ files:
87
151
  - lib/cbac/privilege_set.rb
88
152
  - lib/cbac/privilege_set_record.rb
89
153
  - lib/cbac/setup.rb
154
+ - lib/cbac/version.rb
90
155
  - lib/generators/cbac/USAGE
91
156
  - lib/generators/cbac/cbac_generator.rb
92
157
  - lib/generators/cbac/copy_files/config/cbac.pristine
@@ -101,7 +166,6 @@ files:
101
166
  - lib/generators/cbac/copy_files/fixtures/cbac_permissions.yml
102
167
  - lib/generators/cbac/copy_files/initializers/cbac_config.rb
103
168
  - lib/generators/cbac/copy_files/migrate/create_cbac_from_scratch.rb
104
- - lib/generators/cbac/copy_files/migrate/create_cbac_upgrade_path.rb
105
169
  - lib/generators/cbac/copy_files/stylesheets/cbac.css
106
170
  - lib/generators/cbac/copy_files/tasks/cbac.rake
107
171
  - lib/generators/cbac/copy_files/views/generic_roles/index.html.erb
@@ -115,25 +179,27 @@ files:
115
179
  - migrations/20110211105533_add_pristine_files_to_cbac_upgrade_path.rb
116
180
  - privileges.rb
117
181
  - rails/init.rb
182
+ - spec/cbac_authorization_check_spec.rb
118
183
  - spec/cbac_pristine_file_spec.rb
119
184
  - spec/cbac_pristine_permission_spec.rb
120
185
  - spec/cbac_pristine_role_spec.rb
186
+ - spec/fixtures/controllers/dating/daughter_controller.rb
121
187
  - spec/rcov.opts
122
188
  - spec/spec.opts
123
189
  - spec/spec_helper.rb
190
+ - spec/support/schema.rb
124
191
  - tasks/cbac.rake
125
192
  - test/fixtures/cbac_generic_roles.yml
126
193
  - test/fixtures/cbac_memberships.yml
127
194
  - test/fixtures/cbac_permissions.yml
128
195
  - test/fixtures/cbac_privilege_set.yml
129
196
  - test/test_cbac_actions.rb
130
- - test/test_cbac_authorize_context_roles.rb
131
197
  - test/test_cbac_authorize_generic_roles.rb
132
198
  - test/test_cbac_context_role.rb
133
199
  - test/test_cbac_privilege.rb
134
200
  - test/test_cbac_privilege_set.rb
135
201
  - test/test_helper.rb
136
- - cbac.gemspec
202
+ - Manifest
137
203
  homepage: http://cbac.rubyforge.org
138
204
  licenses: []
139
205
  post_install_message:
@@ -170,5 +236,4 @@ test_files:
170
236
  - test/test_helper.rb
171
237
  - test/test_cbac_actions.rb
172
238
  - test/test_cbac_privilege_set.rb
173
- - test/test_cbac_authorize_context_roles.rb
174
239
  - test/test_cbac_authorize_generic_roles.rb
@@ -1,40 +0,0 @@
1
- class CreateCbacUpgradePath < ActiveRecord::Migration
2
- def self.up
3
-
4
- create_table :cbac_pristine_files do |t|
5
- t.string :type
6
- t.string :file_name
7
- t.timestamps
8
- end
9
-
10
- create_table :cbac_staged_permissions do |t|
11
- t.integer :pristine_role_id
12
- t.integer :pristine_file_id
13
- t.string :privilege_set_name
14
- t.integer :line_number
15
- t.string :comment
16
- t.text :operation, :limit => 2
17
- t.timestamps
18
- end
19
-
20
- create_table :cbac_staged_roles do |t|
21
- t.string :role_type
22
- t.string :name
23
- t.integer :role_id
24
- t.timestamps
25
- end
26
-
27
- create_table :cbac_known_permissions do |t|
28
- t.integer :permission_number, :null => :no
29
- t.integer :permission_type, :default => 0
30
- end
31
-
32
- end
33
-
34
- def self.down
35
- drop_table :cbac_pristine_files
36
- drop_table :cbac_staged_permissions
37
- drop_table :cbac_staged_roles
38
- drop_table :cbac_known_permissions
39
- end
40
- end
@@ -1,39 +0,0 @@
1
- # Copyright 2010 Bert Meerman
2
- require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
3
-
4
- # Dummy code for overriding the default current_user behavior
5
- module Cbac
6
- def current_user
7
- 1
8
- end
9
- end
10
-
11
- ###
12
- # Tests the Cbac system for authorization with context roles
13
- #
14
- class CbacAuthorizeContextRolesTest < ActiveSupport::TestCase
15
- include Cbac
16
-
17
- #self.fixture_path = File.join(File.dirname(__FILE__), "fixtures")
18
- #fixtures :all
19
- attr_accessor :authorize_context_eval_string
20
- attr_accessor :session
21
-
22
- # Setup defines the PrivilegeSet that is being used by all PrivilegeTest methods
23
- def setup
24
- return if PrivilegeSet.sets.include?(:cbac_context_role)
25
- PrivilegeSet.add :cbac_context_role, ""
26
- Privilege.resource :cbac_context_role, "authorize/context/roles", :get
27
- ContextRole.add :authorize_context_role, "context[:authorize_context_eval_string]"
28
- end
29
-
30
- # Check to see if action is correctly authorized
31
- def test_authorize_ok
32
- assert_equal true, authorization_check("authorize/context", "roles", :get, {:authorize_context_eval_string => true})
33
- end
34
-
35
- # Run authorization with incorrect authorization
36
- def test_authorize_incorrect_privilege
37
- assert_equal false, authorization_check("authorize/context", "roles", :get, {:authorize_context_eval_string => false})
38
- end
39
- end