refinerycms 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CONTRIBUTORS +8 -0
- data/LICENSE +21 -0
- data/README +40 -0
- data/app/controllers/application.rb +3 -0
- data/app/controllers/application_controller.rb +8 -0
- data/config/amazon_s3.yml +17 -0
- data/config/boot.rb +110 -0
- data/config/database.yml.example +20 -0
- data/config/environment.rb +67 -0
- data/config/environments/development.rb +17 -0
- data/config/environments/production.rb +19 -0
- data/config/environments/test.rb +22 -0
- data/config/initializers/inflections.rb +10 -0
- data/config/initializers/mime_types.rb +5 -0
- data/config/rackspace_cloudfiles.yml +14 -0
- data/config/routes.rb +19 -0
- data/db/migrate/20090903030652_remove_title_from_resources.rb +9 -0
- data/db/migrate/20090914025122_change_default_image_thumbnails.rb +9 -0
- data/db/migrate/20090916025552_resave_refinery_settings_through_serializer.rb +13 -0
- data/db/migrate/20090916045536_create_user_plugins.rb +41 -0
- data/db/migrate/20090916055243_add_position_to_user_plugins.rb +9 -0
- data/db/schema.rb +141 -0
- data/db/seeds.rb +109 -0
- data/lib/refinery_initializer.rb +9 -0
- data/public/.htaccess +40 -0
- data/public/404.html +29 -0
- data/public/422.html +30 -0
- data/public/500.html +30 -0
- data/public/favicon.ico +0 -0
- data/public/images/lightbox/bullet.gif +0 -0
- data/public/images/lightbox/close.gif +0 -0
- data/public/images/lightbox/closelabel.gif +0 -0
- data/public/images/lightbox/donate-button.gif +0 -0
- data/public/images/lightbox/download-icon.gif +0 -0
- data/public/images/lightbox/loading.gif +0 -0
- data/public/images/lightbox/nextlabel.gif +0 -0
- data/public/images/lightbox/prevlabel.gif +0 -0
- data/public/images/refinery/add.gif +0 -0
- data/public/images/refinery/add.png +0 -0
- data/public/images/refinery/admin_bg.png +0 -0
- data/public/images/refinery/ajax-loader.gif +0 -0
- data/public/images/refinery/branch-end.gif +0 -0
- data/public/images/refinery/branch-start.gif +0 -0
- data/public/images/refinery/branch.gif +0 -0
- data/public/images/refinery/cross.gif +0 -0
- data/public/images/refinery/deactive-gradient.gif +0 -0
- data/public/images/refinery/delete.gif +0 -0
- data/public/images/refinery/drag.gif +0 -0
- data/public/images/refinery/edit.gif +0 -0
- data/public/images/refinery/header-background.gif +0 -0
- data/public/images/refinery/header_background.png +0 -0
- data/public/images/refinery/hover-gradient.jpg +0 -0
- data/public/images/refinery/icons/accept.png +0 -0
- data/public/images/refinery/icons/add.png +0 -0
- data/public/images/refinery/icons/application_edit.png +0 -0
- data/public/images/refinery/icons/application_go.png +0 -0
- data/public/images/refinery/icons/arrow_left.png +0 -0
- data/public/images/refinery/icons/arrow_switch.png +0 -0
- data/public/images/refinery/icons/arrow_up.png +0 -0
- data/public/images/refinery/icons/bin_closed.png +0 -0
- data/public/images/refinery/icons/cancel.png +0 -0
- data/public/images/refinery/icons/cog_add.png +0 -0
- data/public/images/refinery/icons/cog_edit.png +0 -0
- data/public/images/refinery/icons/cross.png +0 -0
- data/public/images/refinery/icons/delete.png +0 -0
- data/public/images/refinery/icons/edit.png +0 -0
- data/public/images/refinery/icons/email_edit.png +0 -0
- data/public/images/refinery/icons/email_go.png +0 -0
- data/public/images/refinery/icons/email_open.png +0 -0
- data/public/images/refinery/icons/eye.png +0 -0
- data/public/images/refinery/icons/help.png +0 -0
- data/public/images/refinery/icons/image_add.png +0 -0
- data/public/images/refinery/icons/image_edit.png +0 -0
- data/public/images/refinery/icons/layout_add.png +0 -0
- data/public/images/refinery/icons/layout_edit.png +0 -0
- data/public/images/refinery/icons/page_add.png +0 -0
- data/public/images/refinery/icons/page_edit.png +0 -0
- data/public/images/refinery/icons/page_link.png +0 -0
- data/public/images/refinery/icons/page_white_edit.png +0 -0
- data/public/images/refinery/icons/page_white_put.png +0 -0
- data/public/images/refinery/icons/reorder.png +0 -0
- data/public/images/refinery/icons/tick.png +0 -0
- data/public/images/refinery/icons/user.png +0 -0
- data/public/images/refinery/icons/user_add.png +0 -0
- data/public/images/refinery/icons/user_comment.png +0 -0
- data/public/images/refinery/icons/user_edit.png +0 -0
- data/public/images/refinery/info.gif +0 -0
- data/public/images/refinery/logo.png +0 -0
- data/public/images/refinery/m-tools.gif +0 -0
- data/public/images/refinery/magnifier.png +0 -0
- data/public/images/refinery/nav-3-background.gif +0 -0
- data/public/images/refinery/page_bg.png +0 -0
- data/public/images/refinery/resolve-digital.gif +0 -0
- data/public/images/refinery/search.gif +0 -0
- data/public/images/refinery/shad_blcorner.png +0 -0
- data/public/images/refinery/shad_bottom.png +0 -0
- data/public/images/refinery/shad_brcorner.png +0 -0
- data/public/images/refinery/shad_tlcorner.png +0 -0
- data/public/images/refinery/shad_trcorner.png +0 -0
- data/public/images/refinery/tableft.gif +0 -0
- data/public/images/refinery/tabright.gif +0 -0
- data/public/images/refinery/tick.gif +0 -0
- data/public/images/thickbox/cross.png +0 -0
- data/public/images/thickbox/loadingAnimation.gif +0 -0
- data/public/images/thickbox/macFFBgHack.png +0 -0
- data/public/images/wymeditor/skins/refinery/blockquote.png +0 -0
- data/public/images/wymeditor/skins/refinery/center.png +0 -0
- data/public/images/wymeditor/skins/refinery/css.png +0 -0
- data/public/images/wymeditor/skins/refinery/h1.png +0 -0
- data/public/images/wymeditor/skins/refinery/h2.png +0 -0
- data/public/images/wymeditor/skins/refinery/h3.png +0 -0
- data/public/images/wymeditor/skins/refinery/h4.png +0 -0
- data/public/images/wymeditor/skins/refinery/h5.png +0 -0
- data/public/images/wymeditor/skins/refinery/h6.png +0 -0
- data/public/images/wymeditor/skins/refinery/icons.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-blockquote.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h1.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h2.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h3.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h4.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h5.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-h6.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-p.png +0 -0
- data/public/images/wymeditor/skins/refinery/iframe/lbl-pre.png +0 -0
- data/public/images/wymeditor/skins/refinery/justify.png +0 -0
- data/public/images/wymeditor/skins/refinery/left.png +0 -0
- data/public/images/wymeditor/skins/refinery/paragraph.png +0 -0
- data/public/images/wymeditor/skins/refinery/right.png +0 -0
- data/public/images/wymeditor/skins/wymeditor_icon.png +0 -0
- data/public/javascripts/admin.js +26 -0
- data/public/javascripts/application.js +2 -0
- data/public/javascripts/builder.js +136 -0
- data/public/javascripts/controls.js +963 -0
- data/public/javascripts/dialog.js +52 -0
- data/public/javascripts/dragdrop.js +973 -0
- data/public/javascripts/effects.js +1128 -0
- data/public/javascripts/fastinit.js +84 -0
- data/public/javascripts/jquery/GPL-LICENSE.txt +278 -0
- data/public/javascripts/jquery/MIT-LICENSE.txt +20 -0
- data/public/javascripts/jquery/README +67 -0
- data/public/javascripts/jquery/jquery.js +11 -0
- data/public/javascripts/jquery/jquery.ui.draggable.js +1 -0
- data/public/javascripts/jquery/jquery.ui.js +1 -0
- data/public/javascripts/jquery/jquery.ui.resizable.js +1 -0
- data/public/javascripts/jquery/jquery.ui.sortable.js +1 -0
- data/public/javascripts/lightbox.js +503 -0
- data/public/javascripts/livepipe.js +356 -0
- data/public/javascripts/overlabel.js +66 -0
- data/public/javascripts/parse_url.js +38 -0
- data/public/javascripts/prototype.enhancements.js +24 -0
- data/public/javascripts/prototype.js +4320 -0
- data/public/javascripts/scriptaculous.js +47 -0
- data/public/javascripts/slider.js +275 -0
- data/public/javascripts/tabs.js +147 -0
- data/public/javascripts/thickbox.js +363 -0
- data/public/javascripts/tooltips.js +173 -0
- data/public/javascripts/wymeditor/boot_wym.js +163 -0
- data/public/javascripts/wymeditor/jquery.refinery.wymeditor.js +4986 -0
- data/public/javascripts/wymeditor/lang/ca.js +45 -0
- data/public/javascripts/wymeditor/lang/cs.js +45 -0
- data/public/javascripts/wymeditor/lang/de.js +45 -0
- data/public/javascripts/wymeditor/lang/en.js +48 -0
- data/public/javascripts/wymeditor/lang/es.js +45 -0
- data/public/javascripts/wymeditor/lang/fa.js +46 -0
- data/public/javascripts/wymeditor/lang/fr.js +45 -0
- data/public/javascripts/wymeditor/lang/he.js +45 -0
- data/public/javascripts/wymeditor/lang/hu.js +45 -0
- data/public/javascripts/wymeditor/lang/it.js +45 -0
- data/public/javascripts/wymeditor/lang/nb.js +45 -0
- data/public/javascripts/wymeditor/lang/nl.js +45 -0
- data/public/javascripts/wymeditor/lang/nn.js +45 -0
- data/public/javascripts/wymeditor/lang/pl.js +45 -0
- data/public/javascripts/wymeditor/lang/pt-br.js +45 -0
- data/public/javascripts/wymeditor/lang/pt.js +45 -0
- data/public/javascripts/wymeditor/lang/ru.js +45 -0
- data/public/javascripts/wymeditor/lang/sv.js +45 -0
- data/public/javascripts/wymeditor/lang/tr.js +45 -0
- data/public/javascripts/wymeditor/lang/zh_cn.js +47 -0
- data/public/javascripts/wymeditor/skins/refinery/skin.js +40 -0
- data/public/robots.txt +2 -0
- data/public/stylesheets/application.css +0 -0
- data/public/stylesheets/application.css.example +76 -0
- data/public/stylesheets/formatting.css +0 -0
- data/public/stylesheets/formatting.css.example +86 -0
- data/public/stylesheets/home.css +0 -0
- data/public/stylesheets/home.css.example +27 -0
- data/public/stylesheets/ie6.css +0 -0
- data/public/stylesheets/ie7.css +0 -0
- data/public/stylesheets/lightbox.css +27 -0
- data/public/stylesheets/overlabel.css +21 -0
- data/public/stylesheets/refinery.css +1036 -0
- data/public/stylesheets/theme.css +36 -0
- data/public/stylesheets/thickbox.css +165 -0
- data/public/stylesheets/tooltips.css +38 -0
- data/public/stylesheets/wymeditor/skins/refinery/skin.css +211 -0
- data/public/stylesheets/wymeditor/skins/refinery/wymiframe.css +92 -0
- data/public/wymeditor/GPL-license.txt +278 -0
- data/public/wymeditor/MIT-license.txt +20 -0
- data/public/wymeditor/README +35 -0
- data/vendor/plugins/acts_as_indexed/CHANGELOG +74 -0
- data/vendor/plugins/acts_as_indexed/MIT-LICENSE +20 -0
- data/vendor/plugins/acts_as_indexed/README.rdoc +114 -0
- data/vendor/plugins/acts_as_indexed/Rakefile +35 -0
- data/vendor/plugins/acts_as_indexed/init.rb +2 -0
- data/vendor/plugins/acts_as_indexed/lib/acts_as_indexed.rb +224 -0
- data/vendor/plugins/acts_as_indexed/lib/search_atom.rb +107 -0
- data/vendor/plugins/acts_as_indexed/lib/search_index.rb +329 -0
- data/vendor/plugins/acts_as_indexed/lib/will_paginate_search.rb +29 -0
- data/vendor/plugins/acts_as_indexed/test/abstract_unit.rb +47 -0
- data/vendor/plugins/acts_as_indexed/test/acts_as_indexed_test.rb +102 -0
- data/vendor/plugins/acts_as_indexed/test/database.yml +10 -0
- data/vendor/plugins/acts_as_indexed/test/fixtures/post.rb +5 -0
- data/vendor/plugins/acts_as_indexed/test/fixtures/posts.yml +31 -0
- data/vendor/plugins/acts_as_indexed/test/schema.rb +6 -0
- data/vendor/plugins/acts_as_tree/README +26 -0
- data/vendor/plugins/acts_as_tree/Rakefile +22 -0
- data/vendor/plugins/acts_as_tree/init.rb +1 -0
- data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +141 -0
- data/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
- data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
- data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
- data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
- data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
- data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
- data/vendor/plugins/attachment_fu/CHANGELOG +35 -0
- data/vendor/plugins/attachment_fu/LICENSE +20 -0
- data/vendor/plugins/attachment_fu/README +193 -0
- data/vendor/plugins/attachment_fu/Rakefile +22 -0
- data/vendor/plugins/attachment_fu/amazon_s3.yml.tpl +17 -0
- data/vendor/plugins/attachment_fu/init.rb +16 -0
- data/vendor/plugins/attachment_fu/install.rb +7 -0
- data/vendor/plugins/attachment_fu/lib/geometry.rb +93 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb +514 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/cloud_file_backend.rb +211 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/db_file_backend.rb +39 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb +126 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb +394 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb +59 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb +54 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb +61 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb +132 -0
- data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb +57 -0
- data/vendor/plugins/attachment_fu/rackspace_cloudfiles.yml.tpl +14 -0
- data/vendor/plugins/attachment_fu/test/backends/db_file_test.rb +16 -0
- data/vendor/plugins/attachment_fu/test/backends/file_system_test.rb +143 -0
- data/vendor/plugins/attachment_fu/test/backends/remote/cloudfiles_test.rb +102 -0
- data/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb +119 -0
- data/vendor/plugins/attachment_fu/test/base_attachment_tests.rb +77 -0
- data/vendor/plugins/attachment_fu/test/basic_test.rb +70 -0
- data/vendor/plugins/attachment_fu/test/database.yml +18 -0
- data/vendor/plugins/attachment_fu/test/extra_attachment_test.rb +67 -0
- data/vendor/plugins/attachment_fu/test/fixtures/attachment.rb +226 -0
- data/vendor/plugins/attachment_fu/test/fixtures/files/fake/rails.png +0 -0
- data/vendor/plugins/attachment_fu/test/fixtures/files/foo.txt +1 -0
- data/vendor/plugins/attachment_fu/test/fixtures/files/rails.png +0 -0
- data/vendor/plugins/attachment_fu/test/geometry_test.rb +108 -0
- data/vendor/plugins/attachment_fu/test/processors/core_image_test.rb +37 -0
- data/vendor/plugins/attachment_fu/test/processors/gd2_test.rb +31 -0
- data/vendor/plugins/attachment_fu/test/processors/image_science_test.rb +31 -0
- data/vendor/plugins/attachment_fu/test/processors/mini_magick_test.rb +103 -0
- data/vendor/plugins/attachment_fu/test/processors/rmagick_test.rb +255 -0
- data/vendor/plugins/attachment_fu/test/schema.rb +134 -0
- data/vendor/plugins/attachment_fu/test/test_helper.rb +150 -0
- data/vendor/plugins/attachment_fu/test/validation_test.rb +55 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/color.rb +27 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/effects.rb +31 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/perspective.rb +25 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/quality.rb +25 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/scale.rb +47 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/watermark.rb +32 -0
- data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/processor.rb +123 -0
- data/vendor/plugins/authentication/README +0 -0
- data/vendor/plugins/authentication/Rakefile +0 -0
- data/vendor/plugins/authentication/app/controllers/admin/users_controller.rb +93 -0
- data/vendor/plugins/authentication/app/controllers/sessions_controller.rb +30 -0
- data/vendor/plugins/authentication/app/controllers/users_controller.rb +86 -0
- data/vendor/plugins/authentication/app/helpers/sessions_helper.rb +2 -0
- data/vendor/plugins/authentication/app/helpers/users_helper.rb +2 -0
- data/vendor/plugins/authentication/app/models/user.rb +146 -0
- data/vendor/plugins/authentication/app/models/user_mailer.rb +25 -0
- data/vendor/plugins/authentication/app/models/user_observer.rb +11 -0
- data/vendor/plugins/authentication/app/models/user_plugin.rb +5 -0
- data/vendor/plugins/authentication/app/views/admin/users/_form.html.erb +42 -0
- data/vendor/plugins/authentication/app/views/admin/users/edit.html.erb +1 -0
- data/vendor/plugins/authentication/app/views/admin/users/index.html.erb +41 -0
- data/vendor/plugins/authentication/app/views/admin/users/new.html.erb +1 -0
- data/vendor/plugins/authentication/app/views/sessions/new.html.erb +21 -0
- data/vendor/plugins/authentication/app/views/user_mailer/activation.html.erb +3 -0
- data/vendor/plugins/authentication/app/views/user_mailer/signup_notification.html.erb +8 -0
- data/vendor/plugins/authentication/app/views/users/new.html.erb +28 -0
- data/vendor/plugins/authentication/config/routes.rb +10 -0
- data/vendor/plugins/authentication/init.rb +13 -0
- data/vendor/plugins/authentication/lib/authenticated_system.rb +115 -0
- data/vendor/plugins/authentication/lib/authenticated_test_helper.rb +10 -0
- data/vendor/plugins/authentication/test/fixtures/users.yml +19 -0
- data/vendor/plugins/authentication/test/functional/admin/base_controller_test.rb +8 -0
- data/vendor/plugins/authentication/test/functional/admin/dashboard_controller_test.rb +8 -0
- data/vendor/plugins/authentication/test/functional/admin/pages_controller_test.rb +8 -0
- data/vendor/plugins/authentication/test/functional/sessions_controller_test.rb +85 -0
- data/vendor/plugins/authentication/test/functional/users_controller_test.rb +99 -0
- data/vendor/plugins/authentication/test/test_helper.rb +38 -0
- data/vendor/plugins/authentication/test/unit/user_mailer_test.rb +31 -0
- data/vendor/plugins/authentication/test/unit/user_test.rb +164 -0
- data/vendor/plugins/dashboard/app/controllers/admin/dashboard_controller.rb +16 -0
- data/vendor/plugins/dashboard/app/helpers/admin/dashboard_helper.rb +19 -0
- data/vendor/plugins/dashboard/app/views/admin/dashboard/_recent_activity.html.erb +14 -0
- data/vendor/plugins/dashboard/app/views/admin/dashboard/index.html.erb +31 -0
- data/vendor/plugins/dashboard/config/routes.rb +5 -0
- data/vendor/plugins/dashboard/init.rb +7 -0
- data/vendor/plugins/images/app/controllers/admin/images_controller.rb +72 -0
- data/vendor/plugins/images/app/helpers/admin/images_helper.rb +17 -0
- data/vendor/plugins/images/app/models/image.rb +51 -0
- data/vendor/plugins/images/app/views/admin/images/_form.html.erb +36 -0
- data/vendor/plugins/images/app/views/admin/images/_grid_view.html.erb +17 -0
- data/vendor/plugins/images/app/views/admin/images/_list_view.html.erb +21 -0
- data/vendor/plugins/images/app/views/admin/images/edit.html.erb +1 -0
- data/vendor/plugins/images/app/views/admin/images/index.html.erb +43 -0
- data/vendor/plugins/images/app/views/admin/images/insert.html.erb +115 -0
- data/vendor/plugins/images/app/views/admin/images/new.html.erb +1 -0
- data/vendor/plugins/images/config/routes.rb +5 -0
- data/vendor/plugins/images/init.rb +8 -0
- data/vendor/plugins/images/lib/tasks/images.rake +28 -0
- data/vendor/plugins/inquiries/app/controllers/admin/inquiries_controller.rb +29 -0
- data/vendor/plugins/inquiries/app/controllers/admin/inquiry_settings_controller.rb +16 -0
- data/vendor/plugins/inquiries/app/controllers/inquiries_controller.rb +41 -0
- data/vendor/plugins/inquiries/app/helpers/inquiries_helper.rb +13 -0
- data/vendor/plugins/inquiries/app/models/inquiry.rb +18 -0
- data/vendor/plugins/inquiries/app/models/inquiry_mailer.rb +19 -0
- data/vendor/plugins/inquiries/app/models/inquiry_setting.rb +11 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiries/_inquiry.html.erb +27 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiries/index.html.erb +44 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiries/show.html.erb +62 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_confirmation_email_form.html.erb +50 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_notification_recipients_form.html.erb +22 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/edit.html.erb +5 -0
- data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/index.html.erb +32 -0
- data/vendor/plugins/inquiries/app/views/inquiries/new.html.erb +33 -0
- data/vendor/plugins/inquiries/app/views/inquiries/thank_you.html.erb +9 -0
- data/vendor/plugins/inquiries/app/views/inquiry_mailer/confirmation.html.erb +1 -0
- data/vendor/plugins/inquiries/app/views/inquiry_mailer/notification.html.erb +18 -0
- data/vendor/plugins/inquiries/config/routes.rb +8 -0
- data/vendor/plugins/inquiries/init.rb +11 -0
- data/vendor/plugins/news/app/controllers/admin/news_items_controller.rb +5 -0
- data/vendor/plugins/news/app/controllers/news_items_controller.rb +20 -0
- data/vendor/plugins/news/app/models/news_item.rb +26 -0
- data/vendor/plugins/news/app/views/admin/news_items/_form.html.erb +33 -0
- data/vendor/plugins/news/app/views/admin/news_items/_news_item.html.erb +15 -0
- data/vendor/plugins/news/app/views/admin/news_items/edit.html.erb +1 -0
- data/vendor/plugins/news/app/views/admin/news_items/index.html.erb +36 -0
- data/vendor/plugins/news/app/views/admin/news_items/new.html.erb +1 -0
- data/vendor/plugins/news/app/views/news_items/_recent_posts.html.erb +8 -0
- data/vendor/plugins/news/app/views/news_items/index.html.erb +23 -0
- data/vendor/plugins/news/app/views/news_items/show.html.erb +18 -0
- data/vendor/plugins/news/config/routes.rb +7 -0
- data/vendor/plugins/news/init.rb +7 -0
- data/vendor/plugins/pages/app/controllers/admin/page_dialogs_controller.rb +48 -0
- data/vendor/plugins/pages/app/controllers/admin/page_parts_controller.rb +35 -0
- data/vendor/plugins/pages/app/controllers/admin/pages_controller.rb +12 -0
- data/vendor/plugins/pages/app/controllers/pages_controller.rb +20 -0
- data/vendor/plugins/pages/app/helpers/pages_helper.rb +2 -0
- data/vendor/plugins/pages/app/models/page.rb +97 -0
- data/vendor/plugins/pages/app/models/page_part.rb +17 -0
- data/vendor/plugins/pages/app/views/admin/page_dialogs/_page_link.html.erb +6 -0
- data/vendor/plugins/pages/app/views/admin/page_dialogs/link_to.html.erb +253 -0
- data/vendor/plugins/pages/app/views/admin/page_parts/new.html.erb +11 -0
- data/vendor/plugins/pages/app/views/admin/pages/_form.html.erb +179 -0
- data/vendor/plugins/pages/app/views/admin/pages/_list.html.erb +29 -0
- data/vendor/plugins/pages/app/views/admin/pages/_sortable_list.html.erb +4 -0
- data/vendor/plugins/pages/app/views/admin/pages/edit.html.erb +1 -0
- data/vendor/plugins/pages/app/views/admin/pages/index.html.erb +42 -0
- data/vendor/plugins/pages/app/views/admin/pages/new.html.erb +1 -0
- data/vendor/plugins/pages/app/views/pages/home.html.erb +9 -0
- data/vendor/plugins/pages/app/views/pages/show.html.erb +10 -0
- data/vendor/plugins/pages/config/routes.rb +12 -0
- data/vendor/plugins/pages/init.rb +8 -0
- data/vendor/plugins/refinery/app/controllers/admin/base_controller.rb +37 -0
- data/vendor/plugins/refinery/app/controllers/admin/refinery_core_controller.rb +14 -0
- data/vendor/plugins/refinery/app/helpers/application_helper.rb +84 -0
- data/vendor/plugins/refinery/app/views/admin/_head.html.erb +27 -0
- data/vendor/plugins/refinery/app/views/admin/_menu.html.erb +85 -0
- data/vendor/plugins/refinery/app/views/layouts/admin.html.erb +25 -0
- data/vendor/plugins/refinery/app/views/layouts/application.html.erb +32 -0
- data/vendor/plugins/refinery/app/views/shared/_footer.html.erb +3 -0
- data/vendor/plugins/refinery/app/views/shared/_google_analytics.html.erb +12 -0
- data/vendor/plugins/refinery/app/views/shared/_ie6check.html.erb +11 -0
- data/vendor/plugins/refinery/app/views/shared/_menu.html.erb +16 -0
- data/vendor/plugins/refinery/app/views/shared/_menu_branch.html.erb +28 -0
- data/vendor/plugins/refinery/app/views/shared/_message.html.erb +10 -0
- data/vendor/plugins/refinery/app/views/shared/_submenu.html.erb +4 -0
- data/vendor/plugins/refinery/app/views/shared/_submenu_branch.html.erb +10 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_make_sortable.html.erb +71 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_search.html.erb +5 -0
- data/vendor/plugins/refinery/app/views/shared/admin/_sortable_list.html.erb +10 -0
- data/vendor/plugins/refinery/app/views/welcome.html.erb +13 -0
- data/vendor/plugins/refinery/app/views/wymiframe.html.erb +8 -0
- data/vendor/plugins/refinery/config/routes.rb +10 -0
- data/vendor/plugins/refinery/init.rb +9 -0
- data/vendor/plugins/refinery/lib/crud.rb +134 -0
- data/vendor/plugins/refinery/lib/generators/refinery/README +29 -0
- data/vendor/plugins/refinery/lib/generators/refinery/Rakefile +12 -0
- data/vendor/plugins/refinery/lib/generators/refinery/USAGE +2 -0
- data/vendor/plugins/refinery/lib/generators/refinery/install.rb +2 -0
- data/vendor/plugins/refinery/lib/generators/refinery/refinery_generator.rb +65 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/config/routes.rb +7 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/controller.rb +5 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/init.rb +7 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/migration.rb +36 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/model.rb +8 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/public_controller.rb +20 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_form.html.erb +18 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_singular_name.html.erb +15 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_sortable_list.html.erb +2 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/edit.html.erb +1 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/index.html.erb +45 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/new.html.erb +1 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/index.html.erb +15 -0
- data/vendor/plugins/refinery/lib/generators/refinery/templates/views/show.html.erb +23 -0
- data/vendor/plugins/refinery/lib/refinery.rb +15 -0
- data/vendor/plugins/refinery/lib/refinery/activity.rb +16 -0
- data/vendor/plugins/refinery/lib/refinery/application_controller.rb +53 -0
- data/vendor/plugins/refinery/lib/refinery/form_helpers.rb +28 -0
- data/vendor/plugins/refinery/lib/refinery/initializer.rb +28 -0
- data/vendor/plugins/refinery/lib/refinery/link_renderer.rb +45 -0
- data/vendor/plugins/refinery/lib/refinery/plugin.rb +47 -0
- data/vendor/plugins/refinery/lib/refinery/plugins.rb +53 -0
- data/vendor/plugins/refinery/lib/tasks/refinery.rake +28 -0
- data/vendor/plugins/refinery_dialogs/app/controllers/admin/dialogs_controller.rb +24 -0
- data/vendor/plugins/refinery_dialogs/app/views/admin/dialogs/show.html.erb +20 -0
- data/vendor/plugins/refinery_dialogs/app/views/layouts/admin_dialog.html.erb +31 -0
- data/vendor/plugins/refinery_dialogs/config/routes.rb +5 -0
- data/vendor/plugins/refinery_dialogs/init.rb +8 -0
- data/vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb +5 -0
- data/vendor/plugins/refinery_settings/app/models/refinery_setting.rb +62 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_form.html.erb +21 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_make_sortable.html.erb +7 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_refinery_setting.html.erb +13 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/edit.html.erb +4 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/index.html.erb +33 -0
- data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/new.html.erb +1 -0
- data/vendor/plugins/refinery_settings/config/routes.rb +5 -0
- data/vendor/plugins/refinery_settings/init.rb +9 -0
- data/vendor/plugins/resources/app/controllers/admin/resources_controller.rb +25 -0
- data/vendor/plugins/resources/app/models/resource.rb +36 -0
- data/vendor/plugins/resources/app/views/admin/resources/_form.html.erb +18 -0
- data/vendor/plugins/resources/app/views/admin/resources/_resource.html.erb +16 -0
- data/vendor/plugins/resources/app/views/admin/resources/edit.html.erb +1 -0
- data/vendor/plugins/resources/app/views/admin/resources/index.html.erb +33 -0
- data/vendor/plugins/resources/app/views/admin/resources/new.html.erb +1 -0
- data/vendor/plugins/resources/config/routes.rb +7 -0
- data/vendor/plugins/resources/init.rb +7 -0
- metadata +567 -0
|
@@ -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,10 @@
|
|
|
1
|
+
ActionController::Routing::Routes.draw do |map|
|
|
2
|
+
map.resources :users
|
|
3
|
+
map.resource :session
|
|
4
|
+
map.namespace(:admin) do |admin|
|
|
5
|
+
admin.resources :users
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
map.login '/login', :controller => 'sessions', :action => 'new'
|
|
9
|
+
map.logout '/logout', :controller => 'sessions', :action => 'destroy'
|
|
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,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,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,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
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
require 'users_controller'
|
|
3
|
+
|
|
4
|
+
# Re-raise errors caught by the controller.
|
|
5
|
+
class UsersController; def rescue_action(e) raise e end; end
|
|
6
|
+
|
|
7
|
+
class UsersControllerTest < 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 = UsersController.new
|
|
16
|
+
@request = ActionController::TestRequest.new
|
|
17
|
+
@response = ActionController::TestResponse.new
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_should_allow_signup
|
|
21
|
+
assert_difference 'User.count' do
|
|
22
|
+
create_user
|
|
23
|
+
assert_response :redirect
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_should_require_login_on_signup
|
|
28
|
+
assert_no_difference 'User.count' do
|
|
29
|
+
create_user(:login => nil)
|
|
30
|
+
assert assigns(:user).errors.on(:login)
|
|
31
|
+
assert_response :success
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_should_require_password_on_signup
|
|
36
|
+
assert_no_difference 'User.count' do
|
|
37
|
+
create_user(:password => nil)
|
|
38
|
+
assert assigns(:user).errors.on(:password)
|
|
39
|
+
assert_response :success
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_should_require_password_confirmation_on_signup
|
|
44
|
+
assert_no_difference 'User.count' do
|
|
45
|
+
create_user(:password_confirmation => nil)
|
|
46
|
+
assert assigns(:user).errors.on(:password_confirmation)
|
|
47
|
+
assert_response :success
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_should_require_email_on_signup
|
|
52
|
+
assert_no_difference 'User.count' do
|
|
53
|
+
create_user(:email => nil)
|
|
54
|
+
assert assigns(:user).errors.on(:email)
|
|
55
|
+
assert_response :success
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_should_sign_up_user_in_pending_state
|
|
60
|
+
create_user
|
|
61
|
+
assigns(:user).reload
|
|
62
|
+
assert assigns(:user).pending?
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def test_should_sign_up_user_with_activation_code
|
|
67
|
+
create_user
|
|
68
|
+
assigns(:user).reload
|
|
69
|
+
assert_not_nil assigns(:user).activation_code
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_should_activate_user
|
|
73
|
+
assert_nil User.authenticate('aaron', 'test')
|
|
74
|
+
get :activate, :activation_code => users(:aaron).activation_code
|
|
75
|
+
assert_redirected_to '/'
|
|
76
|
+
assert_not_nil flash[:notice]
|
|
77
|
+
assert_equal users(:aaron), User.authenticate('aaron', 'test')
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def test_should_not_activate_user_without_key
|
|
81
|
+
get :activate
|
|
82
|
+
assert_nil flash[:notice]
|
|
83
|
+
rescue ActionController::RoutingError
|
|
84
|
+
# in the event your routes deny this, we'll just bow out gracefully.
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def test_should_not_activate_user_with_blank_key
|
|
88
|
+
get :activate, :activation_code => ''
|
|
89
|
+
assert_nil flash[:notice]
|
|
90
|
+
rescue ActionController::RoutingError
|
|
91
|
+
# well played, sir
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
protected
|
|
95
|
+
def create_user(options = {})
|
|
96
|
+
post :create, :user => { :login => 'quire', :email => 'quire@example.com',
|
|
97
|
+
:password => 'quire', :password_confirmation => 'quire' }.merge(options)
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
|
3
|
+
require 'test_help'
|
|
4
|
+
|
|
5
|
+
class Test::Unit::TestCase
|
|
6
|
+
# Transactional fixtures accelerate your tests by wrapping each test method
|
|
7
|
+
# in a transaction that's rolled back on completion. This ensures that the
|
|
8
|
+
# test database remains unchanged so your fixtures don't have to be reloaded
|
|
9
|
+
# between every test method. Fewer database queries means faster tests.
|
|
10
|
+
#
|
|
11
|
+
# Read Mike Clark's excellent walkthrough at
|
|
12
|
+
# http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
|
|
13
|
+
#
|
|
14
|
+
# Every Active Record database supports transactions except MyISAM tables
|
|
15
|
+
# in MySQL. Turn off transactional fixtures in this case; however, if you
|
|
16
|
+
# don't care one way or the other, switching from MyISAM to InnoDB tables
|
|
17
|
+
# is recommended.
|
|
18
|
+
#
|
|
19
|
+
# The only drawback to using transactional fixtures is when you actually
|
|
20
|
+
# need to test transactions. Since your test is bracketed by a transaction,
|
|
21
|
+
# any transactions started in your code will be automatically rolled back.
|
|
22
|
+
self.use_transactional_fixtures = true
|
|
23
|
+
|
|
24
|
+
# Instantiated fixtures are slow, but give you @david where otherwise you
|
|
25
|
+
# would need people(:david). If you don't want to migrate your existing
|
|
26
|
+
# test cases which use the @david style and don't mind the speed hit (each
|
|
27
|
+
# instantiated fixtures translates to a database query per test method),
|
|
28
|
+
# then set this back to true.
|
|
29
|
+
self.use_instantiated_fixtures = false
|
|
30
|
+
|
|
31
|
+
# Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
|
|
32
|
+
#
|
|
33
|
+
# Note: You'll currently still have to declare fixtures explicitly in integration tests
|
|
34
|
+
# -- they do not yet inherit this setting
|
|
35
|
+
fixtures :all
|
|
36
|
+
|
|
37
|
+
# Add more helper methods to be used by all tests here...
|
|
38
|
+
end
|