jacobat-refinerycms 0.9.6.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (547) hide show
  1. data/.gems +8 -0
  2. data/.gitignore +23 -0
  3. data/.yardopts +31 -0
  4. data/Gemfile +12 -0
  5. data/Rakefile +70 -0
  6. data/VERSION +1 -0
  7. data/app/controllers/admin/base_controller.rb +8 -0
  8. data/app/controllers/application.rb +3 -0
  9. data/app/controllers/application_controller.rb +7 -0
  10. data/app/helpers/application_helper.rb +7 -0
  11. data/bin/refinery +84 -0
  12. data/bin/refinery-override +76 -0
  13. data/bin/refinery-update-core +92 -0
  14. data/config/amazon_s3.yml.example +18 -0
  15. data/config/application.rb +88 -0
  16. data/config/boot.rb +110 -0
  17. data/config/database.yml.example +20 -0
  18. data/config/environment.rb +5 -0
  19. data/config/environments/development.rb +26 -0
  20. data/config/environments/production.rb +26 -0
  21. data/config/environments/test.rb +22 -0
  22. data/config/initializers/inflections.rb +10 -0
  23. data/config/initializers/mime_types.rb +5 -0
  24. data/config/preinitializer.rb +27 -0
  25. data/config/rackspace_cloudfiles.yml.example +14 -0
  26. data/config/routes.rb +20 -0
  27. data/contributors.md +20 -0
  28. data/db/migrate/20091029034951_remove_blurb_from_news_items.rb +9 -0
  29. data/db/migrate/20091109012126_add_missing_indexes.rb +25 -0
  30. data/db/migrate/20091130040711_add_down_for_maintenance_page.rb +15 -0
  31. data/db/migrate/20091207033335_add_superuser_to_users.rb +12 -0
  32. data/db/migrate/20100114092849_add_themes_table.rb +19 -0
  33. data/db/migrate/20100127004649_add_reset_code_to_users.rb +9 -0
  34. data/db/migrate/20100202034802_remove_custom_title_image_id_and_image_id_from_pages.rb +13 -0
  35. data/db/migrate/20100204011654_change_part_titles_to_titleized_version_for_new_format.rb +13 -0
  36. data/db/migrate/20100223211536_remove_themes_table.rb +17 -0
  37. data/db/schema.rb +150 -0
  38. data/db/seeds.rb +121 -0
  39. data/doc/.yardoc/checksums +0 -0
  40. data/doc/.yardoc/objects/root.dat +0 -0
  41. data/doc/.yardoc/proxy_types +0 -0
  42. data/lib/refinery_initializer.rb +23 -0
  43. data/license.md +21 -0
  44. data/public/.htaccess +40 -0
  45. data/public/404.html +29 -0
  46. data/public/422.html +30 -0
  47. data/public/500.html +29 -0
  48. data/public/favicon.ico +0 -0
  49. data/public/images/refinery/add.png +0 -0
  50. data/public/images/refinery/admin_bg.png +0 -0
  51. data/public/images/refinery/ajax-loader.gif +0 -0
  52. data/public/images/refinery/branch-end.gif +0 -0
  53. data/public/images/refinery/branch-start.gif +0 -0
  54. data/public/images/refinery/branch.gif +0 -0
  55. data/public/images/refinery/header_background.png +0 -0
  56. data/public/images/refinery/hover-gradient.jpg +0 -0
  57. data/public/images/refinery/icons/accept.png +0 -0
  58. data/public/images/refinery/icons/add.png +0 -0
  59. data/public/images/refinery/icons/application_edit.png +0 -0
  60. data/public/images/refinery/icons/application_go.png +0 -0
  61. data/public/images/refinery/icons/arrow_left.png +0 -0
  62. data/public/images/refinery/icons/arrow_switch.png +0 -0
  63. data/public/images/refinery/icons/arrow_up.png +0 -0
  64. data/public/images/refinery/icons/cancel.png +0 -0
  65. data/public/images/refinery/icons/cog_add.png +0 -0
  66. data/public/images/refinery/icons/cog_edit.png +0 -0
  67. data/public/images/refinery/icons/cross.png +0 -0
  68. data/public/images/refinery/icons/delete.png +0 -0
  69. data/public/images/refinery/icons/edit.png +0 -0
  70. data/public/images/refinery/icons/email_edit.png +0 -0
  71. data/public/images/refinery/icons/email_go.png +0 -0
  72. data/public/images/refinery/icons/email_open.png +0 -0
  73. data/public/images/refinery/icons/eye.png +0 -0
  74. data/public/images/refinery/icons/image_add.png +0 -0
  75. data/public/images/refinery/icons/image_edit.png +0 -0
  76. data/public/images/refinery/icons/layout_add.png +0 -0
  77. data/public/images/refinery/icons/layout_edit.png +0 -0
  78. data/public/images/refinery/icons/page_add.png +0 -0
  79. data/public/images/refinery/icons/page_edit.png +0 -0
  80. data/public/images/refinery/icons/page_white_edit.png +0 -0
  81. data/public/images/refinery/icons/page_white_put.png +0 -0
  82. data/public/images/refinery/icons/star.png +0 -0
  83. data/public/images/refinery/icons/tick.png +0 -0
  84. data/public/images/refinery/icons/user_add.png +0 -0
  85. data/public/images/refinery/icons/user_comment.png +0 -0
  86. data/public/images/refinery/icons/user_edit.png +0 -0
  87. data/public/images/refinery/logo-large.png +0 -0
  88. data/public/images/refinery/logo-medium.png +0 -0
  89. data/public/images/refinery/logo-small-medium.png +0 -0
  90. data/public/images/refinery/logo-small.png +0 -0
  91. data/public/images/refinery/logo.png +0 -0
  92. data/public/images/refinery/nav-3-background.gif +0 -0
  93. data/public/images/refinery/page_bg.png +0 -0
  94. data/public/images/refinery/resolve_digital_footer_logo.png +0 -0
  95. data/public/images/thickbox/cross.png +0 -0
  96. data/public/images/thickbox/loadingAnimation.gif +0 -0
  97. data/public/images/thickbox/macFFBgHack.png +0 -0
  98. data/public/images/wymeditor/skins/refinery/blockquote.png +0 -0
  99. data/public/images/wymeditor/skins/refinery/center.png +0 -0
  100. data/public/images/wymeditor/skins/refinery/css.png +0 -0
  101. data/public/images/wymeditor/skins/refinery/h1.png +0 -0
  102. data/public/images/wymeditor/skins/refinery/h2.png +0 -0
  103. data/public/images/wymeditor/skins/refinery/h3.png +0 -0
  104. data/public/images/wymeditor/skins/refinery/h4.png +0 -0
  105. data/public/images/wymeditor/skins/refinery/h5.png +0 -0
  106. data/public/images/wymeditor/skins/refinery/h6.png +0 -0
  107. data/public/images/wymeditor/skins/refinery/icons.png +0 -0
  108. data/public/images/wymeditor/skins/refinery/iframe/lbl-blockquote.png +0 -0
  109. data/public/images/wymeditor/skins/refinery/iframe/lbl-h1.png +0 -0
  110. data/public/images/wymeditor/skins/refinery/iframe/lbl-h2.png +0 -0
  111. data/public/images/wymeditor/skins/refinery/iframe/lbl-h3.png +0 -0
  112. data/public/images/wymeditor/skins/refinery/iframe/lbl-h4.png +0 -0
  113. data/public/images/wymeditor/skins/refinery/iframe/lbl-h5.png +0 -0
  114. data/public/images/wymeditor/skins/refinery/iframe/lbl-h6.png +0 -0
  115. data/public/images/wymeditor/skins/refinery/iframe/lbl-p.png +0 -0
  116. data/public/images/wymeditor/skins/refinery/iframe/lbl-pre.png +0 -0
  117. data/public/images/wymeditor/skins/refinery/justify.png +0 -0
  118. data/public/images/wymeditor/skins/refinery/left.png +0 -0
  119. data/public/images/wymeditor/skins/refinery/paragraph.png +0 -0
  120. data/public/images/wymeditor/skins/refinery/right.png +0 -0
  121. data/public/images/wymeditor/skins/wymeditor_icon.png +0 -0
  122. data/public/javascripts/admin.js +5 -0
  123. data/public/javascripts/application.js +1 -0
  124. data/public/javascripts/jquery/GPL-LICENSE.txt +278 -0
  125. data/public/javascripts/jquery/MIT-LICENSE.txt +20 -0
  126. data/public/javascripts/jquery-ui-1.8rc1.min.js +375 -0
  127. data/public/javascripts/jquery.js +6078 -0
  128. data/public/javascripts/refinery/admin.js +705 -0
  129. data/public/javascripts/refinery/boot_wym.js +154 -0
  130. data/public/javascripts/thickbox.js +350 -0
  131. data/public/javascripts/wymeditor/jquery.refinery.wymeditor.js +4975 -0
  132. data/public/javascripts/wymeditor/lang/ca.js +45 -0
  133. data/public/javascripts/wymeditor/lang/cs.js +45 -0
  134. data/public/javascripts/wymeditor/lang/de.js +45 -0
  135. data/public/javascripts/wymeditor/lang/en.js +48 -0
  136. data/public/javascripts/wymeditor/lang/es.js +45 -0
  137. data/public/javascripts/wymeditor/lang/fa.js +46 -0
  138. data/public/javascripts/wymeditor/lang/fr.js +45 -0
  139. data/public/javascripts/wymeditor/lang/he.js +45 -0
  140. data/public/javascripts/wymeditor/lang/hu.js +45 -0
  141. data/public/javascripts/wymeditor/lang/it.js +45 -0
  142. data/public/javascripts/wymeditor/lang/nb.js +45 -0
  143. data/public/javascripts/wymeditor/lang/nl.js +45 -0
  144. data/public/javascripts/wymeditor/lang/nn.js +45 -0
  145. data/public/javascripts/wymeditor/lang/pl.js +45 -0
  146. data/public/javascripts/wymeditor/lang/pt-br.js +45 -0
  147. data/public/javascripts/wymeditor/lang/pt.js +45 -0
  148. data/public/javascripts/wymeditor/lang/ru.js +45 -0
  149. data/public/javascripts/wymeditor/lang/sv.js +45 -0
  150. data/public/javascripts/wymeditor/lang/tr.js +45 -0
  151. data/public/javascripts/wymeditor/lang/zh_cn.js +47 -0
  152. data/public/javascripts/wymeditor/skins/refinery/skin.js +40 -0
  153. data/public/robots.txt +2 -0
  154. data/public/stylesheets/application.css +5 -0
  155. data/public/stylesheets/formatting.css +5 -0
  156. data/public/stylesheets/home.css +5 -0
  157. data/public/stylesheets/ie6.css +0 -0
  158. data/public/stylesheets/ie7.css +0 -0
  159. data/public/stylesheets/refinery/application.css +45 -0
  160. data/public/stylesheets/refinery/formatting.css +53 -0
  161. data/public/stylesheets/refinery/home.css +0 -0
  162. data/public/stylesheets/refinery/refinery.css +1233 -0
  163. data/public/stylesheets/refinery/theme.css +36 -0
  164. data/public/stylesheets/refinery/thickbox.css +165 -0
  165. data/public/stylesheets/refinery/tooltips.css +38 -0
  166. data/public/stylesheets/theme.css +1 -0
  167. data/public/stylesheets/wymeditor/skins/refinery/skin.css +218 -0
  168. data/public/stylesheets/wymeditor/skins/refinery/wymiframe.css +92 -0
  169. data/public/wymeditor/GPL-license.txt +278 -0
  170. data/public/wymeditor/MIT-license.txt +20 -0
  171. data/public/wymeditor/README +35 -0
  172. data/readme.md +181 -0
  173. data/script/about +3 -0
  174. data/script/console +3 -0
  175. data/script/dbconsole +3 -0
  176. data/script/destroy +3 -0
  177. data/script/generate +3 -0
  178. data/script/performance/benchmarker +3 -0
  179. data/script/performance/profiler +3 -0
  180. data/script/performance/request +3 -0
  181. data/script/plugin +3 -0
  182. data/script/process/inspector +3 -0
  183. data/script/process/reaper +3 -0
  184. data/script/process/spawner +3 -0
  185. data/script/runner +3 -0
  186. data/script/server +3 -0
  187. data/test/files/The world!.gif +0 -0
  188. data/test/files/car-wallpapers19.jpg +0 -0
  189. data/test/files/teng.pdf +0 -0
  190. data/test/fixtures/images.yml +14 -0
  191. data/test/fixtures/inquiries.yml +22 -0
  192. data/test/fixtures/news_items.yml +14 -0
  193. data/test/fixtures/page_parts.yml +9 -0
  194. data/test/fixtures/pages.yml +94 -0
  195. data/test/fixtures/refinery_settings.yml +3 -0
  196. data/test/fixtures/resources.yml +4 -0
  197. data/test/fixtures/users.yml +16 -0
  198. data/test/functional/dashboard_controller_test.rb +24 -0
  199. data/test/performance/browsing_test.rb +9 -0
  200. data/test/test_helper.rb +43 -0
  201. data/test/unit/image_test.rb +27 -0
  202. data/test/unit/inquiry_test.rb +41 -0
  203. data/test/unit/news_items_test.rb +33 -0
  204. data/test/unit/page_part_test.rb +19 -0
  205. data/test/unit/page_test.rb +133 -0
  206. data/test/unit/refinery_setting_test.rb +57 -0
  207. data/test/unit/resource_test.rb +33 -0
  208. data/themes/demolicious/LICENSE +21 -0
  209. data/themes/demolicious/README +1 -0
  210. data/themes/demolicious/images/footer_background.png +0 -0
  211. data/themes/demolicious/images/header_background.png +0 -0
  212. data/themes/demolicious/stylesheets/application.css +94 -0
  213. data/themes/demolicious/stylesheets/formatting.css +36 -0
  214. data/themes/demolicious/stylesheets/home.css +8 -0
  215. data/themes/demolicious/stylesheets/ie6.css +0 -0
  216. data/themes/demolicious/stylesheets/ie7.css +0 -0
  217. data/themes/demolicious/views/layouts/application.html.erb +20 -0
  218. data/themes/demolicious/views/pages/home.html.erb +1 -0
  219. data/themes/demolicious/views/pages/show.html.erb +1 -0
  220. data/themes/hemingway/LICENSE +7 -0
  221. data/themes/hemingway/README +3 -0
  222. data/themes/hemingway/images/archives.gif +0 -0
  223. data/themes/hemingway/images/footer_black.gif +0 -0
  224. data/themes/hemingway/images/kyle-header.jpg +0 -0
  225. data/themes/hemingway/images/readon_black.gif +0 -0
  226. data/themes/hemingway/images/search.gif +0 -0
  227. data/themes/hemingway/images/spinner.gif +0 -0
  228. data/themes/hemingway/images/trackback_pingback.gif +0 -0
  229. data/themes/hemingway/stylesheets/application.css +713 -0
  230. data/themes/hemingway/stylesheets/formatting.css +1 -0
  231. data/themes/hemingway/stylesheets/home.css +1 -0
  232. data/themes/hemingway/views/layouts/application.html.erb +55 -0
  233. data/todo.md +23 -0
  234. data/vendor/cache/aasm-2.1.3.gem +0 -0
  235. data/vendor/cache/actionmailer-2.3.5.gem +0 -0
  236. data/vendor/cache/actionpack-2.3.5.gem +0 -0
  237. data/vendor/cache/activerecord-2.3.5.gem +0 -0
  238. data/vendor/cache/activeresource-2.3.5.gem +0 -0
  239. data/vendor/cache/activesupport-2.3.5.gem +0 -0
  240. data/vendor/cache/friendly_id-2.3.1.gem +0 -0
  241. data/vendor/cache/hpricot-0.8.2.gem +0 -0
  242. data/vendor/cache/rack-1.0.1.gem +0 -0
  243. data/vendor/cache/rails-2.3.5.gem +0 -0
  244. data/vendor/cache/rake-0.8.7.gem +0 -0
  245. data/vendor/cache/rubyzip-0.9.1.gem +0 -0
  246. data/vendor/cache/slim_scrooge-1.0.3.gem +0 -0
  247. data/vendor/cache/will_paginate-2.3.11.gem +0 -0
  248. data/vendor/plugins/acts_as_indexed/CHANGELOG +74 -0
  249. data/vendor/plugins/acts_as_indexed/MIT-LICENSE +20 -0
  250. data/vendor/plugins/acts_as_indexed/README.rdoc +114 -0
  251. data/vendor/plugins/acts_as_indexed/Rakefile +35 -0
  252. data/vendor/plugins/acts_as_indexed/init.rb +2 -0
  253. data/vendor/plugins/acts_as_indexed/lib/acts_as_indexed.rb +224 -0
  254. data/vendor/plugins/acts_as_indexed/lib/search_atom.rb +107 -0
  255. data/vendor/plugins/acts_as_indexed/lib/search_index.rb +329 -0
  256. data/vendor/plugins/acts_as_indexed/lib/will_paginate_search.rb +29 -0
  257. data/vendor/plugins/acts_as_indexed/test/abstract_unit.rb +47 -0
  258. data/vendor/plugins/acts_as_indexed/test/acts_as_indexed_test.rb +102 -0
  259. data/vendor/plugins/acts_as_indexed/test/database.yml +10 -0
  260. data/vendor/plugins/acts_as_indexed/test/fixtures/post.rb +5 -0
  261. data/vendor/plugins/acts_as_indexed/test/fixtures/posts.yml +31 -0
  262. data/vendor/plugins/acts_as_indexed/test/schema.rb +6 -0
  263. data/vendor/plugins/acts_as_tree/README +26 -0
  264. data/vendor/plugins/acts_as_tree/Rakefile +22 -0
  265. data/vendor/plugins/acts_as_tree/init.rb +1 -0
  266. data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +141 -0
  267. data/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
  268. data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
  269. data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
  270. data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  271. data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  272. data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
  273. data/vendor/plugins/attachment_fu/CHANGELOG +35 -0
  274. data/vendor/plugins/attachment_fu/LICENSE +20 -0
  275. data/vendor/plugins/attachment_fu/README +193 -0
  276. data/vendor/plugins/attachment_fu/Rakefile +22 -0
  277. data/vendor/plugins/attachment_fu/amazon_s3.yml.tpl +17 -0
  278. data/vendor/plugins/attachment_fu/init.rb +16 -0
  279. data/vendor/plugins/attachment_fu/install.rb +7 -0
  280. data/vendor/plugins/attachment_fu/lib/geometry.rb +93 -0
  281. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/cloud_file_backend.rb +211 -0
  282. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/db_file_backend.rb +39 -0
  283. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb +126 -0
  284. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb +394 -0
  285. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb +59 -0
  286. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb +54 -0
  287. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb +61 -0
  288. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb +132 -0
  289. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb +57 -0
  290. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb +514 -0
  291. data/vendor/plugins/attachment_fu/rackspace_cloudfiles.yml.tpl +14 -0
  292. data/vendor/plugins/attachment_fu/test/backends/db_file_test.rb +16 -0
  293. data/vendor/plugins/attachment_fu/test/backends/file_system_test.rb +143 -0
  294. data/vendor/plugins/attachment_fu/test/backends/remote/cloudfiles_test.rb +102 -0
  295. data/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb +119 -0
  296. data/vendor/plugins/attachment_fu/test/base_attachment_tests.rb +77 -0
  297. data/vendor/plugins/attachment_fu/test/basic_test.rb +70 -0
  298. data/vendor/plugins/attachment_fu/test/database.yml +18 -0
  299. data/vendor/plugins/attachment_fu/test/extra_attachment_test.rb +67 -0
  300. data/vendor/plugins/attachment_fu/test/fixtures/attachment.rb +226 -0
  301. data/vendor/plugins/attachment_fu/test/fixtures/files/fake/rails.png +0 -0
  302. data/vendor/plugins/attachment_fu/test/fixtures/files/foo.txt +1 -0
  303. data/vendor/plugins/attachment_fu/test/fixtures/files/rails.png +0 -0
  304. data/vendor/plugins/attachment_fu/test/geometry_test.rb +108 -0
  305. data/vendor/plugins/attachment_fu/test/processors/core_image_test.rb +37 -0
  306. data/vendor/plugins/attachment_fu/test/processors/gd2_test.rb +31 -0
  307. data/vendor/plugins/attachment_fu/test/processors/image_science_test.rb +31 -0
  308. data/vendor/plugins/attachment_fu/test/processors/mini_magick_test.rb +103 -0
  309. data/vendor/plugins/attachment_fu/test/processors/rmagick_test.rb +255 -0
  310. data/vendor/plugins/attachment_fu/test/schema.rb +134 -0
  311. data/vendor/plugins/attachment_fu/test/test_helper.rb +150 -0
  312. data/vendor/plugins/attachment_fu/test/validation_test.rb +55 -0
  313. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/color.rb +27 -0
  314. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/effects.rb +31 -0
  315. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/perspective.rb +25 -0
  316. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/quality.rb +25 -0
  317. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/scale.rb +47 -0
  318. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/watermark.rb +32 -0
  319. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/processor.rb +123 -0
  320. data/vendor/plugins/authentication/README +0 -0
  321. data/vendor/plugins/authentication/Rakefile +0 -0
  322. data/vendor/plugins/authentication/app/controllers/admin/users_controller.rb +67 -0
  323. data/vendor/plugins/authentication/app/controllers/sessions_controller.rb +36 -0
  324. data/vendor/plugins/authentication/app/controllers/users_controller.rb +101 -0
  325. data/vendor/plugins/authentication/app/helpers/sessions_helper.rb +2 -0
  326. data/vendor/plugins/authentication/app/helpers/users_helper.rb +2 -0
  327. data/vendor/plugins/authentication/app/models/user.rb +154 -0
  328. data/vendor/plugins/authentication/app/models/user_mailer.rb +18 -0
  329. data/vendor/plugins/authentication/app/models/user_plugin.rb +5 -0
  330. data/vendor/plugins/authentication/app/views/admin/users/_form.html.erb +38 -0
  331. data/vendor/plugins/authentication/app/views/admin/users/edit.html.erb +1 -0
  332. data/vendor/plugins/authentication/app/views/admin/users/index.html.erb +40 -0
  333. data/vendor/plugins/authentication/app/views/admin/users/new.html.erb +1 -0
  334. data/vendor/plugins/authentication/app/views/sessions/new.html.erb +24 -0
  335. data/vendor/plugins/authentication/app/views/user_mailer/reset_notification.html.erb +6 -0
  336. data/vendor/plugins/authentication/app/views/users/forgot.html.erb +13 -0
  337. data/vendor/plugins/authentication/app/views/users/new.html.erb +28 -0
  338. data/vendor/plugins/authentication/app/views/users/reset.html.erb +18 -0
  339. data/vendor/plugins/authentication/authentication.md +15 -0
  340. data/vendor/plugins/authentication/config/routes.rb +15 -0
  341. data/vendor/plugins/authentication/lib/authenticated_system.rb +115 -0
  342. data/vendor/plugins/authentication/lib/authenticated_test_helper.rb +10 -0
  343. data/vendor/plugins/authentication/rails/init.rb +13 -0
  344. data/vendor/plugins/authentication/test/fixtures/users.yml +19 -0
  345. data/vendor/plugins/authentication/test/functional/admin/base_controller_test.rb +8 -0
  346. data/vendor/plugins/authentication/test/functional/admin/dashboard_controller_test.rb +8 -0
  347. data/vendor/plugins/authentication/test/functional/admin/pages_controller_test.rb +8 -0
  348. data/vendor/plugins/authentication/test/functional/sessions_controller_test.rb +85 -0
  349. data/vendor/plugins/authentication/test/functional/users_controller_test.rb +99 -0
  350. data/vendor/plugins/authentication/test/test_helper.rb +38 -0
  351. data/vendor/plugins/authentication/test/unit/user_mailer_test.rb +31 -0
  352. data/vendor/plugins/authentication/test/unit/user_test.rb +164 -0
  353. data/vendor/plugins/dashboard/app/controllers/admin/dashboard_controller.rb +28 -0
  354. data/vendor/plugins/dashboard/app/helpers/admin/dashboard_helper.rb +19 -0
  355. data/vendor/plugins/dashboard/app/views/admin/dashboard/_recent_activity.html.erb +14 -0
  356. data/vendor/plugins/dashboard/app/views/admin/dashboard/index.html.erb +31 -0
  357. data/vendor/plugins/dashboard/config/routes.rb +5 -0
  358. data/vendor/plugins/dashboard/dashboard.md +22 -0
  359. data/vendor/plugins/dashboard/rails/init.rb +6 -0
  360. data/vendor/plugins/images/app/controllers/admin/images_controller.rb +98 -0
  361. data/vendor/plugins/images/app/helpers/admin/images_helper.rb +23 -0
  362. data/vendor/plugins/images/app/models/image.rb +57 -0
  363. data/vendor/plugins/images/app/views/admin/images/_form.html.erb +31 -0
  364. data/vendor/plugins/images/app/views/admin/images/_grid_view.html.erb +16 -0
  365. data/vendor/plugins/images/app/views/admin/images/_list_view.html.erb +12 -0
  366. data/vendor/plugins/images/app/views/admin/images/_list_view_image.html.erb +16 -0
  367. data/vendor/plugins/images/app/views/admin/images/edit.html.erb +1 -0
  368. data/vendor/plugins/images/app/views/admin/images/index.html.erb +42 -0
  369. data/vendor/plugins/images/app/views/admin/images/insert.html.erb +50 -0
  370. data/vendor/plugins/images/app/views/admin/images/new.html.erb +1 -0
  371. data/vendor/plugins/images/config/routes.rb +5 -0
  372. data/vendor/plugins/images/images.md +53 -0
  373. data/vendor/plugins/images/lib/tasks/images.rake +45 -0
  374. data/vendor/plugins/images/rails/init.rb +14 -0
  375. data/vendor/plugins/inquiries/app/controllers/admin/inquiries_controller.rb +29 -0
  376. data/vendor/plugins/inquiries/app/controllers/admin/inquiry_settings_controller.rb +16 -0
  377. data/vendor/plugins/inquiries/app/controllers/inquiries_controller.rb +41 -0
  378. data/vendor/plugins/inquiries/app/helpers/inquiries_helper.rb +13 -0
  379. data/vendor/plugins/inquiries/app/models/inquiry.rb +16 -0
  380. data/vendor/plugins/inquiries/app/models/inquiry_mailer.rb +20 -0
  381. data/vendor/plugins/inquiries/app/models/inquiry_setting.rb +11 -0
  382. data/vendor/plugins/inquiries/app/views/admin/inquiries/_inquiry.html.erb +20 -0
  383. data/vendor/plugins/inquiries/app/views/admin/inquiries/index.html.erb +43 -0
  384. data/vendor/plugins/inquiries/app/views/admin/inquiries/show.html.erb +62 -0
  385. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_confirmation_email_form.html.erb +46 -0
  386. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_notification_recipients_form.html.erb +18 -0
  387. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/edit.html.erb +5 -0
  388. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/index.html.erb +31 -0
  389. data/vendor/plugins/inquiries/app/views/inquiries/new.html.erb +31 -0
  390. data/vendor/plugins/inquiries/app/views/inquiries/thank_you.html.erb +1 -0
  391. data/vendor/plugins/inquiries/app/views/inquiry_mailer/confirmation.html.erb +1 -0
  392. data/vendor/plugins/inquiries/app/views/inquiry_mailer/notification.html.erb +18 -0
  393. data/vendor/plugins/inquiries/config/routes.rb +8 -0
  394. data/vendor/plugins/inquiries/inquiries.md +31 -0
  395. data/vendor/plugins/inquiries/rails/init.rb +13 -0
  396. data/vendor/plugins/news/app/controllers/admin/news_items_controller.rb +5 -0
  397. data/vendor/plugins/news/app/controllers/news_items_controller.rb +20 -0
  398. data/vendor/plugins/news/app/models/news_item.rb +22 -0
  399. data/vendor/plugins/news/app/views/admin/news_items/_form.html.erb +19 -0
  400. data/vendor/plugins/news/app/views/admin/news_items/_news_item.html.erb +15 -0
  401. data/vendor/plugins/news/app/views/admin/news_items/edit.html.erb +1 -0
  402. data/vendor/plugins/news/app/views/admin/news_items/index.html.erb +31 -0
  403. data/vendor/plugins/news/app/views/admin/news_items/new.html.erb +1 -0
  404. data/vendor/plugins/news/app/views/news_items/_recent_posts.html.erb +8 -0
  405. data/vendor/plugins/news/app/views/news_items/index.html.erb +17 -0
  406. data/vendor/plugins/news/app/views/news_items/index.rss.builder +26 -0
  407. data/vendor/plugins/news/app/views/news_items/show.html.erb +13 -0
  408. data/vendor/plugins/news/config/routes.rb +7 -0
  409. data/vendor/plugins/news/news.md +20 -0
  410. data/vendor/plugins/news/rails/init.rb +11 -0
  411. data/vendor/plugins/pages/app/controllers/admin/page_dialogs_controller.rb +49 -0
  412. data/vendor/plugins/pages/app/controllers/admin/page_parts_controller.rb +20 -0
  413. data/vendor/plugins/pages/app/controllers/admin/pages_controller.rb +18 -0
  414. data/vendor/plugins/pages/app/controllers/pages_controller.rb +22 -0
  415. data/vendor/plugins/pages/app/helpers/pages_helper.rb +2 -0
  416. data/vendor/plugins/pages/app/models/page.rb +162 -0
  417. data/vendor/plugins/pages/app/models/page_part.rb +10 -0
  418. data/vendor/plugins/pages/app/presenters/page_presenter.rb +3 -0
  419. data/vendor/plugins/pages/app/views/admin/page_dialogs/_page_link.html.erb +5 -0
  420. data/vendor/plugins/pages/app/views/admin/page_dialogs/link_to.html.erb +149 -0
  421. data/vendor/plugins/pages/app/views/admin/pages/_form.html.erb +140 -0
  422. data/vendor/plugins/pages/app/views/admin/pages/_list.html.erb +29 -0
  423. data/vendor/plugins/pages/app/views/admin/pages/_page_part_field.html.erb +4 -0
  424. data/vendor/plugins/pages/app/views/admin/pages/_sortable_list.html.erb +4 -0
  425. data/vendor/plugins/pages/app/views/admin/pages/edit.html.erb +1 -0
  426. data/vendor/plugins/pages/app/views/admin/pages/index.html.erb +41 -0
  427. data/vendor/plugins/pages/app/views/admin/pages/new.html.erb +1 -0
  428. data/vendor/plugins/pages/app/views/pages/home.html.erb +1 -0
  429. data/vendor/plugins/pages/app/views/pages/show.html.erb +1 -0
  430. data/vendor/plugins/pages/config/routes.rb +11 -0
  431. data/vendor/plugins/pages/pages.md +146 -0
  432. data/vendor/plugins/pages/rails/init.rb +13 -0
  433. data/vendor/plugins/rails_indexes/MIT-LICENSE +20 -0
  434. data/vendor/plugins/rails_indexes/README.textile +46 -0
  435. data/vendor/plugins/rails_indexes/Rakefile +23 -0
  436. data/vendor/plugins/rails_indexes/lib/indexer.rb +305 -0
  437. data/vendor/plugins/rails_indexes/tasks/indexer.rake +18 -0
  438. data/vendor/plugins/rails_indexes/test/fixtures/app/controllers/users_controller.rb +8 -0
  439. data/vendor/plugins/rails_indexes/test/fixtures/app/models/address.rb +5 -0
  440. data/vendor/plugins/rails_indexes/test/fixtures/app/models/company.rb +11 -0
  441. data/vendor/plugins/rails_indexes/test/fixtures/app/models/country.rb +4 -0
  442. data/vendor/plugins/rails_indexes/test/fixtures/app/models/freelancer.rb +3 -0
  443. data/vendor/plugins/rails_indexes/test/fixtures/app/models/gift.rb +10 -0
  444. data/vendor/plugins/rails_indexes/test/fixtures/app/models/god.rb +3 -0
  445. data/vendor/plugins/rails_indexes/test/fixtures/app/models/user.rb +17 -0
  446. data/vendor/plugins/rails_indexes/test/fixtures/app/sweepers/user_sweeper.rb +9 -0
  447. data/vendor/plugins/rails_indexes/test/fixtures/schema.rb +46 -0
  448. data/vendor/plugins/rails_indexes/test/rails_indexes_test.rb +83 -0
  449. data/vendor/plugins/rails_indexes/test/test_helper.rb +30 -0
  450. data/vendor/plugins/refinery/app/controllers/admin/refinery_core_controller.rb +14 -0
  451. data/vendor/plugins/refinery/app/views/admin/_head.html.erb +11 -0
  452. data/vendor/plugins/refinery/app/views/admin/_menu.html.erb +23 -0
  453. data/vendor/plugins/refinery/app/views/layouts/admin.html.erb +34 -0
  454. data/vendor/plugins/refinery/app/views/layouts/application.html.erb +20 -0
  455. data/vendor/plugins/refinery/app/views/shared/_content_page.html.erb +36 -0
  456. data/vendor/plugins/refinery/app/views/shared/_footer.html.erb +5 -0
  457. data/vendor/plugins/refinery/app/views/shared/_google_analytics.html.erb +13 -0
  458. data/vendor/plugins/refinery/app/views/shared/_head.html.erb +16 -0
  459. data/vendor/plugins/refinery/app/views/shared/_header.html.erb +4 -0
  460. data/vendor/plugins/refinery/app/views/shared/_ie6check.html.erb +11 -0
  461. data/vendor/plugins/refinery/app/views/shared/_menu.html.erb +8 -0
  462. data/vendor/plugins/refinery/app/views/shared/_menu_branch.html.erb +23 -0
  463. data/vendor/plugins/refinery/app/views/shared/_message.html.erb +5 -0
  464. data/vendor/plugins/refinery/app/views/shared/_submenu.html.erb +5 -0
  465. data/vendor/plugins/refinery/app/views/shared/_submenu_branch.html.erb +10 -0
  466. data/vendor/plugins/refinery/app/views/shared/admin/_continue_editing.html.erb +4 -0
  467. data/vendor/plugins/refinery/app/views/shared/admin/_error_messages_for.html.erb +2 -0
  468. data/vendor/plugins/refinery/app/views/shared/admin/_form_actions.html.erb +13 -0
  469. data/vendor/plugins/refinery/app/views/shared/admin/_head_before_javascript_libraries.html.erb +0 -0
  470. data/vendor/plugins/refinery/app/views/shared/admin/_image_picker.html.erb +48 -0
  471. data/vendor/plugins/refinery/app/views/shared/admin/_make_sortable.html.erb +10 -0
  472. data/vendor/plugins/refinery/app/views/shared/admin/_resource_picker.html.erb +57 -0
  473. data/vendor/plugins/refinery/app/views/shared/admin/_search.html.erb +5 -0
  474. data/vendor/plugins/refinery/app/views/shared/admin/_sortable_list.html.erb +9 -0
  475. data/vendor/plugins/refinery/app/views/welcome.html.erb +13 -0
  476. data/vendor/plugins/refinery/app/views/wymiframe.html.erb +8 -0
  477. data/vendor/plugins/refinery/config/routes.rb +10 -0
  478. data/vendor/plugins/refinery/crud.md +197 -0
  479. data/vendor/plugins/refinery/lib/crud.rb +222 -0
  480. data/vendor/plugins/refinery/lib/generators/refinery/README +29 -0
  481. data/vendor/plugins/refinery/lib/generators/refinery/Rakefile +12 -0
  482. data/vendor/plugins/refinery/lib/generators/refinery/USAGE +2 -0
  483. data/vendor/plugins/refinery/lib/generators/refinery/install.rb +2 -0
  484. data/vendor/plugins/refinery/lib/generators/refinery/refinery_generator.rb +65 -0
  485. data/vendor/plugins/refinery/lib/generators/refinery/templates/config/routes.rb +7 -0
  486. data/vendor/plugins/refinery/lib/generators/refinery/templates/controller.rb +5 -0
  487. data/vendor/plugins/refinery/lib/generators/refinery/templates/migration.rb +44 -0
  488. data/vendor/plugins/refinery/lib/generators/refinery/templates/model.rb +9 -0
  489. data/vendor/plugins/refinery/lib/generators/refinery/templates/public_controller.rb +30 -0
  490. data/vendor/plugins/refinery/lib/generators/refinery/templates/rails/init.rb +10 -0
  491. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_form.html.erb +14 -0
  492. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_singular_name.html.erb +15 -0
  493. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_sortable_list.html.erb +2 -0
  494. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/edit.html.erb +1 -0
  495. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/index.html.erb +42 -0
  496. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/new.html.erb +1 -0
  497. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/index.html.erb +11 -0
  498. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/show.html.erb +25 -0
  499. data/vendor/plugins/refinery/lib/refinery/activity.rb +37 -0
  500. data/vendor/plugins/refinery/lib/refinery/admin_base_controller.rb +56 -0
  501. data/vendor/plugins/refinery/lib/refinery/application_controller.rb +80 -0
  502. data/vendor/plugins/refinery/lib/refinery/application_helper.rb +112 -0
  503. data/vendor/plugins/refinery/lib/refinery/attachment_fu_patch.rb +16 -0
  504. data/vendor/plugins/refinery/lib/refinery/base_presenter.rb +27 -0
  505. data/vendor/plugins/refinery/lib/refinery/form_helpers.rb +28 -0
  506. data/vendor/plugins/refinery/lib/refinery/html_truncation_helper.rb +110 -0
  507. data/vendor/plugins/refinery/lib/refinery/initializer.rb +80 -0
  508. data/vendor/plugins/refinery/lib/refinery/link_renderer.rb +45 -0
  509. data/vendor/plugins/refinery/lib/refinery/plugin.rb +47 -0
  510. data/vendor/plugins/refinery/lib/refinery/plugins.rb +53 -0
  511. data/vendor/plugins/refinery/lib/refinery.rb +11 -0
  512. data/vendor/plugins/refinery/lib/tasks/doc.rake +29 -0
  513. data/vendor/plugins/refinery/lib/tasks/refinery.rake +34 -0
  514. data/vendor/plugins/refinery/lib/tasks/yard.rake +32 -0
  515. data/vendor/plugins/refinery/plugins.md +205 -0
  516. data/vendor/plugins/refinery/rails/init.rb +14 -0
  517. data/vendor/plugins/refinery_dialogs/app/controllers/admin/dialogs_controller.rb +26 -0
  518. data/vendor/plugins/refinery_dialogs/app/views/admin/dialogs/show.html.erb +20 -0
  519. data/vendor/plugins/refinery_dialogs/app/views/layouts/admin_dialog.html.erb +24 -0
  520. data/vendor/plugins/refinery_dialogs/config/routes.rb +5 -0
  521. data/vendor/plugins/refinery_dialogs/rails/init.rb +7 -0
  522. data/vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb +5 -0
  523. data/vendor/plugins/refinery_settings/app/models/refinery_setting.rb +88 -0
  524. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_form.html.erb +17 -0
  525. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_refinery_setting.html.erb +12 -0
  526. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/edit.html.erb +4 -0
  527. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/index.html.erb +27 -0
  528. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/new.html.erb +1 -0
  529. data/vendor/plugins/refinery_settings/config/routes.rb +5 -0
  530. data/vendor/plugins/refinery_settings/rails/init.rb +13 -0
  531. data/vendor/plugins/refinery_settings/settings.md +55 -0
  532. data/vendor/plugins/resources/app/controllers/admin/resources_controller.rb +94 -0
  533. data/vendor/plugins/resources/app/models/resource.rb +55 -0
  534. data/vendor/plugins/resources/app/views/admin/resources/_form.html.erb +33 -0
  535. data/vendor/plugins/resources/app/views/admin/resources/_resource.html.erb +14 -0
  536. data/vendor/plugins/resources/app/views/admin/resources/edit.html.erb +1 -0
  537. data/vendor/plugins/resources/app/views/admin/resources/index.html.erb +41 -0
  538. data/vendor/plugins/resources/app/views/admin/resources/insert.html.erb +67 -0
  539. data/vendor/plugins/resources/app/views/admin/resources/new.html.erb +1 -0
  540. data/vendor/plugins/resources/config/routes.rb +9 -0
  541. data/vendor/plugins/resources/rails/init.rb +12 -0
  542. data/vendor/plugins/resources/resources.md +9 -0
  543. data/vendor/plugins/themes/app/helpers/themes_helper.rb +25 -0
  544. data/vendor/plugins/themes/lib/theme_server.rb +30 -0
  545. data/vendor/plugins/themes/rails/init.rb +24 -0
  546. data/vendor/plugins/themes/themes.md +113 -0
  547. metadata +625 -0
