cbac 0.3.1
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/Manifest +44 -0
- data/README.rdoc +48 -0
- data/Rakefile +36 -0
- data/cbac.gemspec +31 -0
- data/generators/cbac/USAGE +34 -0
- data/generators/cbac/cbac_generator.rb +45 -0
- data/generators/cbac/templates/config/context_roles.rb +10 -0
- data/generators/cbac/templates/config/privileges.rb +30 -0
- data/generators/cbac/templates/controllers/generic_roles_controller.rb +30 -0
- data/generators/cbac/templates/controllers/memberships_controller.rb +22 -0
- data/generators/cbac/templates/controllers/permissions_controller.rb +42 -0
- data/generators/cbac/templates/fixtures/cbac_generic_roles.yml +9 -0
- data/generators/cbac/templates/fixtures/cbac_memberships.yml +8 -0
- data/generators/cbac/templates/fixtures/cbac_permissions.yml +8 -0
- data/generators/cbac/templates/migrate/create_cbac.rb +40 -0
- data/generators/cbac/templates/stylesheets/cbac.css +65 -0
- data/generators/cbac/templates/views/generic_roles/index.html.erb +59 -0
- data/generators/cbac/templates/views/layouts/cbac.html.erb +17 -0
- data/generators/cbac/templates/views/memberships/_update.html.erb +12 -0
- data/generators/cbac/templates/views/memberships/index.html.erb +22 -0
- data/generators/cbac/templates/views/permissions/_update_context_role.html.erb +12 -0
- data/generators/cbac/templates/views/permissions/_update_generic_role.html.erb +12 -0
- data/generators/cbac/templates/views/permissions/index.html.erb +31 -0
- data/init.rb +11 -0
- data/lib/cbac.rb +104 -0
- data/lib/cbac/config.rb +10 -0
- data/lib/cbac/context_role.rb +27 -0
- data/lib/cbac/generic_role.rb +6 -0
- data/lib/cbac/membership.rb +4 -0
- data/lib/cbac/permission.rb +6 -0
- data/lib/cbac/privilege.rb +72 -0
- data/lib/cbac/privilege_set.rb +28 -0
- data/lib/cbac/privilege_set_record.rb +5 -0
- data/lib/cbac/setup.rb +31 -0
- data/tasks/cbac.rake +19 -0
- data/test/fixtures/cbac_generic_roles.yml +9 -0
- data/test/fixtures/cbac_memberships.yml +8 -0
- data/test/fixtures/cbac_permissions.yml +15 -0
- data/test/fixtures/cbac_privilege_set.yml +18 -0
- data/test/test_cbac_authorize_context_roles.rb +43 -0
- data/test/test_cbac_authorize_generic_roles.rb +37 -0
- data/test/test_cbac_context_role.rb +51 -0
- data/test/test_cbac_privilege.rb +99 -0
- data/test/test_cbac_privilege_set.rb +52 -0
- metadata +118 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
# Defines sets of privileges
|
2
|
+
#
|
3
|
+
# To create a new set: PrivilegeSet.add :set_name, "Some comment on what this
|
4
|
+
# set does"
|
5
|
+
#
|
6
|
+
# To retrieve a privilegeset, use the sets attribute. This is a Hash containing
|
7
|
+
# PrivilegeSetRecords. Usage: PrivilegeSet.sets(:set_name). If the PrivilegeSet
|
8
|
+
# already exists, an ArgumentError is thrown stating the set was already
|
9
|
+
# defined.
|
10
|
+
class Cbac::PrivilegeSet
|
11
|
+
class << self
|
12
|
+
# Hash containing all the PrivilegeSetRecords
|
13
|
+
attr_reader :sets
|
14
|
+
|
15
|
+
# Create a new PrivilegeSet
|
16
|
+
def add(symbol, comment)
|
17
|
+
# initialize variables (if applicable)
|
18
|
+
@sets = Hash.new if @sets.nil?
|
19
|
+
# check for double creation
|
20
|
+
raise ArgumentError, "CBAC: PrivilegeSet was already defined: #{symbol.to_s}" if @sets.include?(symbol)
|
21
|
+
# Create record if privilegeset doesn't exist
|
22
|
+
Cbac::PrivilegeSetRecord.create(:name => symbol.to_s) if Cbac::PrivilegeSetRecord.find(:first, :conditions => ["name = ?", symbol.to_s]).nil?
|
23
|
+
record = Cbac::PrivilegeSetRecord.find(:first, :conditions => ["name = ?", symbol.to_s])
|
24
|
+
record.comment = comment
|
25
|
+
@sets[symbol] = record
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/cbac/setup.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
module Cbac
|
2
|
+
# Class performs various functions specific to the CBAC system itself. Most
|
3
|
+
# important function is to check if the system is initialized; without proper
|
4
|
+
# initialization, the bootstrapper will crash.
|
5
|
+
class Setup
|
6
|
+
class << self
|
7
|
+
|
8
|
+
# Check to see if the tables are correctly migrated. If the tables are not
|
9
|
+
# migrated, CBAC should terminate immediately.
|
10
|
+
def check_tables
|
11
|
+
return false unless Cbac::PrivilegeSetRecord.table_exists?
|
12
|
+
return false unless Cbac::GenericRole.table_exists?
|
13
|
+
return false unless Cbac::Membership.table_exists?
|
14
|
+
return false unless Cbac::Permission.table_exists?
|
15
|
+
true
|
16
|
+
end
|
17
|
+
|
18
|
+
# Checks if the system is properly setup. This method is used by the
|
19
|
+
# bootstrapper to see if the system should be initialized. If the system
|
20
|
+
# is not properly setup, the bootstrapper will crash. Checks are performed
|
21
|
+
# to see if all the tables exists.
|
22
|
+
def check
|
23
|
+
if check_tables == false
|
24
|
+
puts "CBAC: not properly initialized: one or more tables are missing. Did you install it correctly? (run generate)"
|
25
|
+
return false
|
26
|
+
end
|
27
|
+
true
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/tasks/cbac.rake
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# This rakefile contains the rake tasks for CBAC
|
2
|
+
#
|
3
|
+
# CBAC is context based access control. It enables an application to
|
4
|
+
#
|
5
|
+
#
|
6
|
+
# cbac:setup
|
7
|
+
# cbac:check
|
8
|
+
#
|
9
|
+
# 2009-11-27 Bert Meerman First version
|
10
|
+
#
|
11
|
+
namespace :cbac do
|
12
|
+
namespace :check do
|
13
|
+
desc "Checks all the available controller methods for missing privileges"
|
14
|
+
task :mapping do
|
15
|
+
load_controller_methods
|
16
|
+
puts "lala"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
###
|
2
|
+
# Context
|
3
|
+
## YAML template for the permissions
|
4
|
+
#role_id: GenericRole.get_id :authorize_context_role
|
5
|
+
|
6
|
+
# used by test_cbac_authorize_context_roles
|
7
|
+
one:
|
8
|
+
context_role: authorize_context_role
|
9
|
+
privilege_set_id: 2
|
10
|
+
|
11
|
+
# used by test_cbac_authorize_generic_roles
|
12
|
+
two:
|
13
|
+
generic_role_id: 1
|
14
|
+
privilege_set_id: 3
|
15
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
###
|
2
|
+
# YAML template for the PrivilegeSets
|
3
|
+
#
|
4
|
+
|
5
|
+
# Privilegeset
|
6
|
+
one:
|
7
|
+
id: 1
|
8
|
+
name: existing_privilege_set
|
9
|
+
|
10
|
+
# Used by the test_cbac_authorize_context_roles
|
11
|
+
two:
|
12
|
+
id: 2
|
13
|
+
name: cbac_context_role
|
14
|
+
|
15
|
+
# Used by the test_cbac_authorize_generic_roles
|
16
|
+
three:
|
17
|
+
id: 3
|
18
|
+
name: cbac_generic_role
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../../../../test/test_helper'))
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
# Dummy code for overriding the default current_user behavior
|
6
|
+
module Cbac
|
7
|
+
def current_user
|
8
|
+
1
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
###
|
13
|
+
# Tests the Cbac system for authorization with context roles
|
14
|
+
#
|
15
|
+
class CbacAuthorizeContextRolesTest < ActiveSupport::TestCase
|
16
|
+
include Cbac
|
17
|
+
|
18
|
+
self.fixture_path = File.join(File.dirname(__FILE__), "fixtures")
|
19
|
+
fixtures :all
|
20
|
+
attr_accessor :authorize_context_eval_string
|
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
|
+
self.authorize_context_eval_string = true
|
33
|
+
assert_equal true, authorization_check("authorize/context", "roles", :get, self)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Run authorization with incorrect authorization
|
37
|
+
def test_authorize_incorrect_privilege
|
38
|
+
self.authorize_context_eval_string = false
|
39
|
+
# ContextRole.roles[:authorize_context_role] = "false"
|
40
|
+
assert_equal false, authorization_check("authorize/context", "roles", :get, self)
|
41
|
+
# ContextRole.roles[:authorize_context_role] = "true"
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../../../../test/test_helper'))
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
# Dummy code for overriding the default current_user behavior
|
6
|
+
module Cbac
|
7
|
+
def current_user
|
8
|
+
1
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
###
|
13
|
+
# Tests the Cbac system for authorization with generic roles
|
14
|
+
#
|
15
|
+
class CbacAuthorizeGenericRolesTest < ActiveSupport::TestCase
|
16
|
+
self.fixture_path = File.join(File.dirname(__FILE__), "fixtures")
|
17
|
+
fixtures :all
|
18
|
+
|
19
|
+
# Setup defines the PrivilegeSet that is being used by all PrivilegeTest methods
|
20
|
+
def setup
|
21
|
+
return if PrivilegeSet.sets.include?(:cbac_generic_role)
|
22
|
+
PrivilegeSet.add :cbac_generic_role, ""
|
23
|
+
PrivilegeSet.add :cbac_generic_role_incorrect, ""
|
24
|
+
Privilege.resource :cbac_generic_role, "authorize/generic/roles", :get
|
25
|
+
Privilege.resource :cbac_generic_role_incorrect, "authorize/generic/roles_incorrect", :get
|
26
|
+
end
|
27
|
+
|
28
|
+
# Check to see if action is correctly authorized
|
29
|
+
def test_authorize_ok
|
30
|
+
assert_equal true, authorization_check("authorize/generic", "roles", :get)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Run authorization with incorrect authorization
|
34
|
+
def test_authorize_incorrect_privilege
|
35
|
+
assert_equal false, authorization_check("authorize/generic", "roles_incorrect", :get)
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../../../../test/test_helper'))
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
# ### Tests the Cbac::ContextRole class
|
6
|
+
#
|
7
|
+
class CbacContextRoleTest < ActiveSupport::TestCase
|
8
|
+
# Adds a new context role This test should add a new ContextRole and
|
9
|
+
# everything should be working.
|
10
|
+
def test_adding_new_context_role_by_string
|
11
|
+
eval_string = "true"
|
12
|
+
assert_difference("ContextRole.roles.length", 1, "Failed to add new ContextRole") do
|
13
|
+
ContextRole.add :test_adding_new_context_role_by_string, eval_string
|
14
|
+
end
|
15
|
+
assert_equal(true, ContextRole.roles.keys.include?(:test_adding_new_context_role_by_string), "ContextRole symbol not found.")
|
16
|
+
result = ContextRole.roles[:test_adding_new_context_role_by_string].call(nil)
|
17
|
+
assert_equal(true, result, "Incorrect eval string.")
|
18
|
+
eval_string = "false"
|
19
|
+
assert_difference("ContextRole.roles.length", 1, "Failed to add new ContextRole") do
|
20
|
+
ContextRole.add :test_adding_new_context_role_by_string2, eval_string
|
21
|
+
end
|
22
|
+
assert_equal(true, ContextRole.roles.keys.include?(:test_adding_new_context_role_by_string2), "ContextRole symbol not found.")
|
23
|
+
result = ContextRole.roles[:test_adding_new_context_role_by_string2].call(nil)
|
24
|
+
assert_equal(false, result, "Incorrect eval string.")
|
25
|
+
end
|
26
|
+
|
27
|
+
# Adds a new context role This test should add a new ContextRole and
|
28
|
+
# everything should be working.
|
29
|
+
def test_adding_new_context_role_by_block_statement
|
30
|
+
assert_difference("ContextRole.roles.length", 1, "Failed to add new ContextRole") do
|
31
|
+
ContextRole.add :test_adding_new_context_role_by_block_stmt do
|
32
|
+
@test = 2
|
33
|
+
true
|
34
|
+
end
|
35
|
+
end
|
36
|
+
assert_equal(true, ContextRole.roles.keys.include?(:test_adding_new_context_role_by_block_stmt), "ContextRole symbol not found.")
|
37
|
+
@test = 0
|
38
|
+
ContextRole.roles[:test_adding_new_context_role_by_block_stmt].call
|
39
|
+
assert_equal(2, @test, "Incorrect eval string.")
|
40
|
+
end
|
41
|
+
|
42
|
+
# When adding an already existing ContextRole, an ArgumentError should be
|
43
|
+
# raised. ContextRoles can only be declared once.
|
44
|
+
def test_adding_double_context_roles
|
45
|
+
ContextRole.add :test_adding_double_context_roles, ""
|
46
|
+
assert_raise(ArgumentError) do
|
47
|
+
ContextRole.add :test_adding_double_context_roles, ""
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../../../../test/test_helper'))
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
# ### Tests the Cbac::Privilege class
|
6
|
+
#
|
7
|
+
class CbacPrivilegeTest < ActiveSupport::TestCase
|
8
|
+
# Setup defines the PrivilegeSet that is being used by all PrivilegeTest
|
9
|
+
# methods
|
10
|
+
def setup
|
11
|
+
PrivilegeSet.add :cbac_privilege, "" unless PrivilegeSet.sets.include?(:cbac_privilege)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Test adding get and post resources It is possible to add a resource using
|
15
|
+
# different names for actions. This method also checks if these aliases are
|
16
|
+
# all operating well.
|
17
|
+
def test_add_resources
|
18
|
+
assert_difference("Privilege.get_resources.length", 4, "GET resource was not added.") do
|
19
|
+
Privilege.resource :cbac_privilege, "add/resources/get/1", :GET
|
20
|
+
Privilege.resource :cbac_privilege, "add/resources/get/2", :get
|
21
|
+
Privilege.resource :cbac_privilege, "add/resources/get/3", :g
|
22
|
+
Privilege.resource :cbac_privilege, "add/resources/get/4", :idempotent
|
23
|
+
end
|
24
|
+
assert_difference("Privilege.post_resources.length", 3, "POST resource was not added.") do
|
25
|
+
Privilege.resource :cbac_privilege, "add/resources/post/1", :POST
|
26
|
+
Privilege.resource :cbac_privilege, "add/resources/post/2", :post
|
27
|
+
Privilege.resource :cbac_privilege, "add/resources/post/3", :p
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# If an invalid action is specified, the method must raise an ArgumentError
|
32
|
+
# exception.
|
33
|
+
def test_add_incorrect_action
|
34
|
+
assert_raise(ArgumentError) do
|
35
|
+
Privilege.resource :cbac_privilege, "add/incorrect/action", :error
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# If a privilege is added to a non existing PrivilegeSet, an ArgumentError
|
40
|
+
# exception must occur.
|
41
|
+
def test_add_resource_to_invalid_privilege_set
|
42
|
+
assert_raise(ArgumentError) do
|
43
|
+
Privilege.resource :cbac_privilege_error, "add/resource/to/invalid/privilege/set", :get
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# Test the Privilege.select method. This method accepts a controller method
|
48
|
+
# string and an action type It returns the privilegesets that comply with this
|
49
|
+
# combination The actions post, put and delete are identical. This test aims
|
50
|
+
# at testing this assumption.
|
51
|
+
def test_select_correct
|
52
|
+
Privilege.resource :cbac_privilege, "select/correct/get", :get
|
53
|
+
Privilege.resource :cbac_privilege, "select/correct/post", :post
|
54
|
+
Privilege.resource :cbac_privilege, "select/correct/put", :post
|
55
|
+
Privilege.resource :cbac_privilege, "select/correct/delete", :post
|
56
|
+
assert_equal 1, Privilege.select("select/correct/get", :get).length
|
57
|
+
[:post, :put, :delete].each do |action|
|
58
|
+
assert_equal 1, Privilege.select("select/correct/post", action).length
|
59
|
+
assert_equal 1, Privilege.select("select/correct/put", action).length
|
60
|
+
assert_equal 1, Privilege.select("select/correct/delete", action).length
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_exception()
|
65
|
+
begin
|
66
|
+
yield
|
67
|
+
rescue Exception => e
|
68
|
+
return e.message
|
69
|
+
end
|
70
|
+
raise "No exception was thrown"
|
71
|
+
end
|
72
|
+
|
73
|
+
# test selecting an incorrect action type
|
74
|
+
def test_select_incorrect_action_types
|
75
|
+
controller_method = "select/incorrect/action/types/get"
|
76
|
+
Privilege.resource :cbac_privilege, controller_method, :get
|
77
|
+
Privilege.select(controller_method, :get)
|
78
|
+
assert_match(/Incorrect action_type/, test_exception { Privilege.select(controller_method, :error) })
|
79
|
+
end
|
80
|
+
|
81
|
+
# If a user asks for the wrong action_type (e.g. a request is made for 'get'
|
82
|
+
# but there are only 'post' privileges or vica versa) the system will throw an
|
83
|
+
# exception as expected, but the system will also hint at the possibility of
|
84
|
+
# messing up get and post.
|
85
|
+
def test_select_the_other_action_type
|
86
|
+
controller_method = "select/the/other/action/type/get"
|
87
|
+
Privilege.resource :cbac_privilege, controller_method, :get
|
88
|
+
assert_match(/PrivilegeSets only exist for other action/, test_exception { Privilege.select(controller_method, :post) })
|
89
|
+
end
|
90
|
+
|
91
|
+
# Trying to find privileges for a set that doesn't exist, should result in an
|
92
|
+
# exception
|
93
|
+
def test_select_could_not_find_any_privilegeset
|
94
|
+
controller_method = "select/could/not/find/any/privilegeset/get"
|
95
|
+
assert_raise(RuntimeError) do
|
96
|
+
Privilege.select(controller_method, :post)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../../../../test/test_helper'))
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
###
|
6
|
+
# Tests the Cbac::PrivilegeSet class
|
7
|
+
#
|
8
|
+
class CbacPrivilegeSetTest < ActiveSupport::TestCase
|
9
|
+
self.fixture_path = File.join(File.dirname(__FILE__), "fixtures")
|
10
|
+
fixtures :all
|
11
|
+
|
12
|
+
# Adds a new privilege to the PrivilegeSet.
|
13
|
+
# This test should add a new privilege and everything should be working.
|
14
|
+
def test_adding_new_privilege_set
|
15
|
+
comment = "test_adding_new_privilege_set"
|
16
|
+
assert_difference("PrivilegeSet.sets.length", 1, "Adding test PrivilegeSet") do
|
17
|
+
PrivilegeSet.add :test_adding_new_privilege_set, comment
|
18
|
+
end
|
19
|
+
assert_equal(true, PrivilegeSet.sets.include?(:test_adding_new_privilege_set), "PrivilegeSet symbol not found.")
|
20
|
+
assert_equal(comment, PrivilegeSet.sets[:test_adding_new_privilege_set].comment, "Incorrect comment.")
|
21
|
+
end
|
22
|
+
|
23
|
+
# When adding an already existing PrivilegeSet, an ArgumentError should be raised.
|
24
|
+
# PrivilegeSets can only be declared once.
|
25
|
+
def test_adding_double_privilege_sets
|
26
|
+
PrivilegeSet.add :test_adding_double_privilege_sets, ""
|
27
|
+
assert_raise(ArgumentError) do
|
28
|
+
PrivilegeSet.add :test_adding_double_privilege_sets, ""
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# This privilegeset is already in the database. The id
|
33
|
+
# should therefore be identical to the id specified in the fixture.
|
34
|
+
# Also, the number of records should not change.
|
35
|
+
def test_initializing_existing_privilege_set
|
36
|
+
assert_difference("PrivilegeSet.sets.length", 1, "Adding test PrivilegeSet") do
|
37
|
+
assert_difference("Cbac::PrivilegeSetRecord.find(:all).length", 0, "Record should have been added to table") do
|
38
|
+
PrivilegeSet.add :existing_privilege_set, "Something"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# This privilegeset does not yet exist. A new entry should be created
|
44
|
+
# in the database. Also, the id should not be zero.
|
45
|
+
def test_initializing_new_privilege_set
|
46
|
+
assert_difference("PrivilegeSet.sets.length", 1, "Adding test PrivilegeSet") do
|
47
|
+
assert_difference("Cbac::PrivilegeSetRecord.find(:all).length", 1, "Record should not be added to table - record already exists") do
|
48
|
+
PrivilegeSet.add :test_initializing_new_privilege_set, "Something"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
metadata
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cbac
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Bert Meerman
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2010-02-05 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Simple authorization system for Rails applications. Allows you to develop applications with a mixed role based authorization and a context based authorization model. Does not supply authentication.
|
17
|
+
email: b.meerman@ogd.nl
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README.rdoc
|
24
|
+
- lib/cbac.rb
|
25
|
+
- lib/cbac/config.rb
|
26
|
+
- lib/cbac/context_role.rb
|
27
|
+
- lib/cbac/generic_role.rb
|
28
|
+
- lib/cbac/membership.rb
|
29
|
+
- lib/cbac/permission.rb
|
30
|
+
- lib/cbac/privilege.rb
|
31
|
+
- lib/cbac/privilege_set.rb
|
32
|
+
- lib/cbac/privilege_set_record.rb
|
33
|
+
- lib/cbac/setup.rb
|
34
|
+
- tasks/cbac.rake
|
35
|
+
files:
|
36
|
+
- Manifest
|
37
|
+
- README.rdoc
|
38
|
+
- Rakefile
|
39
|
+
- cbac.gemspec
|
40
|
+
- generators/cbac/USAGE
|
41
|
+
- generators/cbac/cbac_generator.rb
|
42
|
+
- generators/cbac/templates/config/context_roles.rb
|
43
|
+
- generators/cbac/templates/config/privileges.rb
|
44
|
+
- generators/cbac/templates/controllers/generic_roles_controller.rb
|
45
|
+
- generators/cbac/templates/controllers/memberships_controller.rb
|
46
|
+
- generators/cbac/templates/controllers/permissions_controller.rb
|
47
|
+
- generators/cbac/templates/fixtures/cbac_generic_roles.yml
|
48
|
+
- generators/cbac/templates/fixtures/cbac_memberships.yml
|
49
|
+
- generators/cbac/templates/fixtures/cbac_permissions.yml
|
50
|
+
- generators/cbac/templates/migrate/create_cbac.rb
|
51
|
+
- generators/cbac/templates/stylesheets/cbac.css
|
52
|
+
- generators/cbac/templates/views/generic_roles/index.html.erb
|
53
|
+
- generators/cbac/templates/views/layouts/cbac.html.erb
|
54
|
+
- generators/cbac/templates/views/memberships/_update.html.erb
|
55
|
+
- generators/cbac/templates/views/memberships/index.html.erb
|
56
|
+
- generators/cbac/templates/views/permissions/_update_context_role.html.erb
|
57
|
+
- generators/cbac/templates/views/permissions/_update_generic_role.html.erb
|
58
|
+
- generators/cbac/templates/views/permissions/index.html.erb
|
59
|
+
- init.rb
|
60
|
+
- lib/cbac.rb
|
61
|
+
- lib/cbac/config.rb
|
62
|
+
- lib/cbac/context_role.rb
|
63
|
+
- lib/cbac/generic_role.rb
|
64
|
+
- lib/cbac/membership.rb
|
65
|
+
- lib/cbac/permission.rb
|
66
|
+
- lib/cbac/privilege.rb
|
67
|
+
- lib/cbac/privilege_set.rb
|
68
|
+
- lib/cbac/privilege_set_record.rb
|
69
|
+
- lib/cbac/setup.rb
|
70
|
+
- tasks/cbac.rake
|
71
|
+
- test/fixtures/cbac_generic_roles.yml
|
72
|
+
- test/fixtures/cbac_memberships.yml
|
73
|
+
- test/fixtures/cbac_permissions.yml
|
74
|
+
- test/fixtures/cbac_privilege_set.yml
|
75
|
+
- test/test_cbac_authorize_context_roles.rb
|
76
|
+
- test/test_cbac_authorize_generic_roles.rb
|
77
|
+
- test/test_cbac_context_role.rb
|
78
|
+
- test/test_cbac_privilege.rb
|
79
|
+
- test/test_cbac_privilege_set.rb
|
80
|
+
has_rdoc: true
|
81
|
+
homepage: http://cbac.rubyforge.org
|
82
|
+
licenses: []
|
83
|
+
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options:
|
86
|
+
- --line-numbers
|
87
|
+
- --inline-source
|
88
|
+
- --title
|
89
|
+
- Cbac
|
90
|
+
- --main
|
91
|
+
- README.rdoc
|
92
|
+
require_paths:
|
93
|
+
- lib
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: "0"
|
99
|
+
version:
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: "1.2"
|
105
|
+
version:
|
106
|
+
requirements: []
|
107
|
+
|
108
|
+
rubyforge_project: cbac
|
109
|
+
rubygems_version: 1.3.5
|
110
|
+
signing_key:
|
111
|
+
specification_version: 3
|
112
|
+
summary: CBAC - Simple authorization system for Rails applications.
|
113
|
+
test_files:
|
114
|
+
- test/test_cbac_authorize_context_roles.rb
|
115
|
+
- test/test_cbac_authorize_generic_roles.rb
|
116
|
+
- test/test_cbac_context_role.rb
|
117
|
+
- test/test_cbac_privilege.rb
|
118
|
+
- test/test_cbac_privilege_set.rb
|