pebblebed 0.0.48 → 0.0.49
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.
@@ -73,14 +73,23 @@ module Pebblebed
|
|
73
73
|
collected_roles << role
|
74
74
|
end
|
75
75
|
end
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
76
|
+
owned_capabilities = collected_roles.map{|c| c[:capabilities]}.flatten.compact.uniq
|
77
|
+
all_capabilities = self.class.roles.map{|r| r[:capabilities]}.flatten.compact.uniq
|
78
|
+
the_role.merge!(:upgrades => begin
|
79
|
+
upgraders = {}
|
80
|
+
all_capabilities.each do |c|
|
81
|
+
next if owned_capabilities.include?(c)
|
82
|
+
self.class.roles.select{|r| r[:capabilities].include?(c)}.each do |r|
|
83
|
+
upgraders[c] ||= []
|
84
|
+
upgraders[c] << r[:requirements]
|
85
|
+
upgraders[c].flatten!.uniq!
|
86
|
+
end
|
87
|
+
end
|
88
|
+
upgraders
|
82
89
|
end
|
83
90
|
)
|
91
|
+
the_role[:capabilities] = owned_capabilities
|
92
|
+
the_role
|
84
93
|
end
|
85
94
|
end
|
86
95
|
|
data/lib/pebblebed/version.rb
CHANGED
@@ -15,7 +15,7 @@ describe Pebblebed::Security::RoleSchema do
|
|
15
15
|
class CustomRoleSchema < Pebblebed::Security::RoleSchema
|
16
16
|
role :guest, :capabilities => [], :requirements => []
|
17
17
|
role :identified, :capabilities => [:kudo], :requirements => [:logged_in]
|
18
|
-
role :contributor, :capabilities => [:comment
|
18
|
+
role :contributor, :capabilities => [:comment], :requirements => [:logged_in, :verified_mobile]
|
19
19
|
|
20
20
|
def check_logged_in
|
21
21
|
return true if identity and identity['identity']
|
@@ -69,7 +69,7 @@ describe Pebblebed::Security::RoleSchema do
|
|
69
69
|
end
|
70
70
|
|
71
71
|
it "has the correct roles defined" do
|
72
|
-
CustomRoleSchema.roles.should == [{:capabilities=>[], :requirements=>[], :name=>:guest, :role_rank=>0}, {:capabilities=>[:kudo], :requirements=>[:logged_in], :name=>:identified, :role_rank=>1}, {:capabilities=>[:comment
|
72
|
+
CustomRoleSchema.roles.should == [{:capabilities=>[], :requirements=>[], :name=>:guest, :role_rank=>0, :upgrades=>{:kudo=>[:logged_in], :comment=>[:logged_in, :verified_mobile]}}, {:capabilities=>[:kudo], :requirements=>[:logged_in], :name=>:identified, :role_rank=>1}, {:capabilities=>[:comment], :requirements=>[:logged_in, :verified_mobile], :name=>:contributor, :role_rank=>2}]
|
73
73
|
end
|
74
74
|
|
75
75
|
it "has an answer to requirements for a role" do
|
@@ -97,7 +97,7 @@ describe Pebblebed::Security::RoleSchema do
|
|
97
97
|
}
|
98
98
|
|
99
99
|
it "returns the guest role" do
|
100
|
-
schema.role.should == {:current=>:guest, :capabilities=>[], :upgrades=>{:
|
100
|
+
schema.role.should == {:current=>:guest, :capabilities=>[], :upgrades=>{:kudo=>[:logged_in], :comment=>[:logged_in, :verified_mobile]}}
|
101
101
|
end
|
102
102
|
|
103
103
|
end
|
@@ -111,7 +111,7 @@ describe Pebblebed::Security::RoleSchema do
|
|
111
111
|
}
|
112
112
|
|
113
113
|
it "returns the idenitified role" do
|
114
|
-
schema.role.should == {:current=>:identified, :capabilities=>[:kudo], :upgrades=>{:
|
114
|
+
schema.role.should == {:current=>:identified, :capabilities=>[:kudo], :upgrades=>{:comment=>[:logged_in, :verified_mobile]}}
|
115
115
|
end
|
116
116
|
|
117
117
|
end
|
@@ -123,7 +123,7 @@ describe Pebblebed::Security::RoleSchema do
|
|
123
123
|
}
|
124
124
|
|
125
125
|
it "returns the contributor role" do
|
126
|
-
schema.role.should ==
|
126
|
+
schema.role.should == {:current=>:contributor, :capabilities=>[:kudo, :comment], :upgrades=>{}}
|
127
127
|
end
|
128
128
|
|
129
129
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pebblebed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.49
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-04-
|
13
|
+
date: 2013-04-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|