authorize 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -104,6 +104,12 @@ class Authorize::Role < ActiveRecord::Base
104
104
  self.class.find(ids).to_set
105
105
  end
106
106
 
107
+ def inbound
108
+ ids = []
109
+ self.vertex.inbound_edges.to_a.each{|e| ids << e.from.id.slice(/#{VERTICES_ID_PREFIX}::(\d+)/, 1)}
110
+ self.class.find(ids).to_set
111
+ end
112
+
107
113
  private
108
114
  def traverser
109
115
  @traverser ||= Authorize::Graph::DirectedAcyclicGraphTraverser.traverse(vertex)
@@ -1,3 +1,3 @@
1
1
  module Authorize
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -117,6 +117,10 @@ class RoleTest < ActiveSupport::TestCase
117
117
  assert_equal Set[roles(:user_pascale)], roles(:administrator).ancestors
118
118
  end
119
119
 
120
+ test 'parent roles' do
121
+ assert_equal Set[roles(:user_chris), roles(:user_pascale)], roles(:registered_users).inbound
122
+ end
123
+
120
124
  test 'link' do
121
125
  assert !roles(:user_chris).descendants.include?(roles(:administrator))
122
126
  assert_kind_of Authorize::Graph::Edge, edge = roles(:user_chris).link(roles(:administrator))
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authorize
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 0
10
- version: 1.0.0
9
+ - 1
10
+ version: 1.0.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chris Hapgood
@@ -15,12 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-06-25 00:00:00 Z
18
+ date: 2012-10-01 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: mocha
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
21
+ type: :development
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
23
  none: false
25
24
  requirements:
26
25
  - - ~>
@@ -30,12 +29,12 @@ dependencies:
30
29
  - 0
31
30
  - 9
32
31
  version: "0.9"
33
- type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: sqlite3
37
32
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
33
+ requirement: *id001
34
+ name: mocha
35
+ - !ruby/object:Gem::Dependency
36
+ type: :development
37
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
38
  none: false
40
39
  requirements:
41
40
  - - ~>
@@ -45,12 +44,12 @@ dependencies:
45
44
  - 1
46
45
  - 3
47
46
  version: "1.3"
48
- type: :development
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: rails
52
47
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
48
+ requirement: *id002
49
+ name: sqlite3
50
+ - !ruby/object:Gem::Dependency
51
+ type: :development
52
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
53
  none: false
55
54
  requirements:
56
55
  - - ~>
@@ -61,12 +60,12 @@ dependencies:
61
60
  - 3
62
61
  - 5
63
62
  version: 2.3.5
64
- type: :development
65
- version_requirements: *id003
66
- - !ruby/object:Gem::Dependency
67
- name: rake
68
63
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
64
+ requirement: *id003
65
+ name: rails
66
+ - !ruby/object:Gem::Dependency
67
+ type: :development
68
+ version_requirements: &id004 !ruby/object:Gem::Requirement
70
69
  none: false
71
70
  requirements:
72
71
  - - ~>
@@ -77,12 +76,12 @@ dependencies:
77
76
  - 8
78
77
  - 7
79
78
  version: 0.8.7
80
- type: :development
81
- version_requirements: *id004
82
- - !ruby/object:Gem::Dependency
83
- name: rdoc
84
79
  prerelease: false
85
- requirement: &id005 !ruby/object:Gem::Requirement
80
+ requirement: *id004
81
+ name: rake
82
+ - !ruby/object:Gem::Dependency
83
+ type: :development
84
+ version_requirements: &id005 !ruby/object:Gem::Requirement
86
85
  none: false
87
86
  requirements:
88
87
  - - ">="
@@ -91,12 +90,12 @@ dependencies:
91
90
  segments:
92
91
  - 0
93
92
  version: "0"
94
- type: :development
95
- version_requirements: *id005
96
- - !ruby/object:Gem::Dependency
97
- name: redis
98
93
  prerelease: false
99
- requirement: &id006 !ruby/object:Gem::Requirement
94
+ requirement: *id005
95
+ name: rdoc
96
+ - !ruby/object:Gem::Dependency
97
+ type: :runtime
98
+ version_requirements: &id006 !ruby/object:Gem::Requirement
100
99
  none: false
101
100
  requirements:
102
101
  - - ~>
@@ -106,12 +105,12 @@ dependencies:
106
105
  - 2
107
106
  - 1
108
107
  version: "2.1"
109
- type: :runtime
110
- version_requirements: *id006
111
- - !ruby/object:Gem::Dependency
112
- name: activerecord
113
108
  prerelease: false
114
- requirement: &id007 !ruby/object:Gem::Requirement
109
+ requirement: *id006
110
+ name: redis
111
+ - !ruby/object:Gem::Dependency
112
+ type: :runtime
113
+ version_requirements: &id007 !ruby/object:Gem::Requirement
115
114
  none: false
116
115
  requirements:
117
116
  - - ~>
@@ -122,12 +121,12 @@ dependencies:
122
121
  - 3
123
122
  - 5
124
123
  version: 2.3.5
125
- type: :runtime
126
- version_requirements: *id007
127
- - !ruby/object:Gem::Dependency
128
- name: actionpack
129
124
  prerelease: false
130
- requirement: &id008 !ruby/object:Gem::Requirement
125
+ requirement: *id007
126
+ name: activerecord
127
+ - !ruby/object:Gem::Dependency
128
+ type: :runtime
129
+ version_requirements: &id008 !ruby/object:Gem::Requirement
131
130
  none: false
132
131
  requirements:
133
132
  - - ~>
@@ -138,8 +137,9 @@ dependencies:
138
137
  - 3
139
138
  - 5
140
139
  version: 2.3.5
141
- type: :runtime
142
- version_requirements: *id008
140
+ prerelease: false
141
+ requirement: *id008
142
+ name: actionpack
143
143
  description: Authorize implements a full-blown Role-based Access Control (RBAC) system for Ruby on Rails
144
144
  email:
145
145
  - cch1@hapgoods.com