cantango 0.8.0 → 0.8.5.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.
Files changed (270) hide show
  1. data/Gemfile +32 -19
  2. data/README.textile +79 -131
  3. data/VERSION +1 -1
  4. data/cantango.gemspec +94 -61
  5. data/lib/cantango.rb +4 -6
  6. data/lib/cantango/ability.rb +28 -17
  7. data/lib/cantango/ability/cache.rb +30 -60
  8. data/lib/cantango/ability/cache/base_cache.rb +1 -1
  9. data/lib/cantango/ability/cache/key.rb +39 -0
  10. data/lib/cantango/ability/cache/kompiler.rb +22 -6
  11. data/lib/cantango/ability/cache/moneta_cache.rb +1 -1
  12. data/lib/cantango/ability/cache/reader.rb +32 -0
  13. data/lib/cantango/ability/cache/rules_cache.rb +31 -0
  14. data/lib/cantango/ability/cache/session_cache.rb +3 -2
  15. data/lib/cantango/ability/cache/writer.rb +42 -0
  16. data/lib/cantango/ability/cache_helpers.rb +28 -0
  17. data/lib/cantango/ability/masquerade_helpers.rb +7 -2
  18. data/lib/cantango/ability/permission_helpers.rb +0 -8
  19. data/lib/cantango/ability/permit_helpers.rb +0 -17
  20. data/lib/cantango/ability/role_helpers.rb +0 -2
  21. data/lib/cantango/ability/user_helpers.rb +1 -0
  22. data/lib/cantango/adapter/compiler.rb +9 -0
  23. data/lib/cantango/adapter/moneta.rb +23 -0
  24. data/lib/cantango/api.rb +1 -1
  25. data/lib/cantango/api/aliases.rb +4 -8
  26. data/lib/cantango/api/attributes.rb +17 -0
  27. data/lib/cantango/api/common.rb +6 -0
  28. data/lib/cantango/api/options.rb +9 -5
  29. data/lib/cantango/cache.rb +1 -1
  30. data/lib/cantango/cache/hash_cache.rb +34 -0
  31. data/lib/cantango/configuration.rb +13 -8
  32. data/lib/cantango/configuration/adapters.rb +25 -0
  33. data/lib/cantango/configuration/categories.rb +3 -1
  34. data/lib/cantango/configuration/engines.rb +83 -11
  35. data/lib/cantango/configuration/engines/cache.rb +12 -1
  36. data/lib/cantango/configuration/engines/engine.rb +5 -5
  37. data/lib/cantango/configuration/engines/permission.rb +1 -1
  38. data/lib/cantango/configuration/permit_registry.rb +17 -0
  39. data/lib/cantango/configuration/permits.rb +29 -0
  40. data/lib/cantango/configuration/registry.rb +5 -2
  41. data/lib/cantango/configuration/role_groups.rb +3 -0
  42. data/lib/cantango/configuration/role_registry.rb +4 -0
  43. data/lib/cantango/configuration/roles.rb +2 -0
  44. data/lib/cantango/configuration/user_accounts.rb +1 -0
  45. data/lib/cantango/configuration/users.rb +1 -0
  46. data/lib/cantango/engine.rb +13 -0
  47. data/lib/cantango/filters.rb +5 -0
  48. data/lib/cantango/filters/filter.rb +34 -0
  49. data/lib/cantango/filters/role_filter.rb +29 -0
  50. data/lib/cantango/filters/role_group_filter.rb +28 -0
  51. data/lib/cantango/permission_engine.rb +26 -1
  52. data/lib/cantango/permission_engine/collector.rb +7 -2
  53. data/lib/cantango/permission_engine/compiler.rb +8 -1
  54. data/lib/cantango/permission_engine/evaluator.rb +2 -2
  55. data/lib/cantango/permission_engine/factory.rb +8 -12
  56. data/lib/cantango/permission_engine/loader.rb +1 -1
  57. data/lib/cantango/permission_engine/loader/base.rb +1 -1
  58. data/lib/cantango/permission_engine/loader/categories.rb +3 -3
  59. data/lib/cantango/permission_engine/loader/permissions.rb +8 -5
  60. data/lib/cantango/permission_engine/moneta_store.rb +2 -2
  61. data/lib/cantango/permission_engine/parser.rb +1 -1
  62. data/lib/cantango/permission_engine/parser/categories.rb +1 -1
  63. data/lib/cantango/permission_engine/parser/category.rb +1 -1
  64. data/lib/cantango/permission_engine/parser/default.rb +1 -2
  65. data/lib/cantango/permission_engine/parser/ownership.rb +1 -1
  66. data/lib/cantango/permission_engine/parser/permissions.rb +1 -1
  67. data/lib/cantango/permission_engine/parser/regex.rb +2 -2
  68. data/lib/cantango/permission_engine/parser/relationship.rb +1 -1
  69. data/lib/cantango/permission_engine/parser/rule.rb +1 -1
  70. data/lib/cantango/permission_engine/permission.rb +2 -2
  71. data/lib/cantango/permission_engine/selector.rb +3 -3
  72. data/lib/cantango/permission_engine/selector/account_types.rb +24 -0
  73. data/lib/cantango/permission_engine/selector/base.rb +3 -3
  74. data/lib/cantango/permission_engine/selector/licenses.rb +2 -2
  75. data/lib/cantango/permission_engine/selector/role_groups.rb +7 -6
  76. data/lib/cantango/permission_engine/selector/roles.rb +10 -6
  77. data/lib/cantango/permission_engine/selector/user_types.rb +23 -0
  78. data/lib/cantango/permission_engine/selector/users.rb +2 -2
  79. data/lib/cantango/permission_engine/statement.rb +10 -9
  80. data/lib/cantango/permission_engine/statements.rb +27 -25
  81. data/lib/cantango/permission_engine/store.rb +1 -1
  82. data/lib/cantango/permission_engine/yaml_store.rb +2 -2
  83. data/lib/cantango/permit_engine.rb +29 -4
  84. data/lib/cantango/permit_engine/builder.rb +2 -3
  85. data/lib/cantango/permit_engine/builder/base.rb +9 -1
  86. data/lib/cantango/permit_engine/builder/special_permits.rb +7 -8
  87. data/lib/cantango/permit_engine/compatibility.rb +1 -1
  88. data/lib/cantango/permit_engine/executor.rb +1 -1
  89. data/lib/cantango/permit_engine/executor/abstract.rb +1 -1
  90. data/lib/cantango/permit_engine/executor/base.rb +1 -1
  91. data/lib/cantango/permit_engine/executor/system.rb +1 -1
  92. data/lib/cantango/permit_engine/factory.rb +2 -7
  93. data/lib/cantango/permit_engine/finder.rb +43 -9
  94. data/lib/cantango/permit_engine/role_matcher.rb +1 -1
  95. data/lib/cantango/permit_engine/util.rb +2 -1
  96. data/lib/cantango/permits.rb +9 -0
  97. data/lib/cantango/{permit_engine → permits}/account_permit.rb +15 -4
  98. data/lib/cantango/{permit_engine → permits}/account_permit/builder.rb +2 -6
  99. data/lib/cantango/{permit_engine → permits}/account_permit/finder.rb +2 -2
  100. data/lib/cantango/{permit_engine → permits}/license.rb +1 -1
  101. data/lib/cantango/{permit_engine → permits}/license/loader.rb +1 -1
  102. data/lib/cantango/{permit_engine → permits}/license/rules.rb +1 -1
  103. data/lib/cantango/permits/macros.rb +19 -0
  104. data/lib/cantango/{permit_engine → permits}/permit.rb +13 -1
  105. data/lib/cantango/{permit_engine → permits}/role_group_permit.rb +15 -3
  106. data/lib/cantango/{permit_engine → permits}/role_group_permit/builder.rb +10 -22
  107. data/lib/cantango/{permit_engine → permits}/role_group_permit/finder.rb +2 -2
  108. data/lib/cantango/{permit_engine → permits}/role_permit.rb +15 -3
  109. data/lib/cantango/permits/role_permit/builder.rb +27 -0
  110. data/lib/cantango/{permit_engine → permits}/role_permit/finder.rb +2 -2
  111. data/lib/cantango/{permit_engine → permits}/user_permit.rb +15 -3
  112. data/lib/cantango/{permit_engine → permits}/user_permit/builder.rb +2 -6
  113. data/lib/cantango/{permit_engine → permits}/user_permit/finder.rb +2 -2
  114. data/lib/cantango/rails.rb +3 -1
  115. data/lib/cantango/rails/engine.rb +11 -6
  116. data/lib/cantango/rails/helpers/base_helper.rb +28 -0
  117. data/lib/cantango/rails/helpers/controller_helper.rb +17 -0
  118. data/lib/cantango/rails/helpers/rest_helper.rb +44 -0
  119. data/lib/cantango/rails/helpers/view_helper.rb +17 -0
  120. data/lib/cantango/rails/railtie.rb +1 -1
  121. data/lib/cantango/rspec/config.rb +1 -1
  122. data/lib/cantango/rspec/matchers/be_allowed_to.rb +5 -3
  123. data/lib/cantango/rules/user_relation.rb +1 -1
  124. data/lib/cantango/users/macros.rb +8 -2
  125. data/lib/cantango/users/user.rb +1 -1
  126. data/lib/generators/cantango/account_permit/account_permit_generator.rb +37 -0
  127. data/lib/generators/cantango/account_permit/templates/account_permit.erb +13 -0
  128. data/lib/generators/cantango/base.rb +15 -18
  129. data/lib/generators/cantango/basic.rb +41 -0
  130. data/lib/generators/cantango/install/install_generator.rb +37 -0
  131. data/lib/generators/cantango/install/templates/cantango.rb +4 -0
  132. data/{spec/active_record/scenarios/user_accounts/config/account_permits.yml → lib/generators/cantango/install/templates/categories.yml} +0 -0
  133. data/lib/generators/cantango/install/templates/permissions.yml +4 -0
  134. data/lib/generators/cantango/license/license_generator.rb +6 -11
  135. data/lib/generators/cantango/license/templates/license.erb +1 -1
  136. data/lib/generators/cantango/license_base.rb +2 -2
  137. data/lib/generators/cantango/licenses/licenses_generator.rb +2 -7
  138. data/lib/generators/cantango/permit_generator.rb +31 -10
  139. data/lib/generators/cantango/role_permit/role_permit_generator.rb +11 -14
  140. data/lib/generators/cantango/role_permit/templates/account_permit.erb +2 -2
  141. data/lib/generators/cantango/role_permit/templates/role_group_permit.erb +2 -2
  142. data/lib/generators/cantango/role_permit/templates/role_permit.erb +2 -2
  143. data/lib/generators/cantango/role_permits/role_permits_generator.rb +16 -98
  144. data/lib/generators/cantango/user_permit/templates/account_permit.erb +5 -0
  145. data/lib/generators/cantango/user_permit/templates/user_permit.erb +13 -0
  146. data/lib/generators/cantango/user_permit/user_permit_generator.rb +36 -0
  147. data/spec/TODO +1 -6
  148. data/spec/active_record/helper/permits_config.rb +1 -1
  149. data/spec/active_record/scenarios/engines/permission_engine/{cantango_permissions.yml → permissions.yml} +2 -1
  150. data/spec/active_record/scenarios/engines/permission_engine/tango_permission_yml_spec.rb +8 -9
  151. data/spec/active_record/scenarios/engines/permit_engine/licenses_spec.rb +2 -2
  152. data/spec/active_record/scenarios/engines/permit_engine/role_groups_permits_spec.rb +2 -2
  153. data/spec/active_record/scenarios/shared/{can_tango.rb → cantango.rb} +1 -1
  154. data/spec/active_record/scenarios/shared/models/items.rb +0 -1
  155. data/spec/active_record/scenarios/shared/models/users.rb +6 -1
  156. data/spec/active_record/spec_helper.rb +6 -4
  157. data/spec/cantango/ability/cache/key_spec.rb +64 -0
  158. data/spec/cantango/ability/cache/{compiler_spec.rb → kompiler_spec.rb} +9 -21
  159. data/spec/cantango/ability/cache/reader_compile_spec.rb +42 -0
  160. data/spec/cantango/ability/cache/reader_spec.rb +33 -0
  161. data/spec/cantango/ability/cache/rules_cache_spec.rb +15 -0
  162. data/spec/cantango/ability/cache/session_cache_spec.rb +1 -1
  163. data/spec/cantango/ability/cache/writer_spec.rb +21 -0
  164. data/spec/cantango/ability/cache_spec.rb +6 -2
  165. data/spec/cantango/ability_filters_spec.rb +5 -10
  166. data/spec/cantango/ability_spec.rb +2 -3
  167. data/spec/cantango/api/attributes_spec.rb +27 -0
  168. data/spec/cantango/api/user/can_api_spec.rb +2 -2
  169. data/spec/cantango/api/user_account/can_api_spec.rb +2 -2
  170. data/spec/cantango/configuration/adapter_spec.rb +28 -0
  171. data/spec/cantango/configuration/engines/cache_spec.rb +2 -2
  172. data/spec/cantango/configuration/engines/permission_spec.rb +3 -3
  173. data/spec/cantango/configuration/engines/permit_spec.rb +1 -1
  174. data/spec/cantango/configuration/engines/store_shared.rb +3 -1
  175. data/spec/cantango/configuration/engines_spec.rb +106 -3
  176. data/spec/cantango/configuration/hash_registry_spec.rb +1 -1
  177. data/spec/cantango/configuration/permit_registry_spec.rb +14 -0
  178. data/spec/cantango/configuration/permits_spec.rb +25 -0
  179. data/spec/cantango/configuration/registry_spec.rb +1 -1
  180. data/spec/cantango/configuration/shared/registry_ex.rb +2 -1
  181. data/spec/cantango/configuration_spec.rb +5 -5
  182. data/spec/cantango/permission_engine/compiler_spec.rb +8 -0
  183. data/spec/cantango/permission_engine/permission_spec.rb +1 -1
  184. data/spec/cantango/permission_engine/yaml_store_spec.rb +14 -4
  185. data/spec/cantango/permission_engine_spec.rb +0 -0
  186. data/spec/cantango/permit_engine/account_permit_spec.rb +2 -4
  187. data/spec/cantango/permit_engine/builder/role_group_permits_spec.rb +4 -7
  188. data/spec/cantango/permit_engine/builder/role_permits_spec.rb +5 -6
  189. data/spec/cantango/permit_engine/builder/special_permits_spec.rb +3 -4
  190. data/spec/cantango/permit_engine/executor/system_spec.rb +2 -2
  191. data/spec/cantango/permit_engine/factory_spec.rb +2 -3
  192. data/spec/cantango/permit_engine/finder_spec.rb +144 -23
  193. data/spec/cantango/permit_engine/permit/permit_static_and_dynamic_rules_spec.rb +4 -5
  194. data/spec/cantango/permit_engine/role_group_permit_spec.rb +1 -1
  195. data/spec/cantango/permit_engine/role_permit_spec.rb +6 -7
  196. data/spec/cantango/permit_engine/user_permit_spec.rb +2 -3
  197. data/spec/cantango/permit_engine_spec.rb +2 -0
  198. data/spec/cantango/permits/macros_spec.rb +41 -0
  199. data/spec/cantango/permits/permit_spec.rb +46 -0
  200. data/spec/cantango_spec.rb +13 -0
  201. data/spec/devise-dummy/app/helpers/application_helper.rb +7 -0
  202. data/spec/devise-dummy/app/views/articles/admin.html.haml +1 -1
  203. data/spec/devise-dummy/app/views/articles/admin_account.html.haml +1 -1
  204. data/spec/devise-dummy/app/views/articles/guest.html.haml +1 -1
  205. data/spec/devise-dummy/app/views/articles/index.html.haml +1 -1
  206. data/spec/devise-dummy/app/views/comments/guest.html.haml +1 -1
  207. data/spec/devise-dummy/app/views/comments/index.html.haml +1 -1
  208. data/spec/devise-dummy/app/views/concertos/admin.html.haml +1 -1
  209. data/spec/devise-dummy/app/views/concertos/admin_account.html.haml +1 -1
  210. data/spec/devise-dummy/app/views/concertos/guest.html.haml +1 -1
  211. data/spec/devise-dummy/app/views/concertos/index.html.haml +1 -1
  212. data/spec/devise-dummy/app/views/users/index.html.haml +1 -1
  213. data/spec/devise-dummy/config/initializers/cantango.rb +3 -3
  214. data/spec/devise-dummy/config/{cantango_permissions.yml → permissions.yml} +2 -1
  215. data/spec/devise-integration/concerto_spec.rb +1 -1
  216. data/spec/dummy/app/models/user.rb +1 -0
  217. data/spec/dummy/app/views/articles/admin.html.haml +1 -1
  218. data/spec/dummy/app/views/articles/admin_account.html.haml +1 -1
  219. data/spec/dummy/app/views/articles/guest.html.haml +1 -1
  220. data/spec/dummy/app/views/articles/index.html.haml +1 -1
  221. data/spec/dummy/app/views/comments/guest.html.haml +1 -1
  222. data/spec/dummy/app/views/comments/index.html.haml +1 -1
  223. data/spec/dummy/app/views/concertos/admin.html.haml +1 -1
  224. data/spec/dummy/app/views/concertos/admin_account.html.haml +1 -1
  225. data/spec/dummy/app/views/concertos/guest.html.haml +1 -1
  226. data/spec/dummy/app/views/concertos/index.html.haml +1 -1
  227. data/spec/dummy/app/views/posts/admin.html.haml +1 -1
  228. data/spec/dummy/app/views/posts/admin_account.html.haml +1 -1
  229. data/spec/dummy/app/views/posts/guest.html.haml +1 -1
  230. data/spec/dummy/app/views/posts/index.html.haml +1 -1
  231. data/spec/dummy/app/views/users/admin.html.haml +1 -1
  232. data/spec/dummy/app/views/users/admin_account.html.haml +1 -1
  233. data/spec/dummy/app/views/users/guest.html.haml +1 -1
  234. data/spec/dummy/app/views/users/index.html.haml +1 -1
  235. data/spec/dummy/config/application.rb +1 -0
  236. data/spec/dummy/config/initializers/cantango.rb +1 -3
  237. data/spec/dummy/config/{cantango_permissions.yml → permissions.yml} +2 -2
  238. data/spec/dummy_spec_helper.rb +2 -0
  239. data/spec/entire_suite_spec.rb +2 -0
  240. data/spec/factories/user.rb +8 -0
  241. data/spec/factories/user_account.rb +6 -0
  242. data/spec/fixtures/config/permissions.yml +60 -19
  243. data/spec/fixtures/models/admin.rb +2 -0
  244. data/spec/fixtures/models/admin_account.rb +22 -0
  245. data/spec/fixtures/models/simple_roles.rb +5 -0
  246. data/spec/fixtures/models/user.rb +4 -0
  247. data/spec/helpers/dummy_app_ability.rb +2 -5
  248. data/spec/integration/cache_using_moneta_spec.rb +3 -1
  249. data/spec/integration/cache_using_session_spec.rb +2 -2
  250. data/spec/integration/user/articles_spec.rb +1 -1
  251. data/spec/integration/user/concerto_spec.rb +1 -1
  252. data/spec/spec_helper.rb +5 -5
  253. metadata +120 -95
  254. data/lib/cantango/ability/class_methods.rb +0 -27
  255. data/lib/cantango/api/aliases/account_permit.rb +0 -8
  256. data/lib/cantango/api/aliases/license.rb +0 -7
  257. data/lib/cantango/api/aliases/permit.rb +0 -9
  258. data/lib/cantango/api/aliases/role_group_permit.rb +0 -7
  259. data/lib/cantango/api/aliases/role_permit.rb +0 -7
  260. data/lib/cantango/api/aliases/user_permit.rb +0 -8
  261. data/lib/cantango/permission_engine/builder.rb +0 -6
  262. data/lib/cantango/permit_engine/role_permit/builder.rb +0 -46
  263. data/lib/cantango/rails/base_helpers.rb +0 -26
  264. data/lib/cantango/rails/controller_helpers.rb +0 -15
  265. data/lib/cantango/rails/view_helpers.rb +0 -15
  266. data/spec/active_record/scenarios/shared/permits/PERMITS README.textile +0 -3
  267. data/spec/active_record/scenarios/user_accounts/docs/USER_ACCOUNTS_SCENARIO.textile +0 -20
  268. data/spec/active_record/scenarios/user_accounts/docs/basic_rules_spec_possible_samples.txt +0 -84
  269. data/spec/factories.rb +0 -8
  270. data/spec/fixtures/config/cantango_permissions.yml +0 -48
