activeadmin 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (333) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +467 -0
  3. data/.gitignore +2 -5
  4. data/.rspec +1 -0
  5. data/.rspec_parallel +2 -0
  6. data/.rubocop.yml +25 -7
  7. data/.simplecov +4 -6
  8. data/CHANGELOG.md +175 -83
  9. data/CODE_OF_CONDUCT.md +64 -12
  10. data/CONTRIBUTING.md +77 -40
  11. data/Gemfile +7 -55
  12. data/Gemfile.common +53 -0
  13. data/Gemfile.lock +431 -0
  14. data/README.md +39 -18
  15. data/Rakefile +1 -32
  16. data/app/assets/stylesheets/active_admin/_forms.scss +1 -1
  17. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  18. data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
  19. data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
  20. data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
  21. data/app/views/active_admin/devise/registrations/new.html.erb +1 -1
  22. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  23. data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
  24. data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
  25. data/bin/install_chromedriver.sh +17 -0
  26. data/config/locales/de.yml +10 -0
  27. data/config/locales/en.yml +19 -1
  28. data/config/locales/es.yml +20 -1
  29. data/config/locales/fi.yml +1 -1
  30. data/config/locales/it.yml +4 -0
  31. data/config/locales/nb.yml +15 -5
  32. data/config/locales/nl.yml +11 -0
  33. data/config/locales/pl.yml +71 -3
  34. data/config/locales/ru.yml +2 -0
  35. data/config/locales/tr.yml +9 -0
  36. data/config/locales/zh-CN.yml +33 -5
  37. data/config/mdl_style.rb +2 -0
  38. data/cucumber.yml +7 -3
  39. data/docs/.gitignore +1 -0
  40. data/docs/1-general-configuration.md +16 -1
  41. data/docs/10-custom-pages.md +14 -0
  42. data/docs/12-arbre-components.md +28 -1
  43. data/docs/13-authorization-adapter.md +36 -17
  44. data/docs/2-resource-customization.md +8 -3
  45. data/docs/3-index-pages.md +17 -0
  46. data/docs/3-index-pages/custom-index.md +1 -1
  47. data/docs/3-index-pages/index-as-blog.md +1 -1
  48. data/docs/3-index-pages/index-as-table.md +5 -5
  49. data/docs/5-forms.md +16 -2
  50. data/docs/8-custom-actions.md +11 -0
  51. data/docs/Gemfile +2 -0
  52. data/docs/Gemfile.lock +249 -0
  53. data/docs/_config.yml +1 -1
  54. data/docs/_includes/toc.html +1 -1
  55. data/docs/_includes/top-menu.html +9 -1
  56. data/docs/documentation.md +1 -1
  57. data/docs/images/tidelift.svg +14 -0
  58. data/docs/stylesheets/main.css +26 -2
  59. data/gemfiles/rails_42.gemfile +2 -2
  60. data/gemfiles/rails_42.gemfile.lock +410 -0
  61. data/gemfiles/rails_50.gemfile +2 -2
  62. data/gemfiles/rails_50.gemfile.lock +424 -0
  63. data/gemfiles/rails_51.gemfile +2 -2
  64. data/gemfiles/rails_51.gemfile.lock +423 -0
  65. data/lib/active_admin/abstract_view_factory.rb +13 -51
  66. data/lib/active_admin/application.rb +42 -142
  67. data/lib/active_admin/application_settings.rb +39 -0
  68. data/lib/active_admin/base_controller/authorization.rb +1 -2
  69. data/lib/active_admin/batch_actions/controller.rb +1 -1
  70. data/lib/active_admin/dependency.rb +8 -0
  71. data/lib/active_admin/deprecation.rb +0 -25
  72. data/lib/active_admin/dynamic_setting.rb +38 -0
  73. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  74. data/lib/active_admin/engine.rb +5 -0
  75. data/lib/active_admin/filters/active_filter.rb +1 -1
  76. data/lib/active_admin/filters/resource_extension.rb +1 -1
  77. data/lib/active_admin/form_builder.rb +95 -60
  78. data/lib/active_admin/inputs/datepicker_input.rb +7 -0
  79. data/lib/active_admin/menu.rb +2 -8
  80. data/lib/active_admin/menu_item.rb +3 -31
  81. data/lib/active_admin/namespace.rb +18 -6
  82. data/lib/active_admin/namespace_settings.rb +107 -0
  83. data/lib/active_admin/orm/active_record/comments.rb +11 -0
  84. data/lib/active_admin/orm/active_record/comments/comment.rb +1 -1
  85. data/lib/active_admin/resource/action_items.rb +6 -1
  86. data/lib/active_admin/resource_controller/decorators.rb +3 -3
  87. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  88. data/lib/active_admin/router.rb +89 -84
  89. data/lib/active_admin/scope.rb +5 -1
  90. data/lib/active_admin/settings_node.rb +19 -0
  91. data/lib/active_admin/version.rb +1 -1
  92. data/lib/active_admin/views/components/active_admin_form.rb +2 -3
  93. data/lib/active_admin/views/components/menu.rb +32 -0
  94. data/lib/active_admin/views/components/menu_item.rb +58 -0
  95. data/lib/active_admin/views/components/scopes.rb +11 -4
  96. data/lib/active_admin/views/components/sidebar.rb +13 -0
  97. data/lib/active_admin/views/components/site_title.rb +5 -6
  98. data/lib/active_admin/views/components/table_for.rb +1 -10
  99. data/lib/active_admin/views/components/tabs.rb +4 -1
  100. data/lib/active_admin/views/footer.rb +2 -6
  101. data/lib/active_admin/views/header.rb +3 -15
  102. data/lib/active_admin/views/index_as_blog.rb +1 -1
  103. data/lib/active_admin/views/index_as_grid.rb +25 -25
  104. data/lib/active_admin/views/index_as_table.rb +6 -6
  105. data/lib/active_admin/views/pages/base.rb +27 -53
  106. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  107. data/lib/bug_report_templates/active_admin_master.rb +2 -3
  108. data/tasks/application_generator.rb +48 -0
  109. data/tasks/gemfiles.rake +8 -0
  110. data/tasks/lint.rake +96 -7
  111. data/tasks/local.rake +10 -8
  112. data/tasks/test.rake +30 -16
  113. metadata +26 -440
  114. data/.travis.yml +0 -51
  115. data/features/action_item.feature +0 -73
  116. data/features/authorization.feature +0 -64
  117. data/features/authorization_cancan.feature +0 -52
  118. data/features/authorization_pundit.feature +0 -37
  119. data/features/belongs_to.feature +0 -124
  120. data/features/breadcrumb.feature +0 -75
  121. data/features/comments/commenting.feature +0 -178
  122. data/features/comments/viewing_index.feature +0 -19
  123. data/features/create_another.feature +0 -55
  124. data/features/dashboard.feature +0 -16
  125. data/features/decorators.feature +0 -43
  126. data/features/development_reloading.feature +0 -28
  127. data/features/edit_page.feature +0 -116
  128. data/features/favicon.feature +0 -20
  129. data/features/first_boot.feature +0 -16
  130. data/features/footer.feature +0 -28
  131. data/features/global_navigation.feature +0 -29
  132. data/features/i18n.feature +0 -55
  133. data/features/index/batch_actions.feature +0 -218
  134. data/features/index/filters.feature +0 -250
  135. data/features/index/format_as_csv.feature +0 -220
  136. data/features/index/formats.feature +0 -88
  137. data/features/index/index_as_block.feature +0 -15
  138. data/features/index/index_as_blog.feature +0 -69
  139. data/features/index/index_as_grid.feature +0 -45
  140. data/features/index/index_as_table.feature +0 -291
  141. data/features/index/index_blank_slate.feature +0 -83
  142. data/features/index/index_parameters.feature +0 -75
  143. data/features/index/index_scope_to.feature +0 -56
  144. data/features/index/index_scopes.feature +0 -285
  145. data/features/index/page_title.feature +0 -41
  146. data/features/index/pagination.feature +0 -63
  147. data/features/index/switch_index_view.feature +0 -73
  148. data/features/menu.feature +0 -72
  149. data/features/meta_tags.feature +0 -21
  150. data/features/new_page.feature +0 -136
  151. data/features/registering_assets.feature +0 -38
  152. data/features/registering_pages.feature +0 -237
  153. data/features/registering_resources.feature +0 -33
  154. data/features/renamed_resource.feature +0 -30
  155. data/features/root_to.feature +0 -17
  156. data/features/show/attributes_table_title.feature +0 -54
  157. data/features/show/columns.feature +0 -40
  158. data/features/show/default_content.feature +0 -44
  159. data/features/show/page_title.feature +0 -58
  160. data/features/show/tabs.feature +0 -33
  161. data/features/sidebar_sections.feature +0 -210
  162. data/features/site_title.feature +0 -47
  163. data/features/specifying_actions.feature +0 -118
  164. data/features/step_definitions/action_item_steps.rb +0 -7
  165. data/features/step_definitions/action_link_steps.rb +0 -19
  166. data/features/step_definitions/additional_web_steps.rb +0 -81
  167. data/features/step_definitions/asset_steps.rb +0 -15
  168. data/features/step_definitions/attribute_steps.rb +0 -18
  169. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  170. data/features/step_definitions/batch_action_steps.rb +0 -81
  171. data/features/step_definitions/blog_steps.rb +0 -3
  172. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  173. data/features/step_definitions/column_steps.rb +0 -8
  174. data/features/step_definitions/comment_steps.rb +0 -32
  175. data/features/step_definitions/configuration_steps.rb +0 -100
  176. data/features/step_definitions/dashboard_steps.rb +0 -15
  177. data/features/step_definitions/factory_steps.rb +0 -35
  178. data/features/step_definitions/filter_steps.rb +0 -47
  179. data/features/step_definitions/flash_steps.rb +0 -11
  180. data/features/step_definitions/footer_steps.rb +0 -11
  181. data/features/step_definitions/format_steps.rb +0 -56
  182. data/features/step_definitions/i18n_steps.rb +0 -11
  183. data/features/step_definitions/index_scope_steps.rb +0 -29
  184. data/features/step_definitions/index_views_steps.rb +0 -3
  185. data/features/step_definitions/layout_steps.rb +0 -3
  186. data/features/step_definitions/member_link_steps.rb +0 -7
  187. data/features/step_definitions/menu_steps.rb +0 -11
  188. data/features/step_definitions/meta_tag_steps.rb +0 -3
  189. data/features/step_definitions/pagination_steps.rb +0 -15
  190. data/features/step_definitions/sidebar_steps.rb +0 -11
  191. data/features/step_definitions/site_title_steps.rb +0 -17
  192. data/features/step_definitions/tab_steps.rb +0 -8
  193. data/features/step_definitions/table_steps.rb +0 -116
  194. data/features/step_definitions/user_steps.rb +0 -52
  195. data/features/step_definitions/web_steps.rb +0 -86
  196. data/features/sti_resource.feature +0 -65
  197. data/features/strong_parameters.feature +0 -69
  198. data/features/support/env.rb +0 -122
  199. data/features/support/paths.rb +0 -73
  200. data/features/support/regular_env.rb +0 -7
  201. data/features/support/reload_env.rb +0 -7
  202. data/features/support/selectors.rb +0 -45
  203. data/features/users/logging_in.feature +0 -36
  204. data/features/users/logging_out.feature +0 -13
  205. data/features/users/resetting_password.feature +0 -34
  206. data/gemfiles/rails_52.gemfile +0 -11
  207. data/lib/active_admin/helpers/settings.rb +0 -114
  208. data/spec/bug_report_templates_spec.rb +0 -26
  209. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  210. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  211. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  212. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  213. data/spec/javascripts/fixtures/flashes.html +0 -2
  214. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  215. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  216. data/spec/javascripts/support/jasmine.yml +0 -74
  217. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  218. data/spec/rails_helper.rb +0 -59
  219. data/spec/requests/default_namespace_spec.rb +0 -81
  220. data/spec/requests/memory_spec.rb +0 -25
  221. data/spec/requests/stylesheets_spec.rb +0 -18
  222. data/spec/spec_helper.rb +0 -1
  223. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  224. data/spec/support/active_admin_request_helpers.rb +0 -39
  225. data/spec/support/rails_template.rb +0 -153
  226. data/spec/support/rails_template_with_data.rb +0 -327
  227. data/spec/support/templates/admin/stores.rb +0 -7
  228. data/spec/support/templates/en.yml +0 -8
  229. data/spec/support/templates/manifest.js +0 -3
  230. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  231. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  232. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  233. data/spec/support/templates/policies/application_policy.rb +0 -44
  234. data/spec/support/templates/policies/category_policy.rb +0 -7
  235. data/spec/support/templates/policies/post_policy.rb +0 -15
  236. data/spec/support/templates/policies/store_policy.rb +0 -11
  237. data/spec/support/templates/policies/user_policy.rb +0 -11
  238. data/spec/support/templates/post_decorator.rb +0 -24
  239. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  240. data/spec/unit/action_builder_spec.rb +0 -158
  241. data/spec/unit/active_admin_spec.rb +0 -11
  242. data/spec/unit/application_spec.rb +0 -184
  243. data/spec/unit/asset_registration_spec.rb +0 -81
  244. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  245. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  246. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  247. data/spec/unit/auto_link_spec.rb +0 -93
  248. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  249. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  250. data/spec/unit/belongs_to_spec.rb +0 -76
  251. data/spec/unit/cancan_adapter_spec.rb +0 -43
  252. data/spec/unit/comments_spec.rb +0 -176
  253. data/spec/unit/component_spec.rb +0 -18
  254. data/spec/unit/config_shared_examples.rb +0 -59
  255. data/spec/unit/controller_filters_spec.rb +0 -41
  256. data/spec/unit/csv_builder_spec.rb +0 -313
  257. data/spec/unit/dependency_spec.rb +0 -135
  258. data/spec/unit/devise_spec.rb +0 -110
  259. data/spec/unit/dsl_spec.rb +0 -120
  260. data/spec/unit/filters/active_filter_spec.rb +0 -189
  261. data/spec/unit/filters/active_spec.rb +0 -24
  262. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  263. data/spec/unit/filters/resource_spec.rb +0 -128
  264. data/spec/unit/form_builder_spec.rb +0 -990
  265. data/spec/unit/generators/install_spec.rb +0 -31
  266. data/spec/unit/helpers/collection_spec.rb +0 -68
  267. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  268. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  269. data/spec/unit/helpers/settings_spec.rb +0 -30
  270. data/spec/unit/i18n_spec.rb +0 -29
  271. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  272. data/spec/unit/menu_collection_spec.rb +0 -62
  273. data/spec/unit/menu_item_spec.rb +0 -141
  274. data/spec/unit/menu_spec.rb +0 -71
  275. data/spec/unit/namespace/authorization_spec.rb +0 -27
  276. data/spec/unit/namespace/register_page_spec.rb +0 -99
  277. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  278. data/spec/unit/namespace_spec.rb +0 -124
  279. data/spec/unit/order_clause_spec.rb +0 -81
  280. data/spec/unit/page_controller_spec.rb +0 -5
  281. data/spec/unit/page_spec.rb +0 -128
  282. data/spec/unit/pretty_format_spec.rb +0 -82
  283. data/spec/unit/pundit_adapter_spec.rb +0 -98
  284. data/spec/unit/resource/action_items_spec.rb +0 -69
  285. data/spec/unit/resource/attributes_spec.rb +0 -49
  286. data/spec/unit/resource/includes_spec.rb +0 -21
  287. data/spec/unit/resource/menu_spec.rb +0 -18
  288. data/spec/unit/resource/naming_spec.rb +0 -122
  289. data/spec/unit/resource/ordering_spec.rb +0 -35
  290. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  291. data/spec/unit/resource/pagination_spec.rb +0 -38
  292. data/spec/unit/resource/routes_spec.rb +0 -125
  293. data/spec/unit/resource/scopes_spec.rb +0 -50
  294. data/spec/unit/resource/sidebars_spec.rb +0 -43
  295. data/spec/unit/resource_collection_spec.rb +0 -175
  296. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  297. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  298. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  299. data/spec/unit/resource_controller_spec.rb +0 -273
  300. data/spec/unit/resource_registration_spec.rb +0 -61
  301. data/spec/unit/resource_spec.rb +0 -320
  302. data/spec/unit/routing_spec.rb +0 -211
  303. data/spec/unit/scope_spec.rb +0 -209
  304. data/spec/unit/settings_spec.rb +0 -117
  305. data/spec/unit/view_factory_spec.rb +0 -19
  306. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  307. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  308. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  309. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  310. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  311. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  312. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  313. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  314. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  315. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  316. data/spec/unit/views/components/columns_spec.rb +0 -187
  317. data/spec/unit/views/components/index_list_spec.rb +0 -49
  318. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  319. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  320. data/spec/unit/views/components/panel_spec.rb +0 -58
  321. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  322. data/spec/unit/views/components/site_title_spec.rb +0 -76
  323. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  324. data/spec/unit/views/components/table_for_spec.rb +0 -436
  325. data/spec/unit/views/components/tabs_spec.rb +0 -67
  326. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  327. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  328. data/spec/unit/views/pages/form_spec.rb +0 -54
  329. data/spec/unit/views/pages/index_spec.rb +0 -60
  330. data/spec/unit/views/pages/layout_spec.rb +0 -59
  331. data/spec/unit/views/pages/show_spec.rb +0 -32
  332. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  333. data/tasks/parallel_tests.rake +0 -66