@@ -0,0 +1,18 @@
1
+ class UserMailer < ActionMailer::Base
2
+
3
+ def reset_notification(user, request)
4
+ setup_email(user)
5
+ @subject += 'Link to reset your password'
6
+ @body[:url] = "#{request.protocol}#{request.host_with_port}/reset/#{user.reset_code}"
7
+ end
8
+
9
+ protected
10
+
11
+ def setup_email(user)
12
+ @recipients = user.email
13
+ @subject = ""
14
+ @sent_on = Time.now
15
+ @body[:user] = user
16
+ end
17
+
18
+ end
@@ -0,0 +1,5 @@
1
+ class UserPlugin < ActiveRecord::Base
2
+
3
+ belongs_to :user
4
+
5
+ end
@@ -0,0 +1,38 @@
1
+ <%= error_messages_for :user %>
2
+ <% form_for [:admin, @user] do |f| %>
3
+ <div class='field'>
4
+ <%= f.label :login %>
5
+ <%= f.text_field :login %>
6
+ </div>
7
+ <div class='field'>
8
+ <%= f.label :email %>
9
+ <%= f.text_field :email %>
10
+ </div>
11
+ <div class='field'>
12
+ <%= f.label :password %>
13
+ <%= f.password_field :password %><br />
14
+ <span class="preview">Leaving password blank keeps the current password</span>
15
+ </div>
16
+ <div class='field'>
17
+ <%= f.label :password_confirmation %>
18
+ <%= f.password_field :password_confirmation %>
19
+ </div>
20
+ <div class='field'>
21
+ <%= f.label :plugin_access %>
22
+ <ul id='plugins'>
23
+ <% @available_plugins.each do |plugin| -%>
24
+ <%# Since the dashboard is always included by the framework, this will maintain the user's order %>
25
+ <% if Refinery::Plugins.always_allowed.titles.include?(plugin) or (plugin == 'Users' and @user.id == current_user.id) %>
26
+ <%= hidden_field_tag 'user[plugins][]', plugin %>
27
+ <% else %>
28
+ <li>
29
+ <%= check_box_tag 'user[plugins][]', plugin, @selected_plugin_titles.include?(plugin), :id => "plugins_#{plugin.downcase.gsub(" ", "_")}" %>
30
+ <%= f.label 'user[plugins][]', plugin, :class => "stripped", :for => "plugins_#{plugin.downcase.gsub(" ", "_")}" %>
31
+ </li>
32
+ <% end %>
33
+ <% end %>
34
+ </ul>
35
+ </div>
36
+ <%= render :partial => "/shared/admin/form_actions", :locals => {:f => f, :continue_editing => false} %>
37
+
38
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= render :partial => 'form' %>
@@ -0,0 +1,40 @@
1
+ <div id='actions'>
2
+ <ul>
3
+ <li>
4
+ <%= link_to "Create New User", new_admin_user_url, :class => "add_icon" %>
5
+ </li>
6
+ </ul>
7
+ </div>
8
+ <div id='records'>
9
+ <% if @users.any? %>
10
+ <%= will_paginate @users, :previous_label => '&laquo;', :next_label => '&raquo;' %>
11
+ <ul>
12
+ <% @users.each do |user| -%>
13
+ <li id="sortable_<%= user.id %>" class='clearfix record <%= cycle("on", "on-hover") %>'>
14
+ <span class='title'>
15
+ <span class='actions'>
16
+ <%= link_to refinery_icon_tag('delete.png'), admin_user_path(user),
17
+ :class => "cancel confirm-delete",
18
+ :title => "Remove this user forever" if user.ui_deletable?(current_user) %>
19
+ <%= link_to refinery_icon_tag('application_edit.png'), edit_admin_user_path(user),
20
+ :title => 'Edit this user' %>
21
+ <%= mail_to user.email, refinery_icon_tag('email_go.png'), :title => 'Email this user' %>
22
+ </span>
23
+ <strong><%= user.login %></strong>
24
+ <span class="preview">
25
+ (<%= user.email %>) created <%= user.created_at.strftime("%b %d, %Y") %>
26
+ </span>
27
+ </span>
28
+ </li>
29
+ <% end -%>
30
+ </ul>
31
+ <%= will_paginate @users, :previous_label => '&laquo;', :next_label => '&raquo;' %>
32
+ <% else %>
33
+ <p>
34
+ <strong>
35
+ There are no users yet.
36
+ Click "Create New User" to add your first user.
37
+ </strong>
38
+ </p>
39
+ <% end %>
40
+ </div>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1,24 @@
1
+ <% form_for :session, :url => session_path do |f| -%>
2
+ <div class='clearfix'>
3
+ <div class='field session_username'>
4
+ <%= f.label :login %>
5
+ <%= f.text_field :login %>
6
+ </div>
7
+ <div class='field session_password'>
8
+ <%= f.label :password %>
9
+ <%= f.password_field :password %>
10
+ </div>
11
+ </div>
12
+ <div class='field forgot_password'>
13
+ <%= link_to "I forgot my password", forgot_url %>
14
+ </div>
15
+ <div class='field remember_me'>
16
+ <%= f.label :remember_me, nil %>
17
+ <%= f.check_box :remember_me %>
18
+ </div>
19
+ <div class='form-actions'>
20
+ <%= submit_tag 'Log in' %>
21
+ or
22
+ <%= link_to "Cancel", root_url %>
23
+ </div>
24
+ <% end -%>
@@ -0,0 +1,6 @@
1
+ Request to reset password received for <%= @user.login %>
2
+
3
+ Visit this url to choose a new password:
4
+ <%= @url %>
5
+
6
+ (Your password will remain the same if no action is taken)
@@ -0,0 +1,13 @@
1
+ <%= error_messages_for :user %>
2
+ <% form_for :user do |f| -%>
3
+ <p>Enter the email address for your account.</p>
4
+ <div class='field'>
5
+ <%= f.label :email %>
6
+ <%= f.text_field :email %>
7
+ </div>
8
+ <div class='form-actions'>
9
+ <%= submit_tag 'Reset password' %>
10
+ or
11
+ <%= link_to "Cancel", login_url %>
12
+ </div>
13
+ <% end -%>
@@ -0,0 +1,28 @@
1
+ <%= error_messages_for :user %>
2
+ <p>
3
+ Fill out the form below with your details so we can get you started.
4
+ </p>
5
+ <% form_for :user, :url => users_path do |f| -%>
6
+ <div class='field'>
7
+ <%= f.label :login %>
8
+ <%= f.text_field :login %>
9
+ </div>
10
+ <div class='field'>
11
+ <%= f.label :email %>
12
+ <%= f.text_field :email %>
13
+ </div>
14
+ <div class='field'>
15
+ <%= f.label :password %>
16
+ <%= f.password_field :password %>
17
+ </div>
18
+ <div class='field'>
19
+ <%= f.label :password_confirmation %>
20
+ <%= f.password_field :password_confirmation %>
21
+ </div>
22
+ <% if just_installed? %>
23
+ <% Refinery::Plugins.registered.titles.each do |plugin| %>
24
+ <%= hidden_field_tag 'user[plugins][]', plugin, :id => "plugins_#{plugin.downcase.gsub(" ", "_")}" %>
25
+ <% end %>
26
+ <% end %>
27
+ <p><%= submit_tag 'Sign up' %></p>
28
+ <% end -%>
@@ -0,0 +1,18 @@
1
+ <%= error_messages_for :user %>
2
+ <% form_for :user do |f| -%>
3
+ <p>Pick a new password for <%= @user.email %></p>
4
+ <div class='field'>
5
+ <%= f.label :password %>
6
+ <%= f.password_field :password %>
7
+ </div>
8
+ <div class='field'>
9
+ <%= f.label :password_confirmation %>
10
+ <%= f.password_field :password_confirmation %>
11
+ </div>
12
+
13
+ <div class='form-actions'>
14
+ <%= submit_tag 'Reset password' %>
15
+ or
16
+ <%= link_to "Cancel", login_url %>
17
+ </div>
18
+ <% end -%>
@@ -0,0 +1,15 @@
1
+ # Authentication
2
+
3
+ ## About
4
+
5
+ At the heart of Refinery's user management is the authentication plugin located in ``vendor/plugins/authentication``
6
+
7
+ What this really is is just a standard [RESTFul authentication](http://github.com/technoweenie/restful-authentication) install extended with a few extra features like "I forgot my password" and hooked directly into the heart of Refinery's plugin system.
8
+
9
+ ## Adding New Users
10
+
11
+ New users can be easily added by going to the 'Users' area admin and clicking on "Add new user".
12
+
13
+ ## Limiting and Granting Access
14
+
15
+ Each user has a set of plugins they're allowed to see. You can control which plugins each user can see by checking and unchecking the checkboxes next to the plugin name when editing or adding a new user.
@@ -0,0 +1,15 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+
3
+ map.resources :users
4
+ map.resource :session
5
+
6
+ map.namespace(:admin) do |admin|
7
+ admin.resources :users
8
+ end
9
+
10
+ map.login '/login', :controller => 'sessions', :action => 'new'
11
+ map.logout '/logout', :controller => 'sessions', :action => 'destroy'
12
+ map.forgot '/forgot', :controller => 'users', :action => 'forgot'
13
+ map.reset 'reset/:reset_code', :controller => 'users', :action => 'reset'
14
+
15
+ end
@@ -0,0 +1,115 @@
1
+ module AuthenticatedSystem
2
+ protected
3
+ # Returns true or false if the user is logged in.
4
+ # Preloads @current_user with the user model if they're logged in.
5
+ def logged_in?
6
+ !!current_user
7
+ end
8
+
9
+ # Accesses the current user from the session.
10
+ # Future calls avoid the database because nil is not equal to false.
11
+ def current_user
12
+ @current_user ||= (login_from_session || login_from_basic_auth || login_from_cookie) unless @current_user == false
13
+ end
14
+
15
+ # Store the given user id in the session.
16
+ def current_user=(new_user)
17
+ session[:user_id] = new_user ? new_user.id : nil
18
+ @current_user = new_user || false
19
+ end
20
+
21
+ # Check if the user is authorized
22
+ #
23
+ # Override this method in your controllers if you want to restrict access
24
+ # to only a few actions or if you want to check if the user
25
+ # has the correct rights.
26
+ #
27
+ # Example:
28
+ #
29
+ # # only allow nonbobs
30
+ # def authorized?
31
+ # current_user.login != "bob"
32
+ # end
33
+ def authorized?
34
+ logged_in?
35
+ end
36
+
37
+ # Filter method to enforce a login requirement.
38
+ #
39
+ # To require logins for all actions, use this in your controllers:
40
+ #
41
+ # before_filter :login_required
42
+ #
43
+ # To require logins for specific actions, use this in your controllers:
44
+ #
45
+ # before_filter :login_required, :only => [ :edit, :update ]
46
+ #
47
+ # To skip this in a subclassed controller:
48
+ #
49
+ # skip_before_filter :login_required
50
+ #
51
+ def login_required
52
+ authorized? || access_denied
53
+ end
54
+
55
+ # Redirect as appropriate when an access request fails.
56
+ #
57
+ # The default action is to redirect to the login screen.
58
+ #
59
+ # Override this method in your controllers if you want to have special
60
+ # behavior in case the user is not authorized
61
+ # to access the requested action. For example, a popup window might
62
+ # simply close itself.
63
+ def access_denied
64
+ respond_to do |format|
65
+ format.html do
66
+ store_location
67
+ redirect_to new_session_path
68
+ end
69
+ format.any do
70
+ request_http_basic_authentication 'Web Password'
71
+ end
72
+ end
73
+ end
74
+
75
+ # Store the URI of the current request in the session.
76
+ #
77
+ # We can return to this location by calling #redirect_back_or_default.
78
+ def store_location
79
+ session[:return_to] = request.request_uri
80
+ end
81
+
82
+ # Redirect to the URI stored by the most recent store_location call or
83
+ # to the passed default.
84
+ def redirect_back_or_default(default)
85
+ redirect_to(session[:return_to] || default)
86
+ session[:return_to] = nil
87
+ end
88
+
89
+ # Inclusion hook to make #current_user and #logged_in?
90
+ # available as ActionView helper methods.
91
+ def self.included(base)
92
+ base.send :helper_method, :current_user, :logged_in?
93
+ end
94
+
95
+ # Called from #current_user. First attempt to login by the user id stored in the session.
96
+ def login_from_session
97
+ self.current_user = User.find_by_id(session[:user_id]) if session[:user_id]
98
+ end
99
+
100
+ # Called from #current_user. Now, attempt to login by basic authentication information.
101
+ def login_from_basic_auth
102
+ authenticate_with_http_basic do |username, password|
103
+ self.current_user = User.authenticate(username, password)
104
+ end
105
+ end
106
+
107
+ # Called from #current_user. Finaly, attempt to login by an expiring token in the cookie.
108
+ def login_from_cookie
109
+ user = cookies[:auth_token] && User.find_by_remember_token(cookies[:auth_token])
110
+ if user && user.remember_token?
111
+ cookies[:auth_token] = { :value => user.remember_token, :expires => user.remember_token_expires_at }
112
+ self.current_user = user
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,10 @@
1
+ module AuthenticatedTestHelper
2
+ # Sets the current user in the session from the user fixtures.
3
+ def login_as(user)
4
+ @request.session[:user_id] = user ? users(user).id : nil
5
+ end
6
+
7
+ def authorize_as(user)
8
+ @request.env["HTTP_AUTHORIZATION"] = user ? ActionController::HttpAuthentication::Basic.encode_credentials(users(user).login, 'test') : nil
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ Refinery::Plugin.register do |plugin|
2
+ plugin.title = "Users"
3
+ plugin.description = "Manage users"
4
+ plugin.version = 1.0
5
+ plugin.menu_match = /admin\/users$/
6
+ plugin.activity = {
7
+ :class => User,
8
+ :url_prefix => "edit_",
9
+ :title => "login",
10
+ :created_image => "user_add.png",
11
+ :updated_image => "user_edit.png"
12
+ }
13
+ end
@@ -0,0 +1,19 @@
1
+ quentin:
2
+ id: 1
3
+ login: quentin
4
+ email: quentin@example.com
5
+ salt: 7e3041ebc2fc05a40c60028e2c4901a81035d3cd
6
+ crypted_password: 00742970dc9e6319f8019fd54864d3ea740f04b1 # test
7
+ created_at: <%= 5.days.ago.to_s :db %>
8
+ activation_code: 8f24789ae988411ccf33ab0c30fe9106fab32e9b
9
+ activated_at: <%= 5.days.ago.to_s :db %>
10
+ state: active
11
+ aaron:
12
+ id: 2
13
+ login: aaron
14
+ email: aaron@example.com
15
+ salt: 7e3041ebc2fc05a40c60028e2c4901a81035d3cd
16
+ crypted_password: 00742970dc9e6319f8019fd54864d3ea740f04b1 # test
17
+ created_at: <%= 1.days.ago.to_s :db %>
18
+ activation_code: 8f24789ae988411ccf33ab0c30fe9106fab32e9a
19
+ state: pending
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class Admin::BaseControllerTest < ActionController::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class Admin::DashboardControllerTest < ActionController::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class Admin::PagesControllerTest < ActionController::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,85 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'sessions_controller'
3
+
4
+ # Re-raise errors caught by the controller.
5
+ class SessionsController; def rescue_action(e) raise e end; end
6
+
7
+ class SessionsControllerTest < Test::Unit::TestCase
8
+ # Be sure to include AuthenticatedTestHelper in test/test_helper.rb instead
9
+ # Then, you can remove it from this and the units test.
10
+ include AuthenticatedTestHelper
11
+
12
+ fixtures :users
13
+
14
+ def setup
15
+ @controller = SessionsController.new
16
+ @request = ActionController::TestRequest.new
17
+ @response = ActionController::TestResponse.new
18
+ end
19
+
20
+ def test_should_login_and_redirect
21
+ post :create, :login => 'quentin', :password => 'test'
22
+ assert session[:user_id]
23
+ assert_response :redirect
24
+ end
25
+
26
+ def test_should_fail_login_and_not_redirect
27
+ post :create, :login => 'quentin', :password => 'bad password'
28
+ assert_nil session[:user_id]
29
+ assert_response :success
30
+ end
31
+
32
+ def test_should_logout
33
+ login_as :quentin
34
+ get :destroy
35
+ assert_nil session[:user_id]
36
+ assert_response :redirect
37
+ end
38
+
39
+ def test_should_remember_me
40
+ post :create, :login => 'quentin', :password => 'test', :remember_me => "1"
41
+ assert_not_nil @response.cookies["auth_token"]
42
+ end
43
+
44
+ def test_should_not_remember_me
45
+ post :create, :login => 'quentin', :password => 'test', :remember_me => "0"
46
+ assert_nil @response.cookies["auth_token"]
47
+ end
48
+
49
+ def test_should_delete_token_on_logout
50
+ login_as :quentin
51
+ get :destroy
52
+ assert_equal @response.cookies["auth_token"], []
53
+ end
54
+
55
+ def test_should_login_with_cookie
56
+ users(:quentin).remember_me
57
+ @request.cookies["auth_token"] = cookie_for(:quentin)
58
+ get :new
59
+ assert @controller.send(:logged_in?)
60
+ end
61
+
62
+ def test_should_fail_expired_cookie_login
63
+ users(:quentin).remember_me
64
+ users(:quentin).update_attribute :remember_token_expires_at, 5.minutes.ago
65
+ @request.cookies["auth_token"] = cookie_for(:quentin)
66
+ get :new
67
+ assert !@controller.send(:logged_in?)
68
+ end
69
+
70
+ def test_should_fail_cookie_login
71
+ users(:quentin).remember_me
72
+ @request.cookies["auth_token"] = auth_token('invalid_auth_token')
73
+ get :new
74
+ assert !@controller.send(:logged_in?)
75
+ end
76
+
77
+ protected
78
+ def auth_token(token)
79
+ CGI::Cookie.new('name' => 'auth_token', 'value' => token)
80
+ end
81
+
82
+ def cookie_for(user)
83
+ auth_token users(user).remember_token
84
+ end
85
+ end