@@ -1,5 +1,3 @@
1
1
  CanTango.configure do |config|
2
- config.cache.set :on
3
- config.permits.set :on
4
- config.permissions.set :on
2
+ config.enable_defaults!
5
3
  end
@@ -1,9 +1,9 @@
1
- roles:
1
+ user_types:
2
2
  admin:
3
3
  can:
4
4
  manage:
5
5
  - all
6
-
6
+ roles:
7
7
  user:
8
8
  can:
9
9
  read:
@@ -17,6 +17,8 @@ require 'capybara/rspec'
17
17
  #require 'controller_macros'
18
18
  #Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
19
19
 
20
+ CanTango.config.adapters.use :compiler
21
+
20
22
  #ActiveRecord::Base.logger = Logger.new(STDERR)
21
23
  DatabaseCleaner.strategy = :truncation
22
24
  def migration_folder(name)
@@ -8,6 +8,8 @@ require_all "#{dir}/cantango/ability"
8
8
  require_all "#{dir}/cantango/api"
9
9
  require_all "#{dir}/cantango/permit_engine"
10
10
 
11
+ require "#{dir}/cantango/ability_spec"
12
+ require "#{dir}/cantango/ability_filters_spec"
11
13
  require "#{dir}/cantango/configuration_spec"
12
14
  require "#{dir}/cantango/rules_spec"
