annotation_security 1.0.1 → 1.0.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/CHANGELOG.md +14 -0
- data/HOW-TO.md +275 -0
- data/{MIT-LICENSE → LICENSE} +1 -1
- data/README.md +39 -0
- data/Rakefile +62 -55
- data/assets/app/helpers/annotation_security_helper.rb +8 -8
- data/assets/config/initializers/annotation_security.rb +11 -11
- data/assets/config/security/relations.rb +20 -20
- data/assets/vendor/plugins/annotation_security/init.rb +13 -13
- data/bin/annotation_security +7 -7
- data/lib/annotation_security/exceptions.rb +124 -124
- data/lib/annotation_security/exec.rb +188 -188
- data/lib/annotation_security/filters.rb +37 -37
- data/lib/annotation_security/includes/action_controller.rb +144 -143
- data/lib/annotation_security/includes/active_record.rb +27 -27
- data/lib/annotation_security/includes/helper.rb +215 -215
- data/lib/annotation_security/includes/resource.rb +84 -84
- data/lib/annotation_security/includes/role.rb +30 -30
- data/lib/annotation_security/includes/user.rb +26 -26
- data/lib/annotation_security/manager/policy_factory.rb +29 -29
- data/lib/annotation_security/manager/policy_manager.rb +79 -79
- data/lib/annotation_security/manager/relation_loader.rb +272 -272
- data/lib/annotation_security/manager/resource_manager.rb +36 -36
- data/lib/annotation_security/manager/right_loader.rb +87 -87
- data/lib/annotation_security/model_observer.rb +61 -61
- data/lib/annotation_security/policy/abstract_policy.rb +344 -344
- data/lib/annotation_security/policy/abstract_static_policy.rb +75 -75
- data/lib/annotation_security/policy/all_resources_policy.rb +20 -20
- data/lib/annotation_security/policy/rule.rb +340 -340
- data/lib/annotation_security/policy/rule_set.rb +138 -138
- data/lib/annotation_security/rails.rb +38 -38
- data/lib/annotation_security/user_wrapper.rb +73 -73
- data/lib/annotation_security/utils.rb +141 -141
- data/lib/annotation_security/version.rb +10 -0
- data/lib/annotation_security.rb +102 -97
- data/lib/extensions/action_controller.rb +32 -32
- data/lib/extensions/active_record.rb +34 -34
- data/lib/extensions/filter.rb +133 -133
- data/lib/extensions/object.rb +10 -10
- data/lib/security_context.rb +589 -551
- data/spec/annotation_security/exceptions_spec.rb +16 -16
- data/spec/annotation_security/includes/helper_spec.rb +82 -82
- data/spec/annotation_security/manager/policy_manager_spec.rb +15 -15
- data/spec/annotation_security/manager/resource_manager_spec.rb +17 -17
- data/spec/annotation_security/manager/right_loader_spec.rb +17 -17
- data/spec/annotation_security/policy/abstract_policy_spec.rb +16 -16
- data/spec/annotation_security/policy/all_resources_policy_spec.rb +24 -24
- data/spec/annotation_security/policy/rule_set_spec.rb +112 -112
- data/spec/annotation_security/policy/rule_spec.rb +77 -77
- data/spec/annotation_security/policy/test_policy_spec.rb +80 -80
- data/spec/annotation_security/security_context_spec.rb +78 -78
- data/spec/annotation_security/utils_spec.rb +73 -73
- data/spec/helper/test_controller.rb +65 -65
- data/spec/helper/test_helper.rb +5 -5
- data/spec/helper/test_relations.rb +6 -6
- data/spec/helper/test_resource.rb +38 -38
- data/spec/helper/test_role.rb +21 -21
- data/spec/helper/test_user.rb +31 -31
- data/spec/rails_stub.rb +37 -37
- metadata +94 -72
- data/CHANGELOG +0 -2
- data/HOW-TO +0 -261
- data/README +0 -39
@@ -1,66 +1,66 @@
|
|
1
|
-
class TestController < ActionController::Base
|
2
|
-
|
3
|
-
describe :show, 'shows a test_resource'
|
4
|
-
describe :edit, 'edit some test_resources'
|
5
|
-
describe :show_edit, 'shows a test_resource', 'edits a test_resource'
|
6
|
-
describe :edit_with_render, 'edits the test_resource in @resource'
|
7
|
-
describe :delete, 'delete test_resource by :id'
|
8
|
-
describe :list, 'list all test_resources in @list'
|
9
|
-
|
10
|
-
|
11
|
-
def test_init(action, params)
|
12
|
-
@action = action
|
13
|
-
@params = params
|
14
|
-
end
|
15
|
-
|
16
|
-
def action_name
|
17
|
-
@action
|
18
|
-
end
|
19
|
-
|
20
|
-
def params
|
21
|
-
@params
|
22
|
-
end
|
23
|
-
|
24
|
-
def show
|
25
|
-
@resource = TestResource.find params[:id]
|
26
|
-
end
|
27
|
-
|
28
|
-
def edit
|
29
|
-
@resource = TestResource.find params[:id]
|
30
|
-
end
|
31
|
-
|
32
|
-
def show_edit
|
33
|
-
@resource = TestResource.find params[:id]
|
34
|
-
end
|
35
|
-
|
36
|
-
def edit_with_render
|
37
|
-
@resource = TestResource.find params[:id1]
|
38
|
-
render 'view'
|
39
|
-
@resource = TestResource.find params[:id2]
|
40
|
-
end
|
41
|
-
|
42
|
-
def delete
|
43
|
-
self.class.enter_delete
|
44
|
-
@resource = TestResource.find params[:id]
|
45
|
-
end
|
46
|
-
|
47
|
-
def list
|
48
|
-
r1 = TestResource.find params[:id1]
|
49
|
-
r2 = TestResource.find params[:id2]
|
50
|
-
@list = [r1, r2]
|
51
|
-
end
|
52
|
-
|
53
|
-
def render(*args)
|
54
|
-
super(*args)
|
55
|
-
self.class.exit_render
|
56
|
-
end
|
57
|
-
|
58
|
-
# callbacks used for mocking
|
59
|
-
|
60
|
-
def self.enter_delete
|
61
|
-
end
|
62
|
-
|
63
|
-
def self.exit_render
|
64
|
-
end
|
65
|
-
|
1
|
+
class TestController < ActionController::Base
|
2
|
+
|
3
|
+
describe :show, 'shows a test_resource'
|
4
|
+
describe :edit, 'edit some test_resources'
|
5
|
+
describe :show_edit, 'shows a test_resource', 'edits a test_resource'
|
6
|
+
describe :edit_with_render, 'edits the test_resource in @resource'
|
7
|
+
describe :delete, 'delete test_resource by :id'
|
8
|
+
describe :list, 'list all test_resources in @list'
|
9
|
+
|
10
|
+
|
11
|
+
def test_init(action, params)
|
12
|
+
@action = action
|
13
|
+
@params = params
|
14
|
+
end
|
15
|
+
|
16
|
+
def action_name
|
17
|
+
@action
|
18
|
+
end
|
19
|
+
|
20
|
+
def params
|
21
|
+
@params
|
22
|
+
end
|
23
|
+
|
24
|
+
def show
|
25
|
+
@resource = TestResource.find params[:id]
|
26
|
+
end
|
27
|
+
|
28
|
+
def edit
|
29
|
+
@resource = TestResource.find params[:id]
|
30
|
+
end
|
31
|
+
|
32
|
+
def show_edit
|
33
|
+
@resource = TestResource.find params[:id]
|
34
|
+
end
|
35
|
+
|
36
|
+
def edit_with_render
|
37
|
+
@resource = TestResource.find params[:id1]
|
38
|
+
render 'view'
|
39
|
+
@resource = TestResource.find params[:id2]
|
40
|
+
end
|
41
|
+
|
42
|
+
def delete
|
43
|
+
self.class.enter_delete
|
44
|
+
@resource = TestResource.find params[:id]
|
45
|
+
end
|
46
|
+
|
47
|
+
def list
|
48
|
+
r1 = TestResource.find params[:id1]
|
49
|
+
r2 = TestResource.find params[:id2]
|
50
|
+
@list = [r1, r2]
|
51
|
+
end
|
52
|
+
|
53
|
+
def render(*args)
|
54
|
+
super(*args)
|
55
|
+
self.class.exit_render
|
56
|
+
end
|
57
|
+
|
58
|
+
# callbacks used for mocking
|
59
|
+
|
60
|
+
def self.enter_delete
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.exit_render
|
64
|
+
end
|
65
|
+
|
66
66
|
end
|
data/spec/helper/test_helper.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
class TestHelper
|
2
|
-
|
3
|
-
include AnnotationSecurity::Helper
|
4
|
-
|
5
|
-
end
|
1
|
+
class TestHelper
|
2
|
+
|
3
|
+
include AnnotationSecurity::Helper
|
4
|
+
|
5
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
|
-
AnnotationSecurity.define_relations(:test_resource) do
|
2
|
-
|
3
|
-
owner do |user, res|
|
4
|
-
user.name == res.name
|
5
|
-
end
|
6
|
-
|
1
|
+
AnnotationSecurity.define_relations(:test_resource) do
|
2
|
+
|
3
|
+
owner do |user, res|
|
4
|
+
user.name == res.name
|
5
|
+
end
|
6
|
+
|
7
7
|
end
|
@@ -1,39 +1,39 @@
|
|
1
|
-
class TestResource
|
2
|
-
|
3
|
-
include AnnotationSecurity::Resource
|
4
|
-
|
5
|
-
self.resource_type = :test_resource
|
6
|
-
|
7
|
-
def self.find(arg)
|
8
|
-
obj = new arg
|
9
|
-
|
10
|
-
# normally, this is done by a model observer
|
11
|
-
SecurityContext.observe obj
|
12
|
-
|
13
|
-
obj
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.get_resource(arg)
|
17
|
-
return nil if arg.nil?
|
18
|
-
return arg if arg.is_a? self
|
19
|
-
new arg
|
20
|
-
end
|
21
|
-
|
22
|
-
def initialize(name = "")
|
23
|
-
@name = name
|
24
|
-
end
|
25
|
-
|
26
|
-
def name
|
27
|
-
@name
|
28
|
-
end
|
29
|
-
|
30
|
-
def ==(other)
|
31
|
-
return false unless other.is_a? self.class
|
32
|
-
name == other.name
|
33
|
-
end
|
34
|
-
|
35
|
-
def to_s
|
36
|
-
"<TestResource:#{name}>"
|
37
|
-
end
|
38
|
-
|
1
|
+
class TestResource
|
2
|
+
|
3
|
+
include AnnotationSecurity::Resource
|
4
|
+
|
5
|
+
self.resource_type = :test_resource
|
6
|
+
|
7
|
+
def self.find(arg)
|
8
|
+
obj = new arg
|
9
|
+
|
10
|
+
# normally, this is done by a model observer
|
11
|
+
SecurityContext.observe obj
|
12
|
+
|
13
|
+
obj
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.get_resource(arg)
|
17
|
+
return nil if arg.nil?
|
18
|
+
return arg if arg.is_a? self
|
19
|
+
new arg
|
20
|
+
end
|
21
|
+
|
22
|
+
def initialize(name = "")
|
23
|
+
@name = name
|
24
|
+
end
|
25
|
+
|
26
|
+
def name
|
27
|
+
@name
|
28
|
+
end
|
29
|
+
|
30
|
+
def ==(other)
|
31
|
+
return false unless other.is_a? self.class
|
32
|
+
name == other.name
|
33
|
+
end
|
34
|
+
|
35
|
+
def to_s
|
36
|
+
"<TestResource:#{name}>"
|
37
|
+
end
|
38
|
+
|
39
39
|
end
|
data/spec/helper/test_role.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
class TestRole
|
2
|
-
|
3
|
-
include AnnotationSecurity::Role
|
4
|
-
|
5
|
-
def initialize(name,user)
|
6
|
-
@name = name
|
7
|
-
@user = user
|
8
|
-
end
|
9
|
-
|
10
|
-
def role_name
|
11
|
-
@name
|
12
|
-
end
|
13
|
-
|
14
|
-
def name
|
15
|
-
role_name
|
16
|
-
end
|
17
|
-
|
18
|
-
def user
|
19
|
-
@user
|
20
|
-
end
|
21
|
-
|
1
|
+
class TestRole
|
2
|
+
|
3
|
+
include AnnotationSecurity::Role
|
4
|
+
|
5
|
+
def initialize(name,user)
|
6
|
+
@name = name
|
7
|
+
@user = user
|
8
|
+
end
|
9
|
+
|
10
|
+
def role_name
|
11
|
+
@name
|
12
|
+
end
|
13
|
+
|
14
|
+
def name
|
15
|
+
role_name
|
16
|
+
end
|
17
|
+
|
18
|
+
def user
|
19
|
+
@user
|
20
|
+
end
|
21
|
+
|
22
22
|
end
|
data/spec/helper/test_user.rb
CHANGED
@@ -1,32 +1,32 @@
|
|
1
|
-
class TestUser
|
2
|
-
|
3
|
-
include AnnotationSecurity::User
|
4
|
-
|
5
|
-
def initialize(name='user_name')
|
6
|
-
@name = name
|
7
|
-
@one_role = TestRole.new(:one,self)
|
8
|
-
@many_roles = [
|
9
|
-
TestRole.new(:a,self), TestRole.new(:b,self), TestRole.new(:c,self)]
|
10
|
-
end
|
11
|
-
|
12
|
-
def user_name
|
13
|
-
@name
|
14
|
-
end
|
15
|
-
|
16
|
-
def name
|
17
|
-
user_name
|
18
|
-
end
|
19
|
-
|
20
|
-
def as_one_role
|
21
|
-
@one_role
|
22
|
-
end
|
23
|
-
|
24
|
-
def as_many_roles
|
25
|
-
@many_roles
|
26
|
-
end
|
27
|
-
|
28
|
-
def to_s
|
29
|
-
"<TestUser:#{name}>"
|
30
|
-
end
|
31
|
-
|
1
|
+
class TestUser
|
2
|
+
|
3
|
+
include AnnotationSecurity::User
|
4
|
+
|
5
|
+
def initialize(name='user_name')
|
6
|
+
@name = name
|
7
|
+
@one_role = TestRole.new(:one,self)
|
8
|
+
@many_roles = [
|
9
|
+
TestRole.new(:a,self), TestRole.new(:b,self), TestRole.new(:c,self)]
|
10
|
+
end
|
11
|
+
|
12
|
+
def user_name
|
13
|
+
@name
|
14
|
+
end
|
15
|
+
|
16
|
+
def name
|
17
|
+
user_name
|
18
|
+
end
|
19
|
+
|
20
|
+
def as_one_role
|
21
|
+
@one_role
|
22
|
+
end
|
23
|
+
|
24
|
+
def as_many_roles
|
25
|
+
@many_roles
|
26
|
+
end
|
27
|
+
|
28
|
+
def to_s
|
29
|
+
"<TestUser:#{name}>"
|
30
|
+
end
|
31
|
+
|
32
32
|
end
|
data/spec/rails_stub.rb
CHANGED
@@ -1,38 +1,38 @@
|
|
1
|
-
# AnnoationSecurity requires rails.
|
2
|
-
# Here are some stubs to simulate a rails environment for testing.
|
3
|
-
#
|
4
|
-
|
5
|
-
RAILS_ROOT = ''
|
6
|
-
RAILS_ENV = {}
|
7
|
-
|
8
|
-
class ConfigStub
|
9
|
-
def config
|
10
|
-
self
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
module ActiveRecord
|
15
|
-
class Observer
|
16
|
-
def self.observe(*args)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
module ActionController
|
22
|
-
class Base
|
23
|
-
def render(*args)
|
24
|
-
end
|
25
|
-
def redirect_to(*args)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
module Routing
|
29
|
-
class Routes
|
30
|
-
end
|
31
|
-
end
|
32
|
-
module Filters
|
33
|
-
class Filter
|
34
|
-
end
|
35
|
-
class AroundFilter < Filter
|
36
|
-
end
|
37
|
-
end
|
1
|
+
# AnnoationSecurity requires rails.
|
2
|
+
# Here are some stubs to simulate a rails environment for testing.
|
3
|
+
#
|
4
|
+
|
5
|
+
RAILS_ROOT = ''
|
6
|
+
RAILS_ENV = {}
|
7
|
+
|
8
|
+
class ConfigStub
|
9
|
+
def config
|
10
|
+
self
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module ActiveRecord
|
15
|
+
class Observer
|
16
|
+
def self.observe(*args)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module ActionController
|
22
|
+
class Base
|
23
|
+
def render(*args)
|
24
|
+
end
|
25
|
+
def redirect_to(*args)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
module Routing
|
29
|
+
class Routes
|
30
|
+
end
|
31
|
+
end
|
32
|
+
module Filters
|
33
|
+
class Filter
|
34
|
+
end
|
35
|
+
class AroundFilter < Filter
|
36
|
+
end
|
37
|
+
end
|
38
38
|
end
|
metadata
CHANGED
@@ -1,73 +1,98 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: annotation_security
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
|
-
authors:
|
7
|
+
authors:
|
7
8
|
- Nico Rehwaldt, Arian Treffer
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-03-23 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: action_annotation
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.0.1
|
17
22
|
type: :runtime
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
23
29
|
version: 1.0.1
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
30
|
+
- !ruby/object:Gem::Dependency
|
26
31
|
name: activesupport
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 2.3.18
|
27
38
|
type: :runtime
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
- !ruby/object:Gem::Dependency
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.3.18
|
46
|
+
- !ruby/object:Gem::Dependency
|
36
47
|
name: rspec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.3.2
|
37
54
|
type: :development
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
- !ruby/object:Gem::Dependency
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.3.2
|
62
|
+
- !ruby/object:Gem::Dependency
|
46
63
|
name: mocha
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.9.8
|
47
70
|
type: :development
|
48
|
-
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
|
51
|
-
|
52
|
-
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
53
77
|
version: 0.9.8
|
54
|
-
|
55
|
-
|
78
|
+
description: AnnotationSecurity provides a role based security model with automated
|
79
|
+
rule evaluation for Ruby on Rails. It allows you to define user-resource-relations
|
80
|
+
and rights in separate files, keeping your controllers and views free from any security
|
81
|
+
logic. See the gem's homepage for an example.
|
56
82
|
email: ruby@nixis.de
|
57
|
-
executables:
|
83
|
+
executables:
|
58
84
|
- annotation_security
|
59
85
|
extensions: []
|
60
|
-
|
61
|
-
|
62
|
-
-
|
63
|
-
-
|
64
|
-
-
|
65
|
-
|
66
|
-
|
67
|
-
-
|
68
|
-
-
|
69
|
-
-
|
70
|
-
- HOW-TO
|
86
|
+
extra_rdoc_files:
|
87
|
+
- README.md
|
88
|
+
- LICENSE
|
89
|
+
- CHANGELOG.md
|
90
|
+
- HOW-TO.md
|
91
|
+
files:
|
92
|
+
- CHANGELOG.md
|
93
|
+
- LICENSE
|
94
|
+
- README.md
|
95
|
+
- HOW-TO.md
|
71
96
|
- Rakefile
|
72
97
|
- bin/annotation_security
|
73
98
|
- lib/annotation_security/exceptions.rb
|
@@ -93,6 +118,7 @@ files:
|
|
93
118
|
- lib/annotation_security/rails.rb
|
94
119
|
- lib/annotation_security/user_wrapper.rb
|
95
120
|
- lib/annotation_security/utils.rb
|
121
|
+
- lib/annotation_security/version.rb
|
96
122
|
- lib/annotation_security.rb
|
97
123
|
- lib/extensions/action_controller.rb
|
98
124
|
- lib/extensions/active_record.rb
|
@@ -125,33 +151,29 @@ files:
|
|
125
151
|
- assets/config/security/relations.rb
|
126
152
|
- assets/config/security/rights.yml
|
127
153
|
- assets/vendor/plugins/annotation_security/init.rb
|
128
|
-
|
129
|
-
homepage: http://tech.lefedt.de/2010/3/annotation-based-security-for-rails
|
154
|
+
homepage: http://github.com/Nikku/annotation_security
|
130
155
|
licenses: []
|
131
|
-
|
132
156
|
post_install_message:
|
133
157
|
rdoc_options: []
|
134
|
-
|
135
|
-
require_paths:
|
158
|
+
require_paths:
|
136
159
|
- lib
|
137
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
160
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
|
+
none: false
|
168
|
+
requirements:
|
169
|
+
- - ! '>='
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
149
172
|
requirements: []
|
150
|
-
|
151
173
|
rubyforge_project:
|
152
|
-
rubygems_version: 1.
|
174
|
+
rubygems_version: 1.8.23
|
153
175
|
signing_key:
|
154
176
|
specification_version: 3
|
155
|
-
summary: A role based security model for rails applications with descriptive definitions
|
177
|
+
summary: A role based security model for rails applications with descriptive definitions
|
178
|
+
and automated evaluation.
|
156
179
|
test_files: []
|
157
|
-
|
data/CHANGELOG
DELETED