zen 0.3 → 0.4
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/.gems +3 -2
- data/.rvmrc +1 -1
- data/.travis.yml +5 -0
- data/.yardopts +2 -1
- data/LICENSE +1 -1
- data/README.md +28 -24
- data/Rakefile +5 -2
- data/guide/asset_management.md +6 -6
- data/guide/autosaving_forms.md +42 -0
- data/guide/changelog.md +41 -0
- data/guide/faq.md +49 -0
- data/guide/getting_started.md +24 -13
- data/guide/hacking.md +40 -9
- data/guide/images/categories/categories.png +0 -0
- data/guide/images/categories/category_groups.png +0 -0
- data/guide/images/categories/new_category.png +0 -0
- data/guide/images/categories/new_category_group.png +0 -0
- data/guide/images/comments/comments.png +0 -0
- data/guide/images/comments/edit_comment.png +0 -0
- data/guide/images/custom_fields/custom_field_groups.png +0 -0
- data/guide/images/custom_fields/custom_field_types.png +0 -0
- data/guide/images/custom_fields/custom_fields.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_general.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_group.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_settings.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_type.png +0 -0
- data/guide/images/dashboard/added.png +0 -0
- data/guide/images/dashboard/columns.png +0 -0
- data/guide/images/dashboard/dashboard.png +0 -0
- data/guide/images/dashboard/options.png +0 -0
- data/guide/images/menus/edit_menu.png +0 -0
- data/guide/images/menus/edit_menu_item.png +0 -0
- data/guide/images/menus/menu_item_hierarchy.png +0 -0
- data/guide/images/menus/menu_items.png +0 -0
- data/guide/images/menus/menus.png +0 -0
- data/guide/images/sections/edit_entry.png +0 -0
- data/guide/images/sections/edit_entry_categories.png +0 -0
- data/guide/images/sections/edit_entry_general.png +0 -0
- data/guide/images/sections/edit_entry_meta.png +0 -0
- data/guide/images/sections/edit_section_comments.png +0 -0
- data/guide/images/sections/edit_section_general.png +0 -0
- data/guide/images/sections/edit_section_groups.png +0 -0
- data/guide/images/sections/entries.png +0 -0
- data/guide/images/sections/sections.png +0 -0
- data/guide/images/settings/overview_general.png +0 -0
- data/guide/images/settings/overview_security.png +0 -0
- data/guide/images/settings/overview_user.png +0 -0
- data/guide/images/users/edit_user.png +0 -0
- data/guide/images/users/edit_user_group.png +0 -0
- data/guide/images/users/edit_user_group_permissions.png +0 -0
- data/guide/images/users/edit_user_permissions.png +0 -0
- data/guide/images/users/overview.png +0 -0
- data/guide/images/users/user_groups_overview.png +0 -0
- data/guide/installation.md +7 -1
- data/guide/javascript.md +36 -273
- data/guide/javascript/zen_autosave.md +26 -0
- data/guide/javascript/zen_editor.md +83 -0
- data/guide/javascript/zen_hash.md +34 -0
- data/guide/javascript/zen_htmltable.md +78 -0
- data/guide/javascript/zen_tabs.md +44 -0
- data/guide/javascript/zen_window.md +49 -0
- data/guide/zen_compared.md +201 -0
- data/lib/vendor/sequel_sluggable.rb +1 -1
- data/lib/zen.rb +64 -44
- data/lib/zen/asset_groups.rb +10 -10
- data/lib/zen/bin/create.rb +8 -1
- data/lib/zen/helper/breadcrumb.rb +4 -12
- data/lib/zen/helper/controller.rb +209 -6
- data/lib/zen/helper/locale.rb +19 -0
- data/lib/zen/helper/search.rb +1 -1
- data/lib/zen/helper/stacked_aspect.rb +7 -43
- data/lib/zen/helper/theme.rb +3 -3
- data/lib/zen/language.rb +5 -10
- data/lib/zen/language/translation.rb +1 -1
- data/lib/zen/layout/admin.xhtml +41 -25
- data/lib/zen/layout/login.xhtml +8 -3
- data/lib/zen/migrator.rb +54 -0
- data/lib/zen/model/helper.rb +20 -1
- data/lib/zen/model/init.rb +2 -0
- data/lib/zen/model/plugin/events.rb +158 -0
- data/lib/zen/package.rb +32 -6
- data/lib/zen/package/all.rb +1 -0
- data/lib/zen/package/categories/lib/categories.rb +6 -6
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +20 -83
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +23 -74
- data/lib/zen/package/categories/lib/categories/model/category.rb +58 -1
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +62 -2
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +46 -40
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +74 -75
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +27 -24
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +83 -86
- data/lib/zen/package/comments/lib/comments.rb +5 -5
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +12 -64
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +4 -22
- data/lib/zen/package/comments/lib/comments/model/comment.rb +65 -16
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +52 -49
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +52 -60
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +1 -1
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +11 -13
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +29 -13
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +21 -50
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +27 -71
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +25 -78
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +48 -1
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +35 -1
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +3 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +40 -1
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +1 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +29 -26
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +96 -100
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +56 -53
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +82 -82
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +88 -85
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +83 -80
- data/lib/zen/package/dashboard/lib/dashboard.rb +28 -0
- data/lib/zen/package/dashboard/lib/dashboard/controller/dashboard.rb +154 -0
- data/lib/zen/package/dashboard/lib/dashboard/language/en/dashboard.rb +35 -0
- data/lib/zen/package/dashboard/lib/dashboard/language/nl/dashboard.rb +36 -0
- data/lib/zen/package/dashboard/lib/dashboard/model/widget.rb +45 -0
- data/lib/zen/package/dashboard/lib/dashboard/public/admin/dashboard/css/dashboard.css +74 -0
- data/lib/zen/package/dashboard/lib/dashboard/public/admin/dashboard/js/dashboard.js +102 -0
- data/lib/zen/package/dashboard/lib/dashboard/view/admin/index.xhtml +29 -0
- data/lib/zen/package/dashboard/lib/dashboard/view/admin/widget/welcome.xhtml +28 -0
- data/lib/zen/package/dashboard/lib/dashboard/widget.rb +292 -0
- data/lib/zen/package/dashboard/lib/dashboard/widget/welcome.rb +9 -0
- data/lib/zen/package/dashboard/migrations/1326411254_create_schema.rb +28 -0
- data/lib/zen/package/extensions/lib/extensions.rb +5 -5
- data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +72 -67
- data/lib/zen/package/menu.rb +6 -1
- data/lib/zen/package/menus/lib/menus.rb +6 -4
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +69 -104
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +19 -76
- data/lib/zen/package/menus/lib/menus/helper/menu.rb +54 -38
- data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +7 -13
- data/lib/zen/package/menus/lib/menus/model/menu.rb +158 -2
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +73 -10
- data/lib/zen/package/menus/lib/menus/public/admin/menus/css/menus.css +47 -0
- data/lib/zen/package/menus/lib/menus/public/admin/menus/js/lib/nested_sortables.js +549 -0
- data/lib/zen/package/menus/lib/menus/public/admin/menus/js/menu_items.js +38 -0
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +51 -61
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +18 -81
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +49 -44
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +81 -83
- data/lib/zen/package/sections/lib/sections.rb +9 -4
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +80 -132
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +27 -73
- data/lib/zen/package/sections/lib/sections/helper/section.rb +44 -1
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +2 -0
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +2 -0
- data/lib/zen/package/sections/lib/sections/model/section.rb +48 -1
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +55 -5
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -0
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +76 -67
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +74 -79
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/recent_entries.xhtml +45 -0
- data/lib/zen/package/sections/lib/sections/view/admin/sections/form.xhtml +119 -0
- data/lib/zen/package/sections/lib/sections/view/admin/sections/index.xhtml +96 -0
- data/lib/zen/package/sections/lib/sections/widget/recent_entries.rb +14 -0
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +1 -1
- data/lib/zen/package/settings/lib/settings.rb +14 -5
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +4 -4
- data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +1 -1
- data/lib/zen/package/settings/lib/settings/setting.rb +1 -1
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +21 -17
- data/lib/zen/package/users/lib/users.rb +18 -19
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +23 -50
- data/lib/zen/package/users/lib/users/controller/users.rb +57 -89
- data/lib/zen/package/users/lib/users/helper/acl.rb +1 -0
- data/lib/zen/package/users/lib/users/language/en/user_groups.rb +1 -0
- data/lib/zen/package/users/lib/users/language/en/users.rb +2 -1
- data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +1 -0
- data/lib/zen/package/users/lib/users/language/nl/users.rb +2 -1
- data/lib/zen/package/users/lib/users/model/permission.rb +13 -0
- data/lib/zen/package/users/lib/users/model/user.rb +57 -4
- data/lib/zen/package/users/lib/users/model/user_group.rb +37 -3
- data/lib/zen/package/users/lib/users/model/user_status.rb +4 -0
- data/lib/zen/package/users/lib/users/public/admin/{css/users/permissions.css → users/css/users.css} +0 -0
- data/lib/zen/package/users/lib/users/public/admin/{js/users/permissions.js → users/js/users.js} +4 -2
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +51 -47
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +62 -69
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +92 -82
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +68 -66
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +36 -28
- data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +5 -7
- data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +47 -41
- data/lib/zen/package/users/migrations/1320272365_status_ids.rb +1 -1
- data/lib/zen/public/admin/{js/vendor/mootools → mootools/js}/core.js +113 -108
- data/lib/zen/public/admin/{js/vendor/mootools → mootools/js}/more.js +99 -6
- data/lib/zen/public/admin/zen/css/buttons.css +106 -0
- data/lib/zen/public/admin/{css/zen → zen/css}/datepicker.css +45 -30
- data/lib/zen/public/admin/zen/css/editor.css +69 -0
- data/lib/zen/public/admin/{css/zen → zen/css}/forms.css +28 -30
- data/lib/zen/public/admin/zen/css/general.css +183 -0
- data/lib/zen/public/admin/zen/css/layout.css +224 -0
- data/lib/zen/public/admin/zen/css/messages.css +34 -0
- data/lib/zen/public/admin/{css/zen → zen/css}/reset.css +4 -9
- data/lib/zen/public/admin/zen/css/tables.css +57 -0
- data/lib/zen/public/admin/zen/css/tabs.css +84 -0
- data/lib/zen/public/admin/zen/css/window.css +74 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/asc.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/bold.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/box.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/categories.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/close.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/comment.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/desc.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/edit.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/error.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/external.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/globe.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/italic.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/link.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/lock.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/ol.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/pages.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/preview.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/relation.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/settings.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/template.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/ul.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/user.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/user_group.png +0 -0
- data/lib/zen/public/admin/{js/zen → zen/js}/index.js +21 -9
- data/lib/zen/public/admin/zen/js/lib/autosave.js +185 -0
- data/lib/zen/public/admin/zen/js/lib/base.js +60 -0
- data/lib/zen/public/admin/{js/vendor → zen/js/lib}/datepicker.js +52 -28
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor.js +23 -34
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor/markdown.js +5 -1
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor/textile.js +4 -0
- data/lib/zen/public/admin/zen/js/lib/hash.js +218 -0
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/html_table.js +5 -0
- data/lib/zen/public/admin/zen/js/lib/tabs.js +194 -0
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/window.js +54 -29
- data/lib/zen/security.rb +50 -0
- data/lib/zen/spec/helper.rb +5 -120
- data/lib/zen/spec/helper/capybara.rb +75 -0
- data/lib/zen/spec/helper/general.rb +75 -0
- data/lib/zen/spec/simplecov.rb +1 -0
- data/lib/zen/task/build.rake +2 -21
- data/lib/zen/task/clean.rake +1 -10
- data/lib/zen/task/db.rake +4 -10
- data/lib/zen/task/package.rake +2 -5
- data/lib/zen/task/setup.rake +1 -1
- data/lib/zen/task/test.rake +6 -6
- data/lib/zen/task/theme.rake +2 -5
- data/lib/zen/theme.rb +26 -22
- data/lib/zen/version.rb +1 -1
- data/lib/zen/view/bottom.xhtml +2 -3
- data/lib/zen/view/search.xhtml +3 -5
- data/proto/app/config/config.rb.erb +1 -1
- data/proto/app/theme/default/index.xhtml +116 -20
- data/proto/app/theme/partials/head.xhtml +9 -0
- data/proto/app/theme/partials/sidebar.xhtml +40 -0
- data/proto/app/theme/theme.rb +3 -0
- data/spec/Rakefile +1 -2
- data/spec/fixtures/zen/helper/stacked_aspect.rb +54 -0
- data/spec/fixtures/zen/package/dashboard/controller/widget.rb +15 -0
- data/spec/fixtures/zen/package/dashboard/widget.rb +5 -0
- data/spec/fixtures/zen/theme/theme.rb +2 -2
- data/spec/helper.rb +19 -10
- data/spec/zen/controller/admin_controller.rb +3 -3
- data/spec/zen/controller/main_controller.rb +7 -7
- data/spec/zen/controller/preview.rb +3 -3
- data/spec/zen/event.rb +4 -4
- data/spec/zen/helper/breadcrumb.rb +4 -8
- data/spec/zen/helper/controller.rb +47 -4
- data/spec/zen/helper/locale.rb +3 -3
- data/spec/zen/helper/message.rb +4 -4
- data/spec/zen/helper/stacked_aspect.rb +40 -0
- data/spec/zen/helper/theme.rb +9 -9
- data/spec/zen/language.rb +8 -8
- data/spec/zen/markup.rb +6 -6
- data/spec/zen/package.rb +11 -9
- data/spec/zen/package/categories/controller/categories.rb +56 -24
- data/spec/zen/package/categories/controller/category_groups.rb +55 -23
- data/spec/zen/package/categories/helper/category.rb +5 -5
- data/spec/zen/package/categories/helper/category_frontend.rb +5 -5
- data/spec/zen/package/comments/anti_spam.rb +4 -4
- data/spec/zen/package/comments/controller/comments.rb +95 -24
- data/spec/zen/package/comments/controller/comments_form.rb +31 -26
- data/spec/zen/package/comments/helper/comment.rb +3 -3
- data/spec/zen/package/comments/helper/comment_frontend.rb +6 -6
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +8 -8
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +58 -27
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +57 -27
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +58 -27
- data/spec/zen/package/custom_fields/helper/custom_field.rb +7 -7
- data/spec/zen/package/dashboard/controller/dashboard.rb +147 -0
- data/spec/zen/package/dashboard/widget.rb +56 -0
- data/spec/zen/package/extensions/controller/extensions.rb +4 -4
- data/spec/zen/package/menus/controller/menu_items.rb +48 -39
- data/spec/zen/package/menus/controller/menus.rb +55 -24
- data/spec/zen/package/menus/helper/menu.rb +6 -14
- data/spec/zen/package/menus/helper/menu_frontend.rb +7 -7
- data/spec/zen/package/menus/model/menu.rb +121 -0
- data/spec/zen/package/menus/model/menu_item.rb +34 -0
- data/spec/zen/package/sections/controller/section_entries.rb +104 -39
- data/spec/zen/package/sections/controller/sections.rb +60 -27
- data/spec/zen/package/sections/helper/section.rb +5 -5
- data/spec/zen/package/sections/helper/section_frontend.rb +9 -9
- data/spec/zen/package/sections/widget.rb +44 -0
- data/spec/zen/package/settings/controller/settings.rb +18 -16
- data/spec/zen/package/settings/settings.rb +12 -12
- data/spec/zen/package/users/controller/user_groups.rb +61 -29
- data/spec/zen/package/users/controller/users.rb +118 -39
- data/spec/zen/package/users/helper/access.rb +3 -3
- data/spec/zen/package/users/helper/acl.rb +4 -4
- data/spec/zen/package/users/helper/users.rb +5 -5
- data/spec/zen/security.rb +25 -0
- data/spec/zen/theme.rb +20 -18
- data/spec/zen/validation.rb +5 -5
- data/spec/zen/vendor/sequel_sluggable.rb +12 -0
- data/zen.gemspec +27 -4
- metadata +182 -124
- data/AUTHORS +0 -4
- data/guide/_static/categories/categories.png +0 -0
- data/guide/_static/categories/category_groups.png +0 -0
- data/guide/_static/categories/new_category.png +0 -0
- data/guide/_static/categories/new_category_group.png +0 -0
- data/guide/_static/comments/comments.png +0 -0
- data/guide/_static/comments/edit_comment.png +0 -0
- data/guide/_static/custom_fields/custom_field_groups.png +0 -0
- data/guide/_static/custom_fields/custom_field_types.png +0 -0
- data/guide/_static/custom_fields/custom_fields.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_general.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_group.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_settings.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_type.png +0 -0
- data/guide/_static/menus/edit_menu.png +0 -0
- data/guide/_static/menus/edit_menu_item.png +0 -0
- data/guide/_static/menus/menu_items.png +0 -0
- data/guide/_static/menus/menus.png +0 -0
- data/guide/_static/sections/edit_entry.png +0 -0
- data/guide/_static/sections/edit_entry_categories.png +0 -0
- data/guide/_static/sections/edit_entry_general.png +0 -0
- data/guide/_static/sections/edit_entry_meta.png +0 -0
- data/guide/_static/sections/edit_section_comments.png +0 -0
- data/guide/_static/sections/edit_section_general.png +0 -0
- data/guide/_static/sections/edit_section_groups.png +0 -0
- data/guide/_static/sections/entries.png +0 -0
- data/guide/_static/sections/sections.png +0 -0
- data/guide/_static/settings/overview_general.png +0 -0
- data/guide/_static/settings/overview_security.png +0 -0
- data/guide/_static/settings/overview_user.png +0 -0
- data/guide/_static/users/edit_user.png +0 -0
- data/guide/_static/users/edit_user_group.png +0 -0
- data/guide/_static/users/edit_user_group_permissions.png +0 -0
- data/guide/_static/users/edit_user_permissions.png +0 -0
- data/guide/_static/users/overview.png +0 -0
- data/guide/_static/users/user_groups_overview.png +0 -0
- data/lib/zen/controller/translations.rb +0 -49
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +0 -113
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +0 -97
- data/lib/zen/public/admin/css/zen/buttons.css +0 -46
- data/lib/zen/public/admin/css/zen/editor.css +0 -88
- data/lib/zen/public/admin/css/zen/general.css +0 -109
- data/lib/zen/public/admin/css/zen/grid.css +0 -100
- data/lib/zen/public/admin/css/zen/layout.css +0 -184
- data/lib/zen/public/admin/css/zen/messages.css +0 -54
- data/lib/zen/public/admin/css/zen/tables.css +0 -97
- data/lib/zen/public/admin/css/zen/tabs.css +0 -47
- data/lib/zen/public/admin/css/zen/window.css +0 -73
- data/lib/zen/public/admin/images/zen/icons/accept.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/add.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/back.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/delete.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/help.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/info.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/logout.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/pdf.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/view.png +0 -0
- data/lib/zen/public/admin/js/zen/lib/tabs.js +0 -207
- data/lib/zen/view/main.xhtml +0 -19
|
@@ -10,15 +10,15 @@ module Users
|
|
|
10
10
|
# will show an overview of all existing groups or a message saying no groups
|
|
11
11
|
# have been added yet.
|
|
12
12
|
#
|
|
13
|
-
# 
|
|
14
14
|
#
|
|
15
15
|
# Editing a user group can be done by clicking on the name of the group,
|
|
16
16
|
# creating a new one can be done by clicking the button "New group". When
|
|
17
17
|
# creating or editing a group you'll be presented with the form shown in the
|
|
18
18
|
# images below.
|
|
19
19
|
#
|
|
20
|
-
# 
|
|
21
|
+
# 
|
|
22
22
|
#
|
|
23
23
|
# In this form you can fill in the following fields:
|
|
24
24
|
#
|
|
@@ -45,32 +45,21 @@ module Users
|
|
|
45
45
|
# * new_user_group
|
|
46
46
|
# * delete_user_group
|
|
47
47
|
#
|
|
48
|
-
# ## Events
|
|
49
|
-
#
|
|
50
|
-
# All events in this controller receive an instance of
|
|
51
|
-
# {Users::Model::UserGroup}. Just like other controllers the event
|
|
52
|
-
# ``after_delete_user_group`` will receive a user group that has already
|
|
53
|
-
# been destroyed using ``#destroy()``.
|
|
54
|
-
#
|
|
55
48
|
# @since 0.1
|
|
56
49
|
# @map /admin/user-groups
|
|
57
|
-
# @event before_new_user_group
|
|
58
|
-
# @event after_new_user_user
|
|
59
|
-
# @event before_edit_user_group
|
|
60
|
-
# @event after_edit_user_group
|
|
61
|
-
# @event before_delete_user_group
|
|
62
|
-
# @event after_delete_user_group
|
|
63
50
|
#
|
|
64
51
|
class UserGroups < Zen::Controller::AdminController
|
|
65
52
|
helper :users
|
|
66
53
|
map '/admin/user-groups'
|
|
67
54
|
title 'user_groups.titles.%s'
|
|
68
55
|
|
|
56
|
+
autosave Model::UserGroup, Model::UserGroup::COLUMNS, :edit_user_group
|
|
57
|
+
|
|
69
58
|
csrf_protection :save, :delete
|
|
70
59
|
load_asset_group :tabs
|
|
71
60
|
|
|
72
|
-
serve :javascript, ['/admin/js/users
|
|
73
|
-
serve :css, ['/admin/css/users
|
|
61
|
+
serve :javascript, ['/admin/users/js/users'], :name => 'users'
|
|
62
|
+
serve :css, ['/admin/users/css/users.css'], :name => 'users'
|
|
74
63
|
|
|
75
64
|
before(:index, :edit, :new) do
|
|
76
65
|
@boolean_hash = {
|
|
@@ -114,7 +103,8 @@ module Users
|
|
|
114
103
|
lang('user_groups.titles.edit')
|
|
115
104
|
)
|
|
116
105
|
|
|
117
|
-
@user_group =
|
|
106
|
+
@user_group = validate_user_group(id)
|
|
107
|
+
@user_group.set(flash[:form_data]) if flash[:form_data]
|
|
118
108
|
@permissions = @user_group.permissions.map { |p| p.permission.to_sym }
|
|
119
109
|
|
|
120
110
|
render_view(:form)
|
|
@@ -134,7 +124,8 @@ module Users
|
|
|
134
124
|
lang('user_groups.titles.new')
|
|
135
125
|
)
|
|
136
126
|
|
|
137
|
-
@user_group =
|
|
127
|
+
@user_group = Model::UserGroup.new
|
|
128
|
+
@user_group.set(flash[:form_data]) if flash[:form_data]
|
|
138
129
|
|
|
139
130
|
render_view(:form)
|
|
140
131
|
end
|
|
@@ -146,45 +137,34 @@ module Users
|
|
|
146
137
|
# @since 0.1
|
|
147
138
|
# @permission new_user_group (when creating a new group)
|
|
148
139
|
# @permission edit_user_group (when editing a group)
|
|
149
|
-
# @event before_new_user_group
|
|
150
|
-
# @event after_new_user_group
|
|
151
|
-
# @event before_edit_user_group
|
|
152
|
-
# @event after_edit_user_group
|
|
153
140
|
#
|
|
154
141
|
def save
|
|
155
|
-
post =
|
|
142
|
+
post = post_fields(*Model::UserGroup::COLUMNS)
|
|
143
|
+
id = request.params['id']
|
|
156
144
|
|
|
157
|
-
if
|
|
145
|
+
if id and !id.empty?
|
|
158
146
|
authorize_user!(:edit_user_group)
|
|
159
147
|
|
|
160
|
-
user_group
|
|
161
|
-
save_action
|
|
162
|
-
before_event = :before_edit_user_group
|
|
163
|
-
after_event = :after_edit_user_group
|
|
148
|
+
user_group = validate_user_group(id)
|
|
149
|
+
save_action = :save
|
|
164
150
|
else
|
|
165
151
|
authorize_user!(:new_user_group)
|
|
166
152
|
|
|
167
|
-
user_group
|
|
168
|
-
save_action
|
|
169
|
-
before_event = :before_new_user_group
|
|
170
|
-
after_event = :after_new_user_group
|
|
153
|
+
user_group = Model::UserGroup.new
|
|
154
|
+
save_action = :new
|
|
171
155
|
end
|
|
172
156
|
|
|
173
|
-
post.delete('id')
|
|
174
|
-
|
|
175
157
|
success = lang("user_groups.success.#{save_action}")
|
|
176
158
|
error = lang("user_groups.errors.#{save_action}")
|
|
177
159
|
|
|
178
160
|
begin
|
|
179
|
-
|
|
180
|
-
Zen::Event.call(before_event, user_group)
|
|
181
|
-
|
|
161
|
+
user_group.set(post)
|
|
182
162
|
user_group.save
|
|
183
163
|
rescue => e
|
|
184
|
-
Ramaze::Log.error(e
|
|
164
|
+
Ramaze::Log.error(e)
|
|
185
165
|
message(:error, error)
|
|
186
166
|
|
|
187
|
-
flash[:form_data] =
|
|
167
|
+
flash[:form_data] = post
|
|
188
168
|
flash[:form_errors] = user_group.errors
|
|
189
169
|
|
|
190
170
|
redirect_referrer
|
|
@@ -199,8 +179,6 @@ module Users
|
|
|
199
179
|
)
|
|
200
180
|
end
|
|
201
181
|
|
|
202
|
-
Zen::Event.call(after_event, user_group)
|
|
203
|
-
|
|
204
182
|
message(:success, success)
|
|
205
183
|
redirect(UserGroups.r(:edit, user_group.id))
|
|
206
184
|
end
|
|
@@ -210,8 +188,6 @@ module Users
|
|
|
210
188
|
#
|
|
211
189
|
# @since 0.1
|
|
212
190
|
# @permission delete_user_group
|
|
213
|
-
# @event before_delete_user_group
|
|
214
|
-
# @event after_delete_user_group
|
|
215
191
|
#
|
|
216
192
|
def delete
|
|
217
193
|
authorize_user!(:delete_user_group)
|
|
@@ -226,21 +202,18 @@ module Users
|
|
|
226
202
|
group = ::Users::Model::UserGroup[id]
|
|
227
203
|
|
|
228
204
|
next if group.nil?
|
|
229
|
-
Zen::Event.call(:before_delete_user_group, group)
|
|
230
205
|
|
|
231
206
|
begin
|
|
232
207
|
group.destroy
|
|
233
208
|
rescue => e
|
|
234
|
-
Ramaze::Log.error(e
|
|
209
|
+
Ramaze::Log.error(e)
|
|
235
210
|
message(:error, lang('user_groups.errors.delete') % id)
|
|
236
211
|
|
|
237
212
|
redirect_referrer
|
|
238
213
|
end
|
|
239
|
-
|
|
240
|
-
Zen::Event.call(:after_delete_user_group, group)
|
|
241
214
|
end
|
|
242
215
|
|
|
243
|
-
message(:success,
|
|
216
|
+
message(:success, lang('user_groups.success.delete'))
|
|
244
217
|
redirect_referrer
|
|
245
218
|
end
|
|
246
219
|
end # UserGroups
|
|
@@ -37,14 +37,14 @@ module Users
|
|
|
37
37
|
# permissions) you should see a page that looks like the one shown in the
|
|
38
38
|
# image below.
|
|
39
39
|
#
|
|
40
|
-
# 
|
|
41
41
|
#
|
|
42
42
|
# This overview allows you to edit users (by clicking on their Email
|
|
43
43
|
# addresses), create new ones or delete existing users. When editing or
|
|
44
44
|
# creating a user you'll be presented a form as shown in the images below.
|
|
45
45
|
#
|
|
46
|
-
# 
|
|
47
|
+
# 
|
|
48
48
|
#
|
|
49
49
|
# In this form the following fields can be filled:
|
|
50
50
|
#
|
|
@@ -78,32 +78,8 @@ module Users
|
|
|
78
78
|
# * edit_user
|
|
79
79
|
# * delete_user
|
|
80
80
|
#
|
|
81
|
-
# ## Events
|
|
82
|
-
#
|
|
83
|
-
# Events in this controller receive an instance of {Users::Model::User}, the
|
|
84
|
-
# ``after_delete_user`` event receives an instance that has already been
|
|
85
|
-
# destroyed. Keep in mind that changing the Email address or password of a
|
|
86
|
-
# user will cause their session to no longer be valid, requiring them to log
|
|
87
|
-
# in again.
|
|
88
|
-
#
|
|
89
|
-
# @example Sending an Email for a new user
|
|
90
|
-
# Zen::Event.listen(:after_new_user) do |user|
|
|
91
|
-
# Mail.deliver do
|
|
92
|
-
# from 'user@domain.tld'
|
|
93
|
-
# to user.email
|
|
94
|
-
# subject 'Your new account'
|
|
95
|
-
# body "Dear #{user.name}, your account has been created."
|
|
96
|
-
# end
|
|
97
|
-
# end
|
|
98
|
-
#
|
|
99
81
|
# @since 0.1
|
|
100
82
|
# @map /admin/users
|
|
101
|
-
# @event before_new_user
|
|
102
|
-
# @event after_new_user
|
|
103
|
-
# @event before_edit_user
|
|
104
|
-
# @event after_edit_user
|
|
105
|
-
# @event before_delete_user
|
|
106
|
-
# @event after_delete_user
|
|
107
83
|
# @event user_login
|
|
108
84
|
# @event before_register_user
|
|
109
85
|
# @event after_register_user
|
|
@@ -114,13 +90,14 @@ module Users
|
|
|
114
90
|
title 'users.titles.%s'
|
|
115
91
|
allow [:login, :logout, :register]
|
|
116
92
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
serve :javascript, ['/admin/js/users/permissions'], :minify => false
|
|
120
|
-
serve :css, ['/admin/css/users/permissions'], :minify => false
|
|
93
|
+
autosave Model::User, Model::User::COLUMNS, :edit_user
|
|
121
94
|
|
|
95
|
+
csrf_protection :save, :delete
|
|
122
96
|
load_asset_group :tabs
|
|
123
97
|
|
|
98
|
+
serve :javascript, ['/admin/users/js/users'], :name => 'users'
|
|
99
|
+
serve :css, ['/admin/users/css/users.css'], :name => 'users'
|
|
100
|
+
|
|
124
101
|
set_layout :admin => [:index, :edit, :new],
|
|
125
102
|
:login => [:login, :register]
|
|
126
103
|
|
|
@@ -137,10 +114,10 @@ module Users
|
|
|
137
114
|
set_breadcrumbs(lang('users.titles.index'))
|
|
138
115
|
|
|
139
116
|
@users = search do |query|
|
|
140
|
-
|
|
117
|
+
Model::User.search(query).order(:id.asc)
|
|
141
118
|
end
|
|
142
119
|
|
|
143
|
-
@users ||=
|
|
120
|
+
@users ||= Model::User.order(:id.asc)
|
|
144
121
|
@users = @users.eager(:user_status)
|
|
145
122
|
@users = paginate(@users)
|
|
146
123
|
end
|
|
@@ -153,15 +130,17 @@ module Users
|
|
|
153
130
|
# @permission edit_user
|
|
154
131
|
#
|
|
155
132
|
def edit(id)
|
|
156
|
-
authorize_user!(:edit_user)
|
|
133
|
+
authorize_user!(:edit_user) unless user.id == id.to_i
|
|
157
134
|
|
|
158
135
|
set_breadcrumbs(
|
|
159
136
|
Users.a(lang('users.titles.index'), :index),
|
|
160
137
|
lang('users.titles.edit')
|
|
161
138
|
)
|
|
162
139
|
|
|
163
|
-
@user
|
|
164
|
-
@
|
|
140
|
+
@user = validate_user(id)
|
|
141
|
+
@user.set(flash[:form_data]) if flash[:form_data]
|
|
142
|
+
|
|
143
|
+
@user_group_pks = Model::UserGroup.pk_hash(:name).invert
|
|
165
144
|
@permissions = @user.permissions.map { |p| p.permission.to_sym }
|
|
166
145
|
|
|
167
146
|
render_view(:form)
|
|
@@ -181,8 +160,10 @@ module Users
|
|
|
181
160
|
lang('users.titles.new')
|
|
182
161
|
)
|
|
183
162
|
|
|
184
|
-
@user =
|
|
185
|
-
@user_group_pks =
|
|
163
|
+
@user = Model::User.new
|
|
164
|
+
@user_group_pks = Model::UserGroup.pk_hash(:name).invert
|
|
165
|
+
|
|
166
|
+
@user.set(flash[:form_data]) if flash[:form_data]
|
|
186
167
|
|
|
187
168
|
render_view(:form)
|
|
188
169
|
end
|
|
@@ -196,12 +177,12 @@ module Users
|
|
|
196
177
|
def login
|
|
197
178
|
if request.post?
|
|
198
179
|
# Let's see if we can authenticate
|
|
199
|
-
if user_login(
|
|
180
|
+
if user_login(post_fields(:email, :password))
|
|
200
181
|
user.update(:last_login => Time.new)
|
|
201
182
|
|
|
202
183
|
Zen::Event.call(:user_login, user)
|
|
203
184
|
message(:success, lang('users.success.login'))
|
|
204
|
-
redirect(::
|
|
185
|
+
redirect(Dashboard::Controller::Dashboard.r(:index))
|
|
205
186
|
else
|
|
206
187
|
message(:error, lang('users.errors.login'))
|
|
207
188
|
end
|
|
@@ -238,16 +219,17 @@ module Users
|
|
|
238
219
|
# @event after_register_user
|
|
239
220
|
#
|
|
240
221
|
def register
|
|
241
|
-
redirect(::
|
|
222
|
+
redirect(Dashboard::Controller::Dashboard.r(:index)) if logged_in?
|
|
242
223
|
redirect(r(:login)) unless get_setting(:allow_registration).true?
|
|
243
224
|
|
|
244
225
|
if request.post?
|
|
245
|
-
post =
|
|
226
|
+
post = post_fields(:name, :email, :password)
|
|
246
227
|
user = Model::User.new(post)
|
|
247
228
|
|
|
248
229
|
# Check if the passwords match.
|
|
249
230
|
if post['password'] != request.params['confirm_password']
|
|
250
|
-
|
|
231
|
+
post.delete('password')
|
|
232
|
+
flash[:form_data] = post
|
|
251
233
|
|
|
252
234
|
message(:error, lang('users.errors.no_password_match'))
|
|
253
235
|
redirect(r(:register))
|
|
@@ -258,11 +240,13 @@ module Users
|
|
|
258
240
|
begin
|
|
259
241
|
user.save
|
|
260
242
|
rescue => e
|
|
261
|
-
Ramaze::Log.error(e
|
|
243
|
+
Ramaze::Log.error(e)
|
|
262
244
|
message(:error, lang('users.errors.register'))
|
|
263
245
|
|
|
246
|
+
post.delete('password')
|
|
247
|
+
|
|
264
248
|
flash[:form_errors] = user.errors
|
|
265
|
-
flash[:form_data] =
|
|
249
|
+
flash[:form_data] = post
|
|
266
250
|
|
|
267
251
|
redirect(r(:register))
|
|
268
252
|
end
|
|
@@ -273,7 +257,8 @@ module Users
|
|
|
273
257
|
redirect(r(:login))
|
|
274
258
|
end
|
|
275
259
|
|
|
276
|
-
@user =
|
|
260
|
+
@user = Model::User.new
|
|
261
|
+
@uset.set(flash[:form_data]) if flash[:form_data]
|
|
277
262
|
end
|
|
278
263
|
|
|
279
264
|
##
|
|
@@ -282,40 +267,21 @@ module Users
|
|
|
282
267
|
# @since 0.1
|
|
283
268
|
# @permission new_user (when creating a new user)
|
|
284
269
|
# @permission edit_user (when editing a user)
|
|
285
|
-
# @event before_new_user
|
|
286
|
-
# @event after_new_user
|
|
287
|
-
# @event before_edit_user
|
|
288
|
-
# @event after_edit_user
|
|
289
270
|
#
|
|
290
271
|
def save
|
|
291
|
-
post =
|
|
292
|
-
|
|
293
|
-
:email,
|
|
294
|
-
:name,
|
|
295
|
-
:website,
|
|
296
|
-
:password,
|
|
297
|
-
:confirm_password,
|
|
298
|
-
:user_status_id,
|
|
299
|
-
:language,
|
|
300
|
-
:frontend_language,
|
|
301
|
-
:date_format,
|
|
302
|
-
:user_group_pks
|
|
303
|
-
)
|
|
272
|
+
post = post_fields(*Model::User::COLUMNS)
|
|
273
|
+
id = request.params['id']
|
|
304
274
|
|
|
305
|
-
if
|
|
306
|
-
authorize_user!(:edit_user)
|
|
275
|
+
if id and !id.empty?
|
|
276
|
+
authorize_user!(:edit_user) unless id.to_i == user.id
|
|
307
277
|
|
|
308
|
-
user
|
|
309
|
-
save_action
|
|
310
|
-
before_event = :before_edit_user
|
|
311
|
-
after_event = :after_edit_user
|
|
278
|
+
user = validate_user(id)
|
|
279
|
+
save_action = :save
|
|
312
280
|
else
|
|
313
281
|
authorize_user!(:new_user)
|
|
314
282
|
|
|
315
|
-
user
|
|
316
|
-
save_action
|
|
317
|
-
before_event = :before_new_user
|
|
318
|
-
after_event = :after_new_user
|
|
283
|
+
user = Model::User.new
|
|
284
|
+
save_action = :new
|
|
319
285
|
end
|
|
320
286
|
|
|
321
287
|
if post['password'] != post['confirm_password']
|
|
@@ -324,23 +290,32 @@ module Users
|
|
|
324
290
|
end
|
|
325
291
|
|
|
326
292
|
post.delete('confirm_password')
|
|
327
|
-
post.delete('id')
|
|
328
293
|
|
|
329
294
|
post['user_group_pks'] ||= []
|
|
330
|
-
success
|
|
331
|
-
error
|
|
295
|
+
success = lang("users.success.#{save_action}")
|
|
296
|
+
error = lang("users.errors.#{save_action}")
|
|
297
|
+
|
|
298
|
+
unless user_authorized?(:assign_user_group)
|
|
299
|
+
post.delete('user_group_pks')
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
unless user_authorized?(:edit_user_status)
|
|
303
|
+
post.delete('user_status_id')
|
|
304
|
+
end
|
|
332
305
|
|
|
333
306
|
begin
|
|
334
307
|
post.each { |k, v| user.send("#{k}=", v) }
|
|
335
|
-
Zen::Event.call(before_event, user)
|
|
336
308
|
|
|
337
309
|
user.save
|
|
338
|
-
|
|
310
|
+
|
|
311
|
+
if save_action == :new and post['user_group_pks']
|
|
312
|
+
user.user_group_pks = post['user_group_pks']
|
|
313
|
+
end
|
|
339
314
|
rescue => e
|
|
340
|
-
Ramaze::Log.error(e
|
|
315
|
+
Ramaze::Log.error(e)
|
|
341
316
|
message(:error, error)
|
|
342
317
|
|
|
343
|
-
flash[:form_data] =
|
|
318
|
+
flash[:form_data] = post
|
|
344
319
|
flash[:form_errors] = user.errors
|
|
345
320
|
|
|
346
321
|
redirect_referrer
|
|
@@ -356,8 +331,6 @@ module Users
|
|
|
356
331
|
)
|
|
357
332
|
end
|
|
358
333
|
|
|
359
|
-
Zen::Event.call(after_event, user)
|
|
360
|
-
|
|
361
334
|
message(:success, success)
|
|
362
335
|
redirect(Users.r(:edit, user.id))
|
|
363
336
|
end
|
|
@@ -367,8 +340,6 @@ module Users
|
|
|
367
340
|
#
|
|
368
341
|
# @since 0.1
|
|
369
342
|
# @permission delete_user
|
|
370
|
-
# @event before_delete_user
|
|
371
|
-
# @event after_delete_user
|
|
372
343
|
#
|
|
373
344
|
def delete
|
|
374
345
|
authorize_user!(:delete_user)
|
|
@@ -379,22 +350,19 @@ module Users
|
|
|
379
350
|
end
|
|
380
351
|
|
|
381
352
|
request.params['user_ids'].each do |id|
|
|
382
|
-
user =
|
|
353
|
+
user = Model::User[id]
|
|
383
354
|
|
|
384
355
|
next if user.nil?
|
|
385
|
-
Zen::Event.call(:before_delete_user, user)
|
|
386
356
|
|
|
387
357
|
begin
|
|
388
358
|
user.user_group_pks = []
|
|
389
359
|
user.destroy
|
|
390
360
|
rescue => e
|
|
391
|
-
Ramaze::Log.error(e
|
|
361
|
+
Ramaze::Log.error(e)
|
|
392
362
|
message(:error, lang('users.errors.delete') % id)
|
|
393
363
|
|
|
394
364
|
redirect_referrer
|
|
395
365
|
end
|
|
396
|
-
|
|
397
|
-
Zen::Event.call(:after_delete_user, user)
|
|
398
366
|
end
|
|
399
367
|
|
|
400
368
|
message(:success, lang('users.success.delete'))
|