13
15
  require_all "#{dir}/cantango/configuration"
@@ -0,0 +1,8 @@
1
+ FactoryGirl.define do
2
+ factory :user do
3
+ name { Forgery(:name).full_name }
4
+ email { Forgery(:internet).email_address }
5
+ password 'secret'
6
+ end
7
+ end
8
+
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :user_account do
3
+ name 'susan'
4
+ end
5
+ end
6
+
@@ -1,19 +1,60 @@
1
- ---
2
- bloggers:
3
- can:
4
- read:
5
- - Article
6
- - Comment
7
- cannot:
8
- write:
9
- - Article
10
- - Post
11
- editors:
12
- can:
13
- read:
14
- - Article
15
- - Comment
16
- cannot:
17
- write:
18
- - Article
19
- - Post
1
+ user_types:
2
+ admin:
3
+ can:
4
+ manage:
5
+ - all
6
+
7
+ account_types:
8
+ editor:
9
+ can:
10
+ manage:
11
+ - all
12
+
13
+ roles:
14
+ admin:
15
+ can:
16
+ manage:
17
+ - all
18
+
19
+ user:
20
+ can:
21
+ read:
22
+ - Comment
23
+ - Post
24
+ - Article
25
+ - User
26
+ write:
27
+ - Article
28
+ manage:
29
+ - Comment
30
+ - Post
31
+
32
+ role_groups:
33
+ bloggers:
34
+ can:
35
+ read:
36
+ - Article
37
+ - Comment
38
+ cannot:
39
+ write:
40
+ - Article
41
+ - Post
42
+ editors:
43
+ can:
44
+ read:
45
+ - Article
46
+ - Comment
47
+ cannot:
48
+ write:
49
+ - Article
50
+ - Post
51
+
52
+ licenses:
53
+ editors:
54
+ can:
55
+ manage:
56
+ - all
57
+ users:
58
+ kris@gmail.com:
59
+ can:
60
+ cannot:
@@ -0,0 +1,2 @@
1
+ class Admin < User
2
+ end
@@ -0,0 +1,22 @@
1
+ class AdminAccount
2
+ attr_accessor :user, :roles, :role_groups
3
+
4
+ def initialize user, options = {}
5
+ @user = user
6
+ @roles = options[:roles]
7
+ @role_groups = options[:role_groups]
8
+ end
9
+
10
+ def has_role? name
11
+ true
12
+ end
13
+
14
+ def roles_list
15
+ roles
16
+ end
17
+
18
+ def role_groups_list
19
+ role_groups
20
+ end
21
+ end
22
+
@@ -1,4 +1,9 @@
1
1
  module SimpleRoles
2
+ def self.included(base)
3
+ base.send :include, InstanceMethods
4
+ base.extend ClassMethods
5
+ end
6
+
2
7
  module ClassMethods
3
8
  def is_role_in_group?(role, group)
4
9
  raise "No group #{group} defined in User model" if !role_groups.has_key?(group)
@@ -1,8 +1,12 @@
1
+ require 'fixtures/models/simple_roles'
2
+
1
3
  class User
2
4
  attr_accessor :name, :account, :email
3
5
 
4
6
  # tango_user # see macros
5
7
 
8
+ include ::SimpleRoles
9
+
6
10
  def initialize name, email = nil, options = {}
7
11
  @name = name
8
12
  @email = email
@@ -11,16 +11,13 @@ module CanTango
11
11
 
12
12
  @rules_cached = true and return if cached_rules?
13
13
 
14
- # run permission evaluators
15
- with(:permissions) {|permission| permission.evaluate! user }
16
- with(:permits) {|permit| break if permit.execute == :break }
14
+ execute_engines!
17
15
 
18
16
  cache_rules!
19
17
  end
20
-
18
+
21
19
  def rules_cached?
22
20
  @rules_cached || false
23
21
  end
24
22
  end
25
-
26
23
  end
@@ -4,12 +4,13 @@ require 'dummy_spec_helper'
4
4
  Cutter::Stamper.turn :off
5
5
 
6
6
  describe "Caching of the rules" do
7
-
8
7
  before(:all) do
9
8
  @user = User.create! :name => 'stanislaw', :role => 'user', :email => 'stanislaw@mail.ru'
10
9
  Article.create!(:title => 'one')
11
10
  end
12
11
 
12
+ =begin
13
+
13
14
  context 'CanTango::Ability::Cache::MonetaCache' do
14
15
  before do
15
16
  CanTango.configure do |config|
@@ -43,4 +44,5 @@ describe "Caching of the rules" do
43
44
  end
44
45
  end
45
46
  end
47
+ =end
46
48
  end
@@ -4,7 +4,7 @@ require 'dummy_spec_helper'
4
4
  Cutter::Stamper.turn :off
5
5
 
6
6
  describe "Caching of the rules" do
7
-
7
+
8
8
  before(:all) do
9
9
  @user = User.create! :name => 'stanislaw', :role => 'user', :email => 'stanislaw@mail.ru'
10
10
  Article.create!(:title => 'one')
@@ -13,7 +13,7 @@ describe "Caching of the rules" do
13
13
  context 'CanTango::Ability::Cache::Session::Cache' do
14
14
  before do
15
15
  CanTango.configure do |config|
16
- config.cache.store.default_class = CanTango::Ability::Cache::SessionCache
16
+ config.cache_engine.store.default_class = CanTango::Ability::Cache::SessionCache
17
17
  end
18
18
  end
19
19
 