@@ -1,51 +0,0 @@
1
- ---
2
-
3
- language: ruby
4
-
5
- sudo: false
6
-
7
- dist: trusty
8
-
9
- bundler_args: --without development
10
-
11
- cache: bundler
12
-
13
- before_install:
14
- - PATH=$(npm bin):$PATH # needed to install phantomjs via npm
15
- - if [ $(phantomjs --version) != '2.1.1' ]; then npm install phantomjs-prebuilt@2.1; fi
16
- - gem update --system # use the very latest Rubygems
17
- - gem install bundler # use the very latest Bundler
18
-
19
- script:
20
- - bundle exec rake
21
- - bundle exec rake docs:build
22
-
23
- rvm:
24
- - jruby-9.1.15.0
25
- - 2.3.7
26
- - 2.4.4
27
- - 2.5.1
28
-
29
- gemfile:
30
- - gemfiles/rails_42.gemfile
31
- - gemfiles/rails_50.gemfile
32
- - gemfiles/rails_51.gemfile
33
- - gemfiles/rails_52.gemfile
34
-
35
- env:
36
- global:
37
- - JRUBY_OPTS="-J-Xmx1024m --dev --debug"
38
- - COVERAGE=true
39
-
40
- matrix:
41
- fast_finish: true
42
-
43
- allow_failures:
44
- - rvm: jruby-9.1.15.0
45
- gemfile: gemfiles/rails_42.gemfile
46
- - rvm: jruby-9.1.15.0
47
- gemfile: gemfiles/rails_50.gemfile
48
- - rvm: jruby-9.1.15.0
49
- gemfile: gemfiles/rails_51.gemfile
50
- - rvm: jruby-9.1.15.0
51
- gemfile: gemfiles/rails_52.gemfile
@@ -1,73 +0,0 @@
1
- Feature: Action Item
2
-
3
- Creating and Configuring action items
4
-
5
- Background:
6
- Given I am logged in
7
- And a post with the title "Hello World" exists
8
-
9
- Scenario: Create an member action
10
- Given a configuration of:
11
- """
12
- ActiveAdmin.register Post do
13
- action_item :embiggen do
14
- link_to "Embiggen", '/'
15
- end
16
- end
17
- """
18
- When I am on the index page for posts
19
- Then I should not see a member link to "Embiggen"
20
-
21
- When I follow "View"
22
- Then I should see an action item link to "Embiggen"
23
-
24
- When I follow "Edit Post"
25
- Then I should see an action item link to "Embiggen"
26
-
27
- When I am on the index page for posts
28
- When I follow "New Post"
29
- Then I should see an action item link to "Embiggen"
30
-
31
- Scenario: Create an member action with if clause that returns true
32
- Given a configuration of:
33
- """
34
- ActiveAdmin.register Post do
35
- action_item :embiggen, if: proc{ !current_active_admin_user.nil? } do
36
- link_to "Embiggen", '/'
37
- end
38
- end
39
- """
40
- When I am on the index page for posts
41
- Then I should not see a member link to "Embiggen"
42
-
43
- When I follow "View"
44
- Then I should see an action item link to "Embiggen"
45
-
46
- When I follow "Edit Post"
47
- Then I should see an action item link to "Embiggen"
48
-
49
- When I am on the index page for posts
50
- When I follow "New Post"
51
- Then I should see an action item link to "Embiggen"
52
-
53
- Scenario: Create an member action with if clause that returns false
54
- Given a configuration of:
55
- """
56
- ActiveAdmin.register Post do
57
- action_item :embiggen, if: proc{ current_active_admin_user.nil? } do
58
- link_to "Embiggen", '/'
59
- end
60
- end
61
- """
62
- When I am on the index page for posts
63
- Then I should not see a member link to "Embiggen"
64
-
65
- When I follow "View"
66
- Then I should not see an action item link to "Embiggen"
67
-
68
- When I follow "Edit Post"
69
- Then I should not see an action item link to "Embiggen"
70
-
71
- When I am on the index page for posts
72
- When I follow "New Post"
73
- Then I should not see an action item link to "Embiggen"
@@ -1,64 +0,0 @@
1
- Feature: Authorizing Access
2
-
3
- Ensure that access denied exceptions are managed
4
-
5
- Background:
6
- Given I am logged in
7
- And 1 post exists
8
- And a configuration of:
9
- """
10
- class OnlyAuthorsAuthorization < ActiveAdmin::AuthorizationAdapter
11
-
12
- def authorized?(action, subject = nil)
13
- case subject
14
-
15
- when normalized(Post)
16
- case action
17
- when ActiveAdmin::Auth::UPDATE, ActiveAdmin::Auth::DESTROY
18
- false
19
- else
20
- true
21
- end
22
-
23
- when ActiveAdmin::Page
24
- if subject.name == "No Access"
25
- false
26
- else
27
- true
28
- end
29
-
30
- else
31
- false
32
- end
33
- end
34
-
35
- end
36
-
37
- ActiveAdmin.application.namespace(:admin).authorization_adapter = OnlyAuthorsAuthorization
38
-
39
- ActiveAdmin.register Post do
40
- end
41
-
42
- ActiveAdmin.register_page "No Access" do
43
- end
44
- """
45
- And I am on the index page for posts
46
-
47
- @allow-rescue
48
- Scenario: Attempt to access a resource I am not authorized to see
49
- When I go to the last post's edit page
50
- Then I should see "You are not authorized to perform this action"
51
-
52
- Scenario: Viewing the default action items
53
- When I follow "View"
54
- Then I should not see an action item link to "Edit"
55
-
56
- @allow-rescue
57
- Scenario: Attempting to visit a Page without authorization
58
- When I go to the admin no access page
59
- Then I should see "You are not authorized to perform this action"
60
-
61
- @allow-rescue
62
- Scenario: Viewing a page with authorization
63
- When I go to the admin dashboard page
64
- Then I should see "Dashboard"
@@ -1,52 +0,0 @@
1
- Feature: Authorizing Access using CanCan
2
-
3
- Background:
4
- Given I am logged in
5
- And 1 post exists
6
- And a configuration of:
7
- """
8
- require 'cancan'
9
-
10
- class ::Ability
11
- include ::CanCan::Ability
12
-
13
- def initialize(user)
14
- # Manage Posts
15
- can [:edit, :destroy], Post, author_id: user.id
16
- can :read, Post
17
-
18
- # View Pages
19
- can :read, ActiveAdmin::Page, name: "Dashboard"
20
- cannot :read, ActiveAdmin::Page, name: "No Access"
21
- end
22
-
23
- end
24
-
25
- ActiveAdmin.application.namespace(:admin).authorization_adapter = ActiveAdmin::CanCanAdapter
26
-
27
- ActiveAdmin.register Post do
28
- end
29
-
30
- ActiveAdmin.register_page "No Access" do
31
- end
32
- """
33
- And I am on the index page for posts
34
-
35
- @allow-rescue
36
- Scenario: Attempt to access a resource I am not authorized to see
37
- When I go to the last post's edit page
38
- Then I should see "You are not authorized to perform this action"
39
-
40
- Scenario: Viewing the default action items
41
- When I follow "View"
42
- Then I should not see an action item link to "Edit"
43
-
44
- @allow-rescue
45
- Scenario: Attempting to visit a Page without authorization
46
- When I go to the admin no access page
47
- Then I should see "You are not authorized to perform this action"
48
-
49
- @allow-rescue
50
- Scenario: Viewing a page with authorization
51
- When I go to the admin dashboard page
52
- Then I should see "Dashboard"
@@ -1,37 +0,0 @@
1
- Feature: Authorizing Access using Pundit
2
-
3
- Background:
4
- Given I am logged in
5
- And 1 post exists
6
- And a configuration of:
7
- """
8
- require 'pundit'
9
-
10
- ActiveAdmin.application.namespace(:admin).authorization_adapter = ActiveAdmin::PunditAdapter
11
-
12
- ActiveAdmin.register Post do
13
- end
14
-
15
- ActiveAdmin.register_page "No Access" do
16
- end
17
- """
18
- And I am on the index page for posts
19
-
20
- @allow-rescue
21
- Scenario: Attempt to access a resource I am not authorized to see
22
- When I go to the last post's edit page
23
- Then I should see "You are not authorized to perform this action"
24
-
25
- Scenario: Viewing the default action items
26
- When I follow "View"
27
- Then I should not see an action item link to "Edit"
28
-
29
- @allow-rescue
30
- Scenario: Attempting to visit a Page without authorization
31
- When I go to the admin no access page
32
- Then I should see "You are not authorized to perform this action"
33
-
34
- @allow-rescue
35
- Scenario: Viewing a page with authorization
36
- When I go to the admin dashboard page
37
- Then I should see "Dashboard"
@@ -1,124 +0,0 @@
1
- Feature: Belongs To
2
-
3
- A resource belongs to another resource
4
-
5
- Background:
6
- Given I am logged in
7
- And a post with the title "Hello World" written by "John Doe" exists
8
- And a post with the title "Hello World" written by "Jane Doe" exists
9
-
10
- Scenario: Viewing the child resource index page
11
- Given a configuration of:
12
- """
13
- ActiveAdmin.register User
14
- ActiveAdmin.register Post do
15
- belongs_to :user
16
- end
17
- """
18
- When I go to the last author's posts
19
- Then the "Users" tab should be selected
20
- And I should not see a menu item for "Posts"
21
- And I should see "Displaying 1 Post"
22
- And I should see a link to "Users" in the breadcrumb
23
- And I should see a link to "Jane Doe" in the breadcrumb
24
-
25
- Scenario: Updating a child resource page
26
- Given a configuration of:
27
- """
28
- ActiveAdmin.register User
29
- ActiveAdmin.register Post do
30
- belongs_to :user
31
- permit_params :title, :body, :published_date
32
-
33
- form do |f|
34
- f.inputs "Your Post" do
35
- f.input :title
36
- f.input :body
37
- end
38
- f.inputs "Publishing" do
39
- f.input :published_date
40
- end
41
- f.actions
42
- end
43
- end
44
- """
45
- When I go to the last author's last post page
46
- Then I follow "Edit Post"
47
- Then I should see the element "form[action='/admin/users/2/posts/2']"
48
- Then I should see a link to "Hello World" in the breadcrumb
49
-
50
- When I press "Update Post"
51
- Then I should see "Post was successfully updated."
52
-
53
- Scenario: Creating a child resource page
54
- Given a configuration of:
55
- """
56
- ActiveAdmin.register User
57
- ActiveAdmin.register Post do
58
- belongs_to :user
59
- permit_params :title, :body, :published_date
60
-
61
- form do |f|
62
- f.inputs "Your Post" do
63
- f.input :title
64
- f.input :body
65
- end
66
- f.inputs "Publishing" do
67
- f.input :published_date
68
- end
69
- f.actions
70
- end
71
- end
72
- """
73
- When I go to the last author's posts
74
- Then I follow "New Post"
75
- Then I should see the element "form[action='/admin/users/2/posts']"
76
- Then I fill in "Title" with "Hello World"
77
- Then I fill in "Body" with "This is the body"
78
-
79
- When I press "Create Post"
80
- Then I should see "Post was successfully created."
81
- And I should see the attribute "Title" with "Hello World"
82
- And I should see the attribute "Body" with "This is the body"
83
- And I should see the attribute "Author" with "Jane Doe"
84
-
85
- Scenario: Viewing a child resource page
86
- Given a configuration of:
87
- """
88
- ActiveAdmin.register User
89
- ActiveAdmin.register Post do
90
- belongs_to :user
91
- end
92
- """
93
- When I go to the last author's posts
94
- And I follow "View"
95
- Then I should be on the last author's last post page
96
- And the "Users" tab should be selected
97
-
98
- Scenario: When the belongs to is optional
99
- Given a configuration of:
100
- """
101
- ActiveAdmin.register User
102
- ActiveAdmin.register Post do
103
- belongs_to :user, optional: true
104
- end
105
- """
106
- When I go to the last author's posts
107
- Then the "Users" tab should be selected
108
- And I should see a menu item for "Posts"
109
-
110
- When I follow "Posts"
111
- Then the "Posts" tab should be selected
112
-
113
- Scenario: Displaying belongs to resources in main menu
114
- Given a configuration of:
115
- """
116
- ActiveAdmin.register User
117
- ActiveAdmin.register Post do
118
- belongs_to :user
119
- navigation_menu :user
120
- end
121
- """
122
- When I go to the last author's posts
123
- And I follow "View"
124
- Then the "Posts" tab should be selected
@@ -1,75 +0,0 @@
1
- Feature: Breadcrumb
2
-
3
- Background:
4
- Given I am logged in
5
-
6
- Scenario: Default breadcrumb links
7
- Given a configuration of:
8
- """
9
- ActiveAdmin.register Post do
10
- end
11
- """
12
- When I am on the new post page
13
- Then I should see a link to "Post" in the breadcrumb
14
-
15
- Scenario: Rewritten breadcrumb links
16
- Given a configuration of:
17
- """
18
- ActiveAdmin.register Post do
19
- breadcrumb do
20
- [
21
- link_to('test', '/admin/test/url')
22
- ]
23
- end
24
- end
25
- """
26
- When I am on the new post page
27
- Then I should see a link to "test" in the breadcrumb
28
-
29
- Scenario: No Breadcrumbs configuration
30
- Given a configuration of:
31
- """
32
- ActiveAdmin.application.breadcrumb = false
33
- ActiveAdmin.register Post do
34
- end
35
- """
36
- When I am on the new post page
37
- Then I should see "Post"
38
- And I should not see the element ".breadcrumb"
39
-
40
- Scenario: Application config of false and a resource config of true
41
- Given a configuration of:
42
- """
43
- ActiveAdmin.application.breadcrumb = false
44
- ActiveAdmin.register Post do
45
- config.breadcrumb = true
46
- end
47
- """
48
- When I am on the new post page
49
- Then I should see a link to "Post" in the breadcrumb
50
-
51
- Scenario: Application config of false and rewritten breadcrumb links
52
- Given a configuration of:
53
- """
54
- ActiveAdmin.application.breadcrumb = false
55
- ActiveAdmin.register Post do
56
- breadcrumb do
57
- [
58
- link_to('test', '/admin/test/url')
59
- ]
60
- end
61
- end
62
- """
63
- When I am on the new post page
64
- Then I should see a link to "test" in the breadcrumb
65
-
66
- Scenario: Application config of true and a resource config of false
67
- Given a configuration of:
68
- """
69
- ActiveAdmin.application.breadcrumb = true
70
- ActiveAdmin.register Post do
71
- config.breadcrumb = false
72
- end
73
- """
74
- When I am on the new post page
75
- Then I should not see the element ".breadcrumb"