cantango 0.8.0 → 0.8.5.1

Sign up to get free protection for your applications and to get access to all the features.
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