@@ -11,7 +11,7 @@ feature "Articles", %q{
11
11
  Article.create!(:title => 'two')
12
12
 
13
13
  @user = User.create! :name => 'stanislaw', :role => 'user', :email => 'stanislaw@mail.ru'
14
- @editor = User.create! :name => 'editor', :role => 'editor', :email => 'editor@mail.ru'
14
+ @editor = Admin.create! :name => 'editor', :role => 'editor', :email => 'editor@mail.ru'
15
15
  end
16
16
 
17
17
  scenario "Article index" do
@@ -10,7 +10,7 @@ feature "Concertos", %q{
10
10
  Concerto.create!(:title => 'one')
11
11
  Concerto.create!(:title => 'two')
12
12
 
13
- @composer = User.create!(:name => 'composer', :role_groups => 'composers', :email => 'stanislaw@mail.ru')
13
+ @composer = Admin.create!(:name => 'composer', :role_groups => 'composers', :email => 'stanislaw@mail.ru')
14
14
  @musician = User.create! :name => 'musician', :role_groups => 'musicians', :email => 'editor@mail.ru'
15
15
  end
16
16
 
data/spec/spec_helper.rb CHANGED
@@ -3,9 +3,11 @@ require 'rspec'
3
3
  require 'cancan/matchers'
4
4
  require 'cantango'
5
5
  require 'cantango/rspec'
6
- require 'factory_girl'
7
6
  require 'mocha'
8
- require 'factories'
7
+ require 'fixtures/models'
8
+
9
+ require 'factory_girl'
10
+ FactoryGirl.find_definitions
9
11
 
10
12
  require 'cutter'
11
13
 
@@ -16,7 +18,5 @@ require 'cutter'
16
18
  require 'simple_roles'
17
19
 
18
20
  CanTango.configure do |config|
19
- config.permission.config_path File.dirname(__FILE__) + '/fixtures/config'
20
- config.cache.set :off
21
+ config.permission_engine.config_path File.dirname(__FILE__) + '/fixtures/config'
21
22
  end
22
- #require_all File.dirname(__FILE__) + '/fixtures'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cantango
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-08-15 00:00:00.000000000Z
13
+ date: 2011-09-02 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &2152347860 !ruby/object:Gem::Requirement
17
+ requirement: &2158261060 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 3.0.1
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2152347860
25
+ version_requirements: *2158261060
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: cancan
28
- requirement: &2152346720 !ruby/object:Gem::Requirement
28
+ requirement: &2158260560 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,43 +33,32 @@ dependencies:
33
33
  version: '1.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2152346720
36
+ version_requirements: *2158260560
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: sugar-high
39
- requirement: &2152345860 !ruby/object:Gem::Requirement
39
+ requirement: &2158260080 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
43
43
  - !ruby/object:Gem::Version
44
- version: '0.5'
44
+ version: 0.6.0
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2152345860
47
+ version_requirements: *2158260080
48
48
  - !ruby/object:Gem::Dependency
49
- name: sqlite3
50
- requirement: &2152344700 !ruby/object:Gem::Requirement
49
+ name: sweetloader
50
+ requirement: &2158259560 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
- - - ! '>='
54
- - !ruby/object:Gem::Version
55
- version: '0'
56
- type: :runtime
57
- prerelease: false
58
- version_requirements: *2152344700
59
- - !ruby/object:Gem::Dependency
60
- name: hashie
61
- requirement: &2152343380 !ruby/object:Gem::Requirement
62
- none: false
63
- requirements:
64
- - - ! '>='
53
+ - - ~>
65
54
  - !ruby/object:Gem::Version
66
- version: '0.4'
55
+ version: 0.1.0
67
56
  type: :runtime
68
57
  prerelease: false
69
- version_requirements: *2152343380
58
+ version_requirements: *2158259560
70
59
  - !ruby/object:Gem::Dependency
71
- name: sourcify
72
- requirement: &2152337000 !ruby/object:Gem::Requirement
60
+ name: sqlite3
61
+ requirement: &2158259060 !ruby/object:Gem::Requirement
73
62
  none: false
74
63
  requirements:
75
64
  - - ! '>='
@@ -77,65 +66,65 @@ dependencies:
77
66
  version: '0'
78
67
  type: :runtime
79
68
  prerelease: false
80
- version_requirements: *2152337000
69
+ version_requirements: *2158259060
81
70
  - !ruby/object:Gem::Dependency
82
- name: dkastner-moneta
83
- requirement: &2152332820 !ruby/object:Gem::Requirement
71
+ name: hashie
72
+ requirement: &2158258580 !ruby/object:Gem::Requirement
84
73
  none: false
85
74
  requirements:
86
75
  - - ! '>='
87
76
  - !ruby/object:Gem::Version
88
- version: '1.0'
77
+ version: '0.4'
89
78
  type: :runtime
90
79
  prerelease: false
91
- version_requirements: *2152332820
80
+ version_requirements: *2158258580
92
81
  - !ruby/object:Gem::Dependency
93
- name: friendly_id
94
- requirement: &2152331580 !ruby/object:Gem::Requirement
82
+ name: factory_girl
83
+ requirement: &2158258080 !ruby/object:Gem::Requirement
95
84
  none: false
96
85
  requirements:
97
86
  - - ! '>='
98
87
  - !ruby/object:Gem::Version
99
88
  version: '0'
100
- type: :runtime
89
+ type: :development
101
90
  prerelease: false
102
- version_requirements: *2152331580
91
+ version_requirements: *2158258080
103
92
  - !ruby/object:Gem::Dependency
104
- name: meta_where
105
- requirement: &2152330380 !ruby/object:Gem::Requirement
93
+ name: sourcify
94
+ requirement: &2158257580 !ruby/object:Gem::Requirement
106
95
  none: false
107
96
  requirements:
108
97
  - - ! '>='
109
98
  - !ruby/object:Gem::Version
110
99
  version: '0'
111
- type: :runtime
100
+ type: :development
112
101
  prerelease: false
113
- version_requirements: *2152330380
102
+ version_requirements: *2158257580
114
103
  - !ruby/object:Gem::Dependency
115
- name: devise
116
- requirement: &2152326040 !ruby/object:Gem::Requirement
104
+ name: dkastner-moneta
105
+ requirement: &2158257080 !ruby/object:Gem::Requirement
117
106
  none: false
118
107
  requirements:
119
108
  - - ! '>='
120
109
  - !ruby/object:Gem::Version
121
- version: '0'
110
+ version: '1.0'
122
111
  type: :development
123
112
  prerelease: false
124
- version_requirements: *2152326040
113
+ version_requirements: *2158257080
125
114
  - !ruby/object:Gem::Dependency
126
115
  name: rspec
127
- requirement: &2152321880 !ruby/object:Gem::Requirement
116
+ requirement: &2158256600 !ruby/object:Gem::Requirement
128
117
  none: false
129
118
  requirements:
130
119
  - - ! '>='
131
120
  - !ruby/object:Gem::Version
132
- version: 2.5.0
121
+ version: 2.4.0
133
122
  type: :development
134
123
  prerelease: false
135
- version_requirements: *2152321880
124
+ version_requirements: *2158256600
136
125
  - !ruby/object:Gem::Dependency
137
126
  name: jeweler
138
- requirement: &2152267200 !ruby/object:Gem::Requirement
127
+ requirement: &2158256100 !ruby/object:Gem::Requirement
139
128
  none: false
140
129
  requirements:
141
130
  - - ! '>='
@@ -143,21 +132,21 @@ dependencies:
143
132
  version: 1.6.4
144
133
  type: :development
145
134
  prerelease: false
146
- version_requirements: *2152267200
135
+ version_requirements: *2158256100
147
136
  - !ruby/object:Gem::Dependency
148
137
  name: bundler
149
- requirement: &2152265340 !ruby/object:Gem::Requirement
138
+ requirement: &2158255580 !ruby/object:Gem::Requirement
150
139
  none: false
151
140
  requirements:
152
- - - ~>
141
+ - - ! '>='
153
142
  - !ruby/object:Gem::Version
154
- version: 1.0.10
143
+ version: 1.0.1
155
144
  type: :development
156
145
  prerelease: false
157
- version_requirements: *2152265340
146
+ version_requirements: *2158255580
158
147
  - !ruby/object:Gem::Dependency
159
148
  name: rdoc
160
- requirement: &2152263620 !ruby/object:Gem::Requirement
149
+ requirement: &2158255080 !ruby/object:Gem::Requirement
161
150
  none: false
162
151
  requirements:
163
152
  - - ! '>='
@@ -165,7 +154,7 @@ dependencies:
165
154
  version: '0'
166
155
  type: :development
167
156
  prerelease: false
168
- version_requirements: *2152263620
157
+ version_requirements: *2158255080
169
158
  description: ! 'Define your permission rules as role- or role group specific permits.
170
159
 
171
160
  Integrates well with multiple Devise user acounts.
@@ -193,24 +182,25 @@ files:
193
182
  - lib/cantango/ability.rb
194
183
  - lib/cantango/ability/cache.rb
195
184
  - lib/cantango/ability/cache/base_cache.rb
185
+ - lib/cantango/ability/cache/key.rb
196
186
  - lib/cantango/ability/cache/kompiler.rb
197
187
  - lib/cantango/ability/cache/moneta_cache.rb
188
+ - lib/cantango/ability/cache/reader.rb
189
+ - lib/cantango/ability/cache/rules_cache.rb
198
190
  - lib/cantango/ability/cache/session_cache.rb
199
- - lib/cantango/ability/class_methods.rb
191
+ - lib/cantango/ability/cache/writer.rb
192
+ - lib/cantango/ability/cache_helpers.rb
200
193
  - lib/cantango/ability/masquerade_helpers.rb
201
194
  - lib/cantango/ability/permission_helpers.rb
202
195
  - lib/cantango/ability/permit_helpers.rb
203
196
  - lib/cantango/ability/role_helpers.rb
204
197
  - lib/cantango/ability/scope.rb
205
198
  - lib/cantango/ability/user_helpers.rb
199
+ - lib/cantango/adapter/compiler.rb
200
+ - lib/cantango/adapter/moneta.rb
206
201
  - lib/cantango/api.rb
207
202
  - lib/cantango/api/aliases.rb
208
- - lib/cantango/api/aliases/account_permit.rb
209
- - lib/cantango/api/aliases/license.rb
210
- - lib/cantango/api/aliases/permit.rb
211
- - lib/cantango/api/aliases/role_group_permit.rb
212
- - lib/cantango/api/aliases/role_permit.rb
213
- - lib/cantango/api/aliases/user_permit.rb
203
+ - lib/cantango/api/attributes.rb
214
204
  - lib/cantango/api/common.rb
215
205
  - lib/cantango/api/options.rb
216
206
  - lib/cantango/api/user.rb
@@ -222,10 +212,12 @@ files:
222
212
  - lib/cantango/api/user_account/can.rb
223
213
  - lib/cantango/api/user_account/scope.rb
224
214
  - lib/cantango/cache.rb
215
+ - lib/cantango/cache/hash_cache.rb
225
216
  - lib/cantango/cache/moneta_cache.rb
226
217
  - lib/cantango/cancan/rule.rb
227
218
  - lib/cantango/configuration.rb
228
219
  - lib/cantango/configuration/ability.rb
220
+ - lib/cantango/configuration/adapters.rb
229
221
  - lib/cantango/configuration/autoload.rb
230
222
  - lib/cantango/configuration/categories.rb
231
223
  - lib/cantango/configuration/engines.rb
@@ -238,6 +230,8 @@ files:
238
230
  - lib/cantango/configuration/guest.rb
239
231
  - lib/cantango/configuration/hash_registry.rb
240
232
  - lib/cantango/configuration/models.rb
233
+ - lib/cantango/configuration/permit_registry.rb
234
+ - lib/cantango/configuration/permits.rb
241
235
  - lib/cantango/configuration/registry.rb
242
236
  - lib/cantango/configuration/role_groups.rb
243
237
  - lib/cantango/configuration/role_registry.rb
@@ -246,10 +240,14 @@ files:
246
240
  - lib/cantango/configuration/user_account.rb
247
241
  - lib/cantango/configuration/user_accounts.rb
248
242
  - lib/cantango/configuration/users.rb
243
+ - lib/cantango/engine.rb
244
+ - lib/cantango/filters.rb
245
+ - lib/cantango/filters/filter.rb
246
+ - lib/cantango/filters/role_filter.rb
247
+ - lib/cantango/filters/role_group_filter.rb
249
248
  - lib/cantango/helpers.rb
250
249
  - lib/cantango/helpers/role_methods.rb
251
250
  - lib/cantango/permission_engine.rb
252
- - lib/cantango/permission_engine/builder.rb
253
251
  - lib/cantango/permission_engine/collector.rb
254
252
  - lib/cantango/permission_engine/compiler.rb
255
253
  - lib/cantango/permission_engine/evaluator.rb
@@ -270,19 +268,18 @@ files:
270
268
  - lib/cantango/permission_engine/parser/rule.rb
271
269
  - lib/cantango/permission_engine/permission.rb
272
270
  - lib/cantango/permission_engine/selector.rb
271
+ - lib/cantango/permission_engine/selector/account_types.rb
273
272
  - lib/cantango/permission_engine/selector/base.rb
274
273
  - lib/cantango/permission_engine/selector/licenses.rb
275
274
  - lib/cantango/permission_engine/selector/role_groups.rb
276
275
  - lib/cantango/permission_engine/selector/roles.rb
276
+ - lib/cantango/permission_engine/selector/user_types.rb
277
277
  - lib/cantango/permission_engine/selector/users.rb
278
278
  - lib/cantango/permission_engine/statement.rb
279
279
  - lib/cantango/permission_engine/statements.rb
280
280
  - lib/cantango/permission_engine/store.rb
281
281
  - lib/cantango/permission_engine/yaml_store.rb
282
282
  - lib/cantango/permit_engine.rb
283
- - lib/cantango/permit_engine/account_permit.rb
284
- - lib/cantango/permit_engine/account_permit/builder.rb
285
- - lib/cantango/permit_engine/account_permit/finder.rb
286
283
  - lib/cantango/permit_engine/builder.rb
287
284
  - lib/cantango/permit_engine/builder/base.rb
288
285
  - lib/cantango/permit_engine/builder/special_permits.rb
@@ -293,27 +290,33 @@ files:
293
290
  - lib/cantango/permit_engine/executor/system.rb
294
291
  - lib/cantango/permit_engine/factory.rb
295
292
  - lib/cantango/permit_engine/finder.rb
296
- - lib/cantango/permit_engine/license.rb
297
- - lib/cantango/permit_engine/license/loader.rb
298
- - lib/cantango/permit_engine/license/rules.rb
299
- - lib/cantango/permit_engine/permit.rb
300
- - lib/cantango/permit_engine/role_group_permit.rb
301
- - lib/cantango/permit_engine/role_group_permit/builder.rb
302
- - lib/cantango/permit_engine/role_group_permit/finder.rb
303
293
  - lib/cantango/permit_engine/role_matcher.rb
304
- - lib/cantango/permit_engine/role_permit.rb
305
- - lib/cantango/permit_engine/role_permit/builder.rb
306
- - lib/cantango/permit_engine/role_permit/finder.rb
307
- - lib/cantango/permit_engine/user_permit.rb
308
- - lib/cantango/permit_engine/user_permit/builder.rb
309
- - lib/cantango/permit_engine/user_permit/finder.rb
310
294
  - lib/cantango/permit_engine/util.rb
295
+ - lib/cantango/permits.rb
296
+ - lib/cantango/permits/account_permit.rb
297
+ - lib/cantango/permits/account_permit/builder.rb
298
+ - lib/cantango/permits/account_permit/finder.rb
299
+ - lib/cantango/permits/license.rb
300
+ - lib/cantango/permits/license/loader.rb
301
+ - lib/cantango/permits/license/rules.rb
302
+ - lib/cantango/permits/macros.rb
303
+ - lib/cantango/permits/permit.rb
304
+ - lib/cantango/permits/role_group_permit.rb
305
+ - lib/cantango/permits/role_group_permit/builder.rb
306
+ - lib/cantango/permits/role_group_permit/finder.rb
307
+ - lib/cantango/permits/role_permit.rb
308
+ - lib/cantango/permits/role_permit/builder.rb
309
+ - lib/cantango/permits/role_permit/finder.rb
310
+ - lib/cantango/permits/user_permit.rb
311
+ - lib/cantango/permits/user_permit/builder.rb
312
+ - lib/cantango/permits/user_permit/finder.rb
311
313
  - lib/cantango/rails.rb
312
- - lib/cantango/rails/base_helpers.rb
313
- - lib/cantango/rails/controller_helpers.rb
314
314
  - lib/cantango/rails/engine.rb
315
+ - lib/cantango/rails/helpers/base_helper.rb
316
+ - lib/cantango/rails/helpers/controller_helper.rb
317
+ - lib/cantango/rails/helpers/rest_helper.rb
318
+ - lib/cantango/rails/helpers/view_helper.rb
315
319
  - lib/cantango/rails/railtie.rb
316
- - lib/cantango/rails/view_helpers.rb
317
320
  - lib/cantango/rspec.rb
318
321
  - lib/cantango/rspec/config.rb
319
322
  - lib/cantango/rspec/matchers.rb
@@ -336,7 +339,14 @@ files:
336
339
  - lib/cantango/users/masquerade/session_active_user.rb
337
340
  - lib/cantango/users/user.rb
338
341
  - lib/cantango/users/user_account.rb
342
+ - lib/generators/cantango/account_permit/account_permit_generator.rb
343
+ - lib/generators/cantango/account_permit/templates/account_permit.erb
339
344
  - lib/generators/cantango/base.rb
345
+ - lib/generators/cantango/basic.rb
346
+ - lib/generators/cantango/install/install_generator.rb
347
+ - lib/generators/cantango/install/templates/cantango.rb
348
+ - lib/generators/cantango/install/templates/categories.yml
349
+ - lib/generators/cantango/install/templates/permissions.yml
340
350
  - lib/generators/cantango/license/license_generator.rb
341
351
  - lib/generators/cantango/license/templates/license.erb
342
352
  - lib/generators/cantango/license_base.rb
@@ -347,6 +357,9 @@ files:
347
357
  - lib/generators/cantango/role_permit/templates/role_group_permit.erb
348
358
  - lib/generators/cantango/role_permit/templates/role_permit.erb
349
359
  - lib/generators/cantango/role_permits/role_permits_generator.rb
360
+ - lib/generators/cantango/user_permit/templates/account_permit.erb
361
+ - lib/generators/cantango/user_permit/templates/user_permit.erb
362
+ - lib/generators/cantango/user_permit/user_permit_generator.rb
350
363
  - spec/Note_on_licenses.textile
351
364
  - spec/Refactor_into_engines.textile
352
365
  - spec/TODO
@@ -365,8 +378,8 @@ files:
365
378
  - spec/active_record/migrations/006_create_todo.rb
366
379
  - spec/active_record/migrations/007_create_user_todos.rb
367
380
  - spec/active_record/scenarios/SCENARIOS README.textile
368
- - spec/active_record/scenarios/engines/permission_engine/cantango_permissions.yml
369
381
  - spec/active_record/scenarios/engines/permission_engine/categories.yml
382
+ - spec/active_record/scenarios/engines/permission_engine/permissions.yml
370
383
  - spec/active_record/scenarios/engines/permission_engine/tango_permission_yml_spec.rb
371
384
  - spec/active_record/scenarios/engines/permission_engine/users.rb
372
385
  - spec/active_record/scenarios/engines/permit_engine/licenses_spec.rb
@@ -380,7 +393,7 @@ files:
380
393
  - spec/active_record/scenarios/masquerading/masquerading_for_admin_account_spec.rb
381
394
  - spec/active_record/scenarios/masquerading/masquerading_for_admin_user_spec.rb
382
395
  - spec/active_record/scenarios/shared/api.rb
383
- - spec/active_record/scenarios/shared/can_tango.rb
396
+ - spec/active_record/scenarios/shared/cantango.rb
384
397
  - spec/active_record/scenarios/shared/examples/user_accounts.rb
385
398
  - spec/active_record/scenarios/shared/examples/users.rb
386
399
  - spec/active_record/scenarios/shared/licenses/musicians_license.rb
@@ -388,7 +401,6 @@ files:
388
401
  - spec/active_record/scenarios/shared/models/todo.rb
389
402
  - spec/active_record/scenarios/shared/models/user_todo.rb
390
403
  - spec/active_record/scenarios/shared/models/users.rb
391
- - spec/active_record/scenarios/shared/permits/PERMITS README.textile
392
404
  - spec/active_record/scenarios/shared/permits/account_permits/admin_account_permit.rb
393
405
  - spec/active_record/scenarios/shared/permits/account_permits/guest_account_permit.rb
394
406
  - spec/active_record/scenarios/shared/permits/account_permits/user_account_permit.rb
@@ -402,9 +414,6 @@ files:
402
414
  - spec/active_record/scenarios/shared/permits/special/any_role_permit.rb
403
415
  - spec/active_record/scenarios/shared/permits/special/system_role_permit.rb
404
416
  - spec/active_record/scenarios/user_accounts/admin_account_spec.rb
405
- - spec/active_record/scenarios/user_accounts/config/account_permits.yml
406
- - spec/active_record/scenarios/user_accounts/docs/USER_ACCOUNTS_SCENARIO.textile
407
- - spec/active_record/scenarios/user_accounts/docs/basic_rules_spec_possible_samples.txt
408
417
  - spec/active_record/scenarios/user_accounts/guest_account_spec.rb
409
418
  - spec/active_record/scenarios/user_accounts/helpers.rb
410
419
  - spec/active_record/scenarios/user_accounts/helpers/account_setup.rb
@@ -415,11 +424,17 @@ files:
415
424
  - spec/active_record/scenarios/user_accounts/user_account_spec.rb
416
425
  - spec/active_record/spec_helper.rb
417
426
  - spec/cantango/README.textile
418
- - spec/cantango/ability/cache/compiler_spec.rb
427
+ - spec/cantango/ability/cache/key_spec.rb
428
+ - spec/cantango/ability/cache/kompiler_spec.rb
429
+ - spec/cantango/ability/cache/reader_compile_spec.rb
430
+ - spec/cantango/ability/cache/reader_spec.rb
431
+ - spec/cantango/ability/cache/rules_cache_spec.rb
419
432
  - spec/cantango/ability/cache/session_cache_spec.rb
433
+ - spec/cantango/ability/cache/writer_spec.rb
420
434
  - spec/cantango/ability/cache_spec.rb
421
435
  - spec/cantango/ability_filters_spec.rb
422
436
  - spec/cantango/ability_spec.rb
437
+ - spec/cantango/api/attributes_spec.rb
423
438
  - spec/cantango/api/current_user_accounts.rb
424
439
  - spec/cantango/api/current_users.rb
425
440
  - spec/cantango/api/user/ability_api_spec.rb
@@ -431,6 +446,7 @@ files:
431
446
  - spec/cantango/api/user_account_api_spec.rb
432
447
  - spec/cantango/api/user_api_spec.rb
433
448
  - spec/cantango/configuration/ability_spec.rb
449
+ - spec/cantango/configuration/adapter_spec.rb
434
450
  - spec/cantango/configuration/autoload_spec.rb
435
451
  - spec/cantango/configuration/categories_spec.rb
436
452
  - spec/cantango/configuration/engines/cache_spec.rb
@@ -444,6 +460,8 @@ files:
444
460
  - spec/cantango/configuration/guest/find_guest_default_way_spec.rb
445
461
  - spec/cantango/configuration/guest_spec.rb
446
462
  - spec/cantango/configuration/hash_registry_spec.rb
463
+ - spec/cantango/configuration/permit_registry_spec.rb
464
+ - spec/cantango/configuration/permits_spec.rb
447
465
  - spec/cantango/configuration/registry_spec.rb
448
466
  - spec/cantango/configuration/role_groups_spec.rb
449
467
  - spec/cantango/configuration/roles_spec.rb
@@ -474,6 +492,7 @@ files:
474
492
  - spec/cantango/permission_engine/store_spec.rb
475
493
  - spec/cantango/permission_engine/user_permission_store_spec.rb
476
494
  - spec/cantango/permission_engine/yaml_store_spec.rb
495
+ - spec/cantango/permission_engine_spec.rb
477
496
  - spec/cantango/permit_engine/account_permit_spec.rb
478
497
  - spec/cantango/permit_engine/builder/role_group_permits_spec.rb
479
498
  - spec/cantango/permit_engine/builder/role_permits_spec.rb
@@ -485,7 +504,11 @@ files:
485
504
  - spec/cantango/permit_engine/role_group_permit_spec.rb
486
505
  - spec/cantango/permit_engine/role_permit_spec.rb
487
506
  - spec/cantango/permit_engine/user_permit_spec.rb
507
+ - spec/cantango/permit_engine_spec.rb
508
+ - spec/cantango/permits/macros_spec.rb
509
+ - spec/cantango/permits/permit_spec.rb
488
510
  - spec/cantango/rules_spec.rb
511
+ - spec/cantango_spec.rb
489
512
  - spec/devise-dummy/Rakefile
490
513
  - spec/devise-dummy/app/controllers/accounts_controller.rb
491
514
  - spec/devise-dummy/app/controllers/application_controller.rb
@@ -552,7 +575,6 @@ files:
552
575
  - spec/devise-dummy/config.ru
553
576
  - spec/devise-dummy/config/application.rb
554
577
  - spec/devise-dummy/config/boot.rb
555
- - spec/devise-dummy/config/cantango_permissions.yml
556
578
  - spec/devise-dummy/config/categories.yml
557
579
  - spec/devise-dummy/config/database.yml
558
580
  - spec/devise-dummy/config/environment.rb
@@ -569,6 +591,7 @@ files:
569
591
  - spec/devise-dummy/config/initializers/simple_roles.rb
570
592
  - spec/devise-dummy/config/locales/devise.en.yml
571
593
  - spec/devise-dummy/config/locales/en.yml
594
+ - spec/devise-dummy/config/permissions.yml
572
595
  - spec/devise-dummy/config/routes.rb
573
596
  - spec/devise-dummy/db/migrate/002_create_comment.rb
574
597
  - spec/devise-dummy/db/migrate/003_create_post.rb
@@ -649,7 +672,6 @@ files:
649
672
  - spec/dummy/config.ru
650
673
  - spec/dummy/config/application.rb
651
674
  - spec/dummy/config/boot.rb
652
- - spec/dummy/config/cantango_permissions.yml
653
675
  - spec/dummy/config/categories.yml
654
676
  - spec/dummy/config/database.yml
655
677
  - spec/dummy/config/environment.rb
@@ -664,6 +686,7 @@ files:
664
686
  - spec/dummy/config/initializers/session_store.rb
665
687
  - spec/dummy/config/initializers/simple_roles.rb
666
688
  - spec/dummy/config/locales/en.yml
689
+ - spec/dummy/config/permissions.yml
667
690
  - spec/dummy/config/routes.rb
668
691
  - spec/dummy/db/migrate/001_create_user.rb
669
692
  - spec/dummy/db/migrate/002_create_comment.rb
@@ -686,8 +709,8 @@ files:
686
709
  - spec/dummy/tmp/pids/server.pid
687
710
  - spec/dummy_spec_helper.rb
688
711
  - spec/entire_suite_spec.rb
689
- - spec/factories.rb
690
- - spec/fixtures/config/cantango_permissions.yml
712
+ - spec/factories/user.rb
713
+ - spec/factories/user_account.rb
691
714
  - spec/fixtures/config/categories.yml
692
715
  - spec/fixtures/config/evaluator_fixtures.yml
693
716
  - spec/fixtures/config/licenses.yml
@@ -696,6 +719,8 @@ files:
696
719
  - spec/fixtures/config/roles.yml
697
720
  - spec/fixtures/config/user_permissions.yml
698
721
  - spec/fixtures/models.rb
722
+ - spec/fixtures/models/admin.rb
723
+ - spec/fixtures/models/admin_account.rb
699
724
  - spec/fixtures/models/items.rb
700
725
  - spec/fixtures/models/simple_roles.rb
701
726
  - spec/fixtures/models/user.rb
@@ -772,7 +797,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
772
797
  version: '0'
773
798
  segments:
774
799
  - 0
775
- hash: 2981871111333637393
800
+ hash: -2626615460253562025
776
801
  required_rubygems_version: !ruby/object:Gem::Requirement
777
802
  none: false
778
803
  requirements:
@@ -781,7 +806,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
781
806
  version: '0'
782
807
  requirements: []
783
808
  rubyforge_project:
784
- rubygems_version: 1.8.7
809
+ rubygems_version: 1.8.8
785
810
  signing_key:
786
811
  specification_version: 3
787
812
  summary: CanCan extension with role oriented permission management and more