zen 0.2.7 → 0.2.8
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/.gitignore +15 -0
- data/.mailmap +2 -0
- data/.rvmrc +2 -0
- data/.travis.yml +8 -3
- data/AUTHORS +1 -2
- data/CHANGELOG.md +48 -17
- data/README.md +44 -39
- data/Rakefile +4 -0
- data/bin/zen +5 -30
- data/lib/zen.rb +13 -19
- data/lib/zen/asset.rb +99 -64
- data/lib/zen/bin/create.rb +94 -0
- data/lib/zen/bin/runner.rb +118 -0
- data/lib/zen/controller/admin_controller.rb +52 -36
- data/lib/zen/controller/base_controller.rb +5 -5
- data/lib/zen/controller/frontend_controller.rb +7 -7
- data/lib/zen/controller/main_controller.rb +12 -10
- data/lib/zen/controller/preview.rb +15 -11
- data/lib/zen/helper/acl.rb +73 -53
- data/lib/zen/helper/blue_form_vendor.rb +689 -0
- data/lib/zen/helper/breadcrumb.rb +23 -19
- data/lib/zen/helper/message.rb +3 -3
- data/lib/zen/helper/theme.rb +18 -13
- data/lib/zen/language.rb +62 -58
- data/lib/zen/language/en/zen_general.yml +2 -4
- data/lib/zen/language/nl/zen_general.yml +2 -4
- data/lib/zen/layout/admin.xhtml +3 -12
- data/lib/zen/layout/login.xhtml +1 -6
- data/lib/zen/model/methods.rb +6 -6
- data/lib/zen/model/settings.rb +5 -4
- data/lib/zen/package.rb +47 -38
- data/lib/zen/package/all.rb +3 -5
- data/lib/zen/package/base.rb +7 -7
- data/lib/zen/package/categories/lib/categories.rb +8 -3
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +81 -55
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +45 -44
- data/lib/zen/package/categories/lib/categories/helper/category.rb +88 -0
- data/lib/zen/package/categories/lib/categories/language/en/categories.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +5 -4
- data/lib/zen/package/categories/lib/categories/model/category.rb +15 -13
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +3 -3
- data/lib/zen/package/categories/lib/categories/plugin/categories.rb +36 -25
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +49 -56
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +48 -35
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +36 -29
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +42 -37
- data/lib/zen/package/comments/lib/comments.rb +4 -1
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +39 -32
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +45 -26
- data/lib/zen/package/comments/lib/comments/helper/comment.rb +35 -0
- data/lib/zen/package/comments/lib/comments/language/en/comments.yml +9 -7
- data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +10 -8
- data/lib/zen/package/comments/lib/comments/model/comment.rb +31 -17
- data/lib/zen/package/comments/lib/comments/model/comment_status.rb +15 -0
- data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +27 -18
- data/lib/zen/package/comments/lib/comments/plugin/comments.rb +25 -20
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +61 -54
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +38 -23
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +60 -0
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +33 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +209 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +50 -47
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +215 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +111 -73
- data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +79 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +20 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +40 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +34 -32
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +5 -4
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +40 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +18 -16
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +31 -11
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +15 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +50 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +28 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +33 -28
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +48 -46
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +61 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +93 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +105 -99
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +43 -39
- data/lib/zen/package/custom_fields/migrations/1295255665_create_schema.rb +47 -16
- data/lib/zen/package/custom_fields/migrations/1310659580_custom_field_types.rb +148 -0
- data/lib/zen/package/custom_fields/migrations/1311694920_rename_css_class.rb +11 -0
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +40 -35
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +47 -43
- data/lib/zen/package/menus/lib/menus/helper/{menu_item.rb → menu.rb} +42 -15
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +5 -5
- data/lib/zen/package/menus/lib/menus/language/en/menus.yml +9 -8
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +8 -8
- data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +11 -10
- data/lib/zen/package/menus/lib/menus/model/menu.rb +5 -5
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +6 -5
- data/lib/zen/package/menus/lib/menus/plugin/menus.rb +41 -43
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +59 -63
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +35 -30
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +46 -37
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +37 -37
- data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +5 -5
- data/lib/zen/package/menus/migrations/1308671733_rename_order_column.rb +11 -0
- data/lib/zen/package/menus/migrations/1311695030_rename_css_class.rb +17 -0
- data/lib/zen/package/sections/lib/sections.rb +18 -11
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +115 -109
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +72 -50
- data/lib/zen/package/sections/lib/sections/helper/section.rb +53 -0
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/en/sections.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +5 -4
- data/lib/zen/package/sections/lib/sections/model/section.rb +17 -9
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +192 -13
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +13 -0
- data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +60 -39
- data/lib/zen/package/sections/lib/sections/plugin/sections.rb +14 -11
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +100 -97
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +41 -39
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +95 -215
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +48 -40
- data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +40 -0
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +58 -0
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +5 -8
- data/lib/zen/package/settings/lib/settings/model/setting.rb +2 -37
- data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +18 -1
- data/lib/zen/package/settings/lib/settings/plugin/settings.rb +13 -7
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +2 -1
- data/lib/zen/package/users/lib/users.rb +3 -1
- data/lib/zen/package/users/lib/users/controller/access_rules.rb +77 -60
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +41 -36
- data/lib/zen/package/users/lib/users/controller/users.rb +48 -42
- data/lib/zen/package/users/lib/users/helper/users.rb +72 -0
- data/lib/zen/package/users/lib/users/language/en/access_rules.yml +6 -5
- data/lib/zen/package/users/lib/users/language/en/user_groups.yml +5 -4
- data/lib/zen/package/users/lib/users/language/en/users.yml +1 -0
- data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +5 -4
- data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +5 -4
- data/lib/zen/package/users/lib/users/language/nl/users.yml +1 -0
- data/lib/zen/package/users/lib/users/model/access_rule.rb +5 -1
- data/lib/zen/package/users/lib/users/model/user.rb +17 -10
- data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +10 -37
- data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +49 -0
- data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +105 -96
- data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +48 -41
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +42 -32
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +43 -38
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +76 -67
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +43 -41
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +12 -9
- data/lib/zen/package/users/migrations/1295281013_create_schema.rb +2 -2
- data/lib/zen/plugin.rb +56 -50
- data/lib/zen/plugin/markup/lib/markup/markup.rb +33 -21
- data/lib/zen/public/admin/css/zen/buttons.css +11 -7
- data/lib/zen/public/admin/css/zen/datepicker.css +6 -6
- data/lib/zen/public/admin/css/zen/forms.css +2 -1
- data/lib/zen/public/admin/css/zen/general.css +15 -10
- data/lib/zen/public/admin/css/zen/layout.css +51 -20
- data/lib/zen/public/admin/css/zen/tables.css +39 -11
- data/lib/zen/public/admin/css/zen/tabs.css +6 -4
- data/lib/zen/public/admin/css/zen/window.css +11 -11
- data/lib/zen/public/{favicon.ico → admin/favicon.ico} +0 -0
- data/lib/zen/public/admin/images/zen/icons/asc.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/desc.png +0 -0
- data/lib/zen/public/admin/js/vendor/datepicker.js +0 -11
- data/lib/zen/public/admin/js/{mootools → vendor/mootools}/core.js +0 -1
- data/lib/zen/public/admin/js/{mootools → vendor/mootools}/more.js +100 -29
- data/lib/zen/public/admin/js/zen/index.js +48 -0
- data/lib/zen/public/admin/js/zen/lib/asset.js +111 -0
- data/lib/zen/public/admin/js/zen/{editor.js → lib/editor.js} +107 -127
- data/lib/zen/public/admin/js/zen/{editor → lib/editor}/markdown.js +7 -9
- data/lib/zen/public/admin/js/zen/{editor → lib/editor}/textile.js +7 -9
- data/lib/zen/public/admin/js/zen/lib/html_table.js +143 -0
- data/lib/zen/public/admin/js/zen/{tabs.js → lib/tabs.js} +40 -37
- data/lib/zen/public/admin/js/zen/{window.js → lib/window.js} +24 -20
- data/lib/zen/spec/bacon/color_output.rb +39 -0
- data/lib/zen/spec/helper.rb +152 -0
- data/lib/zen/spec/simplecov.rb +22 -0
- data/lib/zen/task/build.rake +20 -43
- data/lib/zen/task/clean.rake +2 -6
- data/lib/zen/task/db.rake +8 -12
- data/lib/zen/task/package.rake +4 -10
- data/lib/zen/task/plugin.rake +3 -9
- data/lib/zen/task/proto.rake +0 -62
- data/lib/zen/task/test.rake +6 -3
- data/lib/zen/task/theme.rake +4 -11
- data/lib/zen/theme.rb +22 -24
- data/lib/zen/validation.rb +34 -27
- data/lib/zen/version.rb +2 -8
- data/lib/zen/view/head.xhtml +7 -0
- data/lib/zen/view/main.xhtml +7 -22
- data/{proto/package/migrations → pkg}/.gitkeep +0 -0
- data/proto/app/app.rb +1 -0
- data/proto/app/config/config.rb +5 -4
- data/proto/app/config/database.rb +19 -41
- data/proto/app/config/middlewares.rb +32 -29
- data/proto/{package/lib/package/view/admin/package/index.xhtml → app/log/database/dev/.gitkeep} +0 -0
- data/proto/app/log/database/live/.gitkeep +0 -0
- data/spec/Rakefile +26 -0
- data/spec/fixtures/zen/asset.rb +18 -0
- data/spec/fixtures/zen/helper/acl.rb +39 -0
- data/spec/fixtures/zen/helper/message.rb +19 -0
- data/spec/fixtures/zen/language/en/spec.yml +10 -0
- data/spec/fixtures/zen/language/nl/spec.yml +7 -0
- data/spec/fixtures/zen/package.rb +17 -0
- data/spec/fixtures/zen/package/comments/controller/comments_form.rb +27 -0
- data/spec/fixtures/zen/package/settings/plugin/settings.rb +20 -0
- data/spec/fixtures/zen/plugin.rb +7 -0
- data/spec/fixtures/zen/theme/404.xhtml +1 -0
- data/spec/fixtures/zen/theme/default-section/index.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/404.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/wrong_partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/partials/partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/theme.rb +11 -0
- data/spec/fixtures/zen/validation.rb +22 -0
- data/spec/helper.rb +41 -0
- data/spec/zen/all.rb +5 -0
- data/spec/zen/asset.rb +97 -0
- data/spec/zen/bin/create.rb +89 -0
- data/spec/zen/bin/runner.rb +47 -0
- data/spec/zen/controller/admin_controller.rb +26 -0
- data/spec/zen/controller/main_controller.rb +81 -0
- data/spec/zen/controller/preview.rb +33 -0
- data/spec/zen/helper/acl.rb +149 -0
- data/spec/zen/helper/breadcrumb.rb +38 -0
- data/spec/zen/helper/message.rb +31 -0
- data/spec/zen/helper/theme.rb +58 -0
- data/spec/zen/language.rb +55 -0
- data/spec/zen/package.rb +23 -0
- data/spec/zen/package/categories/controller/categories.rb +123 -0
- data/spec/zen/package/categories/controller/category_groups.rb +108 -0
- data/spec/zen/package/categories/helper/category.rb +75 -0
- data/spec/zen/package/categories/plugin/categories.rb +92 -0
- data/spec/zen/package/comments/controller/comments.rb +134 -0
- data/spec/zen/package/comments/controller/comments_form.rb +343 -0
- data/spec/zen/package/comments/helper/comment.rb +47 -0
- data/spec/zen/package/comments/plugin/anti_spam.rb +59 -0
- data/spec/zen/package/comments/plugin/comments.rb +107 -0
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +183 -0
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +120 -0
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +169 -0
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +158 -0
- data/spec/zen/package/custom_fields/helper/custom_field.rb +86 -0
- data/spec/zen/package/menus/controller/menu_items.rb +110 -0
- data/spec/zen/package/menus/controller/menus.rb +110 -0
- data/spec/zen/package/menus/helper/menu.rb +75 -0
- data/spec/zen/package/menus/plugin/menus.rb +120 -0
- data/spec/zen/package/sections/controller/section_entries.rb +201 -0
- data/spec/zen/package/sections/controller/sections.rb +116 -0
- data/spec/zen/package/sections/helper/section.rb +74 -0
- data/spec/zen/package/sections/plugin/section_entries.rb +161 -0
- data/spec/zen/package/sections/plugin/sections.rb +75 -0
- data/spec/zen/package/settings/controller/settings.rb +36 -0
- data/spec/zen/package/settings/plugin/settings.rb +33 -0
- data/spec/zen/package/users/controller/access_rules.rb +90 -0
- data/spec/zen/package/users/controller/user_groups.rb +101 -0
- data/spec/zen/package/users/controller/users.rb +130 -0
- data/spec/zen/package/users/helper/users.rb +97 -0
- data/spec/zen/plugin.rb +64 -0
- data/spec/zen/plugin/helper.rb +11 -0
- data/spec/zen/plugin/markup.rb +44 -0
- data/spec/zen/theme.rb +41 -0
- data/spec/zen/validation.rb +63 -0
- data/zen.gemspec +36 -0
- metadata +159 -113
- data/MANIFEST +0 -266
- data/lib/zen/bin/app.rb +0 -40
- data/lib/zen/ext/string.rb +0 -185
- data/lib/zen/helper/common.rb +0 -106
- data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +0 -7
- data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +0 -7
- data/lib/zen/plugin/controller.rb +0 -59
- data/lib/zen/public/admin/css/zen/notifications.css +0 -84
- data/lib/zen/public/admin/images/zen/icons/large/error.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/large/notice.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/large/success.png +0 -0
- data/lib/zen/public/admin/js/zen/core.js +0 -73
- data/lib/zen/public/admin/js/zen/init.js +0 -80
- data/proto/package/lib/package.rb +0 -21
- data/proto/package/lib/package/controller/controllers.rb +0 -50
- data/proto/package/lib/package/language/en/languages.yml +0 -4
- data/proto/package/lib/package/model/model.rb +0 -12
|
@@ -2,21 +2,22 @@
|
|
|
2
2
|
<header>
|
|
3
3
|
<h1>#{get_breadcrumbs}</h1>
|
|
4
4
|
</header>
|
|
5
|
-
|
|
6
|
-
<form method="post"
|
|
5
|
+
|
|
6
|
+
<form method="post"
|
|
7
|
+
action="#{Sections::Controller::SectionEntries.r(:delete)}">
|
|
7
8
|
<input type="hidden" name="csrf_token" value="#{get_csrf_token}" />
|
|
8
|
-
|
|
9
|
-
<?r if
|
|
10
|
-
|
|
11
|
-
<table
|
|
9
|
+
|
|
10
|
+
<?r if !@entries.empty? ?>
|
|
11
|
+
|
|
12
|
+
<table>
|
|
12
13
|
<thead>
|
|
13
14
|
<tr>
|
|
14
15
|
<?r if user_authorized?([:delete]) ?>
|
|
15
|
-
<th>
|
|
16
|
+
<th class="no_sort">
|
|
16
17
|
<input type="checkbox" />
|
|
17
18
|
</th>
|
|
18
19
|
<?r end ?>
|
|
19
|
-
|
|
20
|
+
|
|
20
21
|
<th>#{lang('section_entries.labels.id')}</th>
|
|
21
22
|
<th>#{lang('section_entries.labels.title')}</th>
|
|
22
23
|
<th>#{lang('section_entries.labels.slug')}</th>
|
|
@@ -30,59 +31,66 @@
|
|
|
30
31
|
<tr>
|
|
31
32
|
<?r if user_authorized?([:delete]) ?>
|
|
32
33
|
<td>
|
|
33
|
-
<input type="checkbox" name="section_entry_ids[]"
|
|
34
|
+
<input type="checkbox" name="section_entry_ids[]"
|
|
35
|
+
value="#{entry.id}" />
|
|
34
36
|
</td>
|
|
35
37
|
<?r end ?>
|
|
36
|
-
|
|
38
|
+
|
|
37
39
|
<td>#{entry.id}</td>
|
|
38
|
-
|
|
40
|
+
|
|
39
41
|
<?r if user_authorized?([:update]) ?>
|
|
40
42
|
<td>
|
|
41
|
-
#{
|
|
42
|
-
entry.title,
|
|
43
|
-
Sections::Controller::SectionEntries.r(:edit, @section_id, entry.id)
|
|
43
|
+
#{Sections::Controller::SectionEntries.a(
|
|
44
|
+
entry.title, :edit, @section_id, entry.id
|
|
44
45
|
)}
|
|
45
46
|
</td>
|
|
46
47
|
<?r else ?>
|
|
47
48
|
<td>#{entry.title}</td>
|
|
48
49
|
<?r end ?>
|
|
49
|
-
|
|
50
|
+
|
|
50
51
|
<td>#{entry.slug}</td>
|
|
51
|
-
<td>#{@status_hash[entry.status]}</td>
|
|
52
|
-
<td>#{entry.created_at.strftime(session[:user].date_format)}</td>
|
|
53
52
|
<td>
|
|
54
|
-
#{
|
|
55
|
-
|
|
53
|
+
#{lang(
|
|
54
|
+
"section_entries.special.status_hash.#{entry. \
|
|
55
|
+
section_entry_status.name}"
|
|
56
|
+
)}
|
|
57
|
+
</td>
|
|
58
|
+
<td>
|
|
59
|
+
#{entry.created_at.strftime(session[:user].date_format)}
|
|
60
|
+
</td>
|
|
61
|
+
<td>
|
|
62
|
+
#{if entry.updated_at
|
|
56
63
|
entry.updated_at.strftime(session[:user].date_format)
|
|
57
|
-
end
|
|
58
|
-
}
|
|
64
|
+
end}
|
|
59
65
|
</td>
|
|
60
66
|
</tr>
|
|
61
67
|
<?r end ?>
|
|
62
68
|
</tbody>
|
|
63
69
|
</table>
|
|
64
|
-
|
|
70
|
+
|
|
71
|
+
#{
|
|
72
|
+
if @entries.respond_to?(:navigation) and @entries.page_count > 1
|
|
73
|
+
@entries.navigation
|
|
74
|
+
end
|
|
75
|
+
}
|
|
76
|
+
|
|
65
77
|
<?r else ?>
|
|
66
78
|
<p>#{lang('section_entries.messages.no_entries')}</p>
|
|
67
79
|
<?r end ?>
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<div class="button">
|
|
82
|
-
<input type="submit" value="#{lang('section_entries.buttons.delete')}" />
|
|
83
|
-
</div>
|
|
84
|
-
<?r end ?>
|
|
80
|
+
|
|
81
|
+
<?r if user_authorized?([:create]) ?>
|
|
82
|
+
<div class="button">
|
|
83
|
+
#{Sections::Controller::SectionEntries.a(
|
|
84
|
+
lang('section_entries.buttons.new'), :new, @section_id
|
|
85
|
+
)}
|
|
86
|
+
</div>
|
|
87
|
+
<?r end ?>
|
|
88
|
+
|
|
89
|
+
<?r if user_authorized?([:delete]) and !@entries.empty? ?>
|
|
90
|
+
<div class="button">
|
|
91
|
+
<input type="submit"
|
|
92
|
+
value="#{lang('section_entries.buttons.delete')}" />
|
|
85
93
|
</div>
|
|
94
|
+
<?r end ?>
|
|
86
95
|
</form>
|
|
87
|
-
|
|
88
96
|
</article>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
Sequel.migration do
|
|
2
|
+
# Updates the database with the changes specified in the block.
|
|
3
|
+
up do
|
|
4
|
+
# Make sure the settings table has been migrated
|
|
5
|
+
::Zen::Plugin.plugin(:settings, :migrate)
|
|
6
|
+
|
|
7
|
+
if !Zen.database[:sections].all.empty?
|
|
8
|
+
default_section = Zen.database[:settings] \
|
|
9
|
+
.filter(:name => 'default_section') \
|
|
10
|
+
.all[0][:value]
|
|
11
|
+
|
|
12
|
+
default_section = Zen.database[:sections] \
|
|
13
|
+
.filter(:slug => default_section) \
|
|
14
|
+
.all[0][:id]
|
|
15
|
+
|
|
16
|
+
# Change the slug to an ID
|
|
17
|
+
Zen.database[:settings].filter(:name => 'default_section') \
|
|
18
|
+
.update(:value => default_section)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Reverts the changes made in the up() block.
|
|
23
|
+
down do
|
|
24
|
+
default_section = Zen.database[:settings] \
|
|
25
|
+
.filter(:name => 'default_section') \
|
|
26
|
+
.all[0][:value]
|
|
27
|
+
|
|
28
|
+
section = Zen.database[:sections] \
|
|
29
|
+
.filter(:id => default_section) \
|
|
30
|
+
.all[0]
|
|
31
|
+
|
|
32
|
+
if !section.nil?
|
|
33
|
+
default_section = section[:slug]
|
|
34
|
+
|
|
35
|
+
# Change the ID back to a slug
|
|
36
|
+
Zen.database[:settings].filter(:name => 'default_section') \
|
|
37
|
+
.update(:value => default_section)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
Sequel.migration do
|
|
2
|
+
# Updates the database with the changes specified in the block.
|
|
3
|
+
up do
|
|
4
|
+
create_table(:section_entry_statuses) do
|
|
5
|
+
primary_key :id
|
|
6
|
+
|
|
7
|
+
String :name, :null => false, :unique => true
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Get all existing entries
|
|
11
|
+
entries = Zen.database[:section_entries].all
|
|
12
|
+
|
|
13
|
+
# Replace the status column
|
|
14
|
+
drop_column(:section_entries, :status)
|
|
15
|
+
|
|
16
|
+
alter_table(:section_entries) do
|
|
17
|
+
add_foreign_key(
|
|
18
|
+
:section_entry_status_id,
|
|
19
|
+
:section_entry_statuses,
|
|
20
|
+
:on_delete => :cascade,
|
|
21
|
+
:on_update => :cascade,
|
|
22
|
+
:key => :id
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Insert the statuses and migrate the existing entries
|
|
27
|
+
['published', 'draft'].each do |status|
|
|
28
|
+
status_id = Zen.database[:section_entry_statuses].insert(:name => status)
|
|
29
|
+
|
|
30
|
+
entries.each do |entry|
|
|
31
|
+
if entry[:status] === status
|
|
32
|
+
Zen.database[:section_entries].filter(:id => entry[:id]) \
|
|
33
|
+
.update(:section_entry_status_id => status_id)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Reverts the changes made in the up() block.
|
|
40
|
+
down do
|
|
41
|
+
statuses = {}
|
|
42
|
+
entries = Zen.database[:section_entries].all
|
|
43
|
+
|
|
44
|
+
Zen.database[:section_entry_statuses].all.each do |status|
|
|
45
|
+
statuses[status[:id]] = status[:name]
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
drop_column(:section_entries, :section_entry_status_id)
|
|
49
|
+
add_column(:section_entries, :status, String, :default => 'draft')
|
|
50
|
+
|
|
51
|
+
entries.each do |entry|
|
|
52
|
+
Zen.database.filter(:id => entry[:id]) \
|
|
53
|
+
.update(:status => statuses[entry[:section_entry_status_id]])
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
drop_table(:section_entry_statuses)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -15,7 +15,7 @@ module Settings
|
|
|
15
15
|
map '/admin/settings'
|
|
16
16
|
|
|
17
17
|
# Load all required Javascript files
|
|
18
|
-
javascript ['zen/tabs']
|
|
18
|
+
javascript ['zen/lib/tabs']
|
|
19
19
|
|
|
20
20
|
before_all do
|
|
21
21
|
csrf_protection(:save, :delete) do
|
|
@@ -60,9 +60,7 @@ module Settings
|
|
|
60
60
|
# @since 0.1
|
|
61
61
|
#
|
|
62
62
|
def index
|
|
63
|
-
|
|
64
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
65
|
-
end
|
|
63
|
+
require_permissions(:read, :update)
|
|
66
64
|
|
|
67
65
|
set_breadcrumbs(lang('settings.titles.index'))
|
|
68
66
|
|
|
@@ -71,7 +69,8 @@ module Settings
|
|
|
71
69
|
|
|
72
70
|
# Organize the settings so that each item is a child
|
|
73
71
|
# item of it's group.
|
|
74
|
-
::Settings::Plugin::Settings::Registered[:settings].each
|
|
72
|
+
::Settings::Plugin::Settings::Registered[:settings].each \
|
|
73
|
+
do |name, setting|
|
|
75
74
|
if !@settings_ordered.key?(setting.group)
|
|
76
75
|
@settings_ordered[setting.group] = []
|
|
77
76
|
end
|
|
@@ -93,9 +92,7 @@ module Settings
|
|
|
93
92
|
# @since 0.1
|
|
94
93
|
#
|
|
95
94
|
def save
|
|
96
|
-
|
|
97
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
98
|
-
end
|
|
95
|
+
require_permissions(:update)
|
|
99
96
|
|
|
100
97
|
post = request.params.dup
|
|
101
98
|
post.delete('csrf_token')
|
|
@@ -3,48 +3,13 @@ module Settings
|
|
|
3
3
|
#:nodoc:
|
|
4
4
|
module Model
|
|
5
5
|
##
|
|
6
|
-
# Model that represents a single setting.
|
|
7
|
-
# all possible values for a certain settngs. This is done by calling a method
|
|
8
|
-
# that matches the format get_SETTING-NAME_values. For example, a setting named "theme"
|
|
9
|
-
# would result in a call to Settings::Model::Setting#get_theme_values.
|
|
10
|
-
#
|
|
11
|
-
# In order to add new method you'll have to monkey patch this model as following:
|
|
12
|
-
#
|
|
13
|
-
# class Setting < Sequel::Model
|
|
14
|
-
# def self.get_my_setting_values
|
|
15
|
-
# # Do something and return it...
|
|
16
|
-
# end
|
|
17
|
-
# end
|
|
6
|
+
# Model that represents a single setting.
|
|
18
7
|
#
|
|
19
8
|
# @author Yorick Peterse
|
|
20
9
|
# @since 0.1
|
|
21
|
-
# @todo Monkey patching a model in order to get possible values isn't the nicest way
|
|
22
|
-
# of solving this problem but it does allow for extra flexibility. It might be a good
|
|
23
|
-
# idea to refactor this and put it in it's own class/plugin/whatever.
|
|
24
10
|
#
|
|
25
11
|
class Setting < Sequel::Model
|
|
26
|
-
|
|
27
|
-
# Retrieves all settings and returns them as a key/value hash.
|
|
28
|
-
#
|
|
29
|
-
# @author Yorick Peterse
|
|
30
|
-
# @since 0.1
|
|
31
|
-
# @return [Hash] key/value hash containing all settings and their values.
|
|
32
|
-
#
|
|
33
|
-
def self.get_settings
|
|
34
|
-
settings = {}
|
|
35
|
-
|
|
36
|
-
self.all.each do |s|
|
|
37
|
-
if s.value.nil?
|
|
38
|
-
value = s.default
|
|
39
|
-
else
|
|
40
|
-
value = s.value
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
settings[s.name.to_sym] = value
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
return settings
|
|
47
|
-
end
|
|
12
|
+
|
|
48
13
|
end # Setting
|
|
49
14
|
end # Model
|
|
50
15
|
end # Settings
|
|
@@ -37,7 +37,7 @@ module Settings
|
|
|
37
37
|
attr_accessor :type
|
|
38
38
|
|
|
39
39
|
# The possible values for the setting
|
|
40
|
-
|
|
40
|
+
attr_writer :values
|
|
41
41
|
|
|
42
42
|
# The default value of the setting
|
|
43
43
|
attr_accessor :default
|
|
@@ -111,6 +111,23 @@ module Settings
|
|
|
111
111
|
|
|
112
112
|
return val
|
|
113
113
|
end
|
|
114
|
+
|
|
115
|
+
##
|
|
116
|
+
# Retrieves the possible values for the setting. If the value is a Proc or Lambda
|
|
117
|
+
# (or anything else that responds to call()) it will be called and it's return
|
|
118
|
+
# value is used.
|
|
119
|
+
#
|
|
120
|
+
# @author Yorick Peterse
|
|
121
|
+
# @since 0.2.8
|
|
122
|
+
# @return [Mixed]
|
|
123
|
+
#
|
|
124
|
+
def values
|
|
125
|
+
if @values.respond_to?(:call)
|
|
126
|
+
return @values.call
|
|
127
|
+
else
|
|
128
|
+
return @values
|
|
129
|
+
end
|
|
130
|
+
end
|
|
114
131
|
end # SettingBase
|
|
115
132
|
end # Plugin
|
|
116
133
|
end # Settings
|
|
@@ -206,16 +206,22 @@ module Settings
|
|
|
206
206
|
name = name.to_s
|
|
207
207
|
|
|
208
208
|
if !settings.include?(name)
|
|
209
|
-
#
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
209
|
+
# For some reason using the Settings model generates nil errors
|
|
210
|
+
# when this method is called from a migration so we'll insert them
|
|
211
|
+
# the non-model way.
|
|
212
|
+
Zen.database[:settings].insert(
|
|
213
|
+
:name => setting.name,
|
|
214
|
+
:group => setting.group,
|
|
215
|
+
:default => setting.default,
|
|
216
|
+
:type => setting.type
|
|
217
|
+
)
|
|
214
218
|
|
|
215
219
|
# Update everything but the value
|
|
216
220
|
else
|
|
217
|
-
|
|
218
|
-
:group
|
|
221
|
+
Zen.database[:settings].filter[:name => setting.name].update(
|
|
222
|
+
:group => setting.group,
|
|
223
|
+
:default => setting.default,
|
|
224
|
+
:type => setting.type
|
|
219
225
|
)
|
|
220
226
|
end
|
|
221
227
|
end
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
</div>
|
|
15
15
|
|
|
16
16
|
#{
|
|
17
|
-
form_for(@settings_ordered, :method => :post, :action => @form_save_url,
|
|
17
|
+
form_for(@settings_ordered, :method => :post, :action => @form_save_url,
|
|
18
|
+
:id => :setting_form) do |f|
|
|
18
19
|
f.input_hidden(:csrf_token, get_csrf_token)
|
|
19
20
|
|
|
20
21
|
@settings_ordered.each do |group, items|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
Ramaze::HelpersHelper.options.paths.push(__DIR__('users'))
|
|
2
|
+
|
|
1
3
|
require __DIR__('users/model/user')
|
|
2
4
|
require __DIR__('users/model/user_group')
|
|
3
5
|
require __DIR__('users/model/access_rule')
|
|
@@ -28,7 +30,7 @@ authorization."
|
|
|
28
30
|
:title => lang('users.titles.index'),
|
|
29
31
|
:url => 'admin/users',
|
|
30
32
|
:children => [
|
|
31
|
-
{:title => lang('user_groups.titles.index') , :url => 'admin/user-groups'
|
|
33
|
+
{:title => lang('user_groups.titles.index') , :url => 'admin/user-groups'},
|
|
32
34
|
{:title => lang('access_rules.titles.index'), :url => 'admin/access-rules'}
|
|
33
35
|
]
|
|
34
36
|
}]
|
|
@@ -3,8 +3,8 @@ module Users
|
|
|
3
3
|
#:nodoc:
|
|
4
4
|
module Controller
|
|
5
5
|
##
|
|
6
|
-
# Controller for managing access rules. Each access rule can be used to
|
|
7
|
-
# whether or not a user can edit or create something.
|
|
6
|
+
# Controller for managing access rules. Each access rule can be used to
|
|
7
|
+
# specify whether or not a user can edit or create something.
|
|
8
8
|
#
|
|
9
9
|
# The following permissions are available:
|
|
10
10
|
#
|
|
@@ -19,9 +19,13 @@ module Users
|
|
|
19
19
|
class AccessRules < Zen::Controller::AdminController
|
|
20
20
|
include ::Users::Model
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
helper :users
|
|
23
|
+
map '/admin/access-rules'
|
|
23
24
|
|
|
24
|
-
javascript
|
|
25
|
+
javascript(
|
|
26
|
+
['users/lib/access_rules', 'users/access_rules'],
|
|
27
|
+
:method => [:edit, :new]
|
|
28
|
+
)
|
|
25
29
|
|
|
26
30
|
before_all do
|
|
27
31
|
csrf_protection(:save, :delete) do
|
|
@@ -42,10 +46,6 @@ module Users
|
|
|
42
46
|
def initialize
|
|
43
47
|
super
|
|
44
48
|
|
|
45
|
-
@form_save_url = AccessRules.r(:save)
|
|
46
|
-
@form_delete_url = AccessRules.r(:delete)
|
|
47
|
-
@rules_lang = Zen::Language.load('access_rules')
|
|
48
|
-
|
|
49
49
|
# Set the page title
|
|
50
50
|
if !action.method.nil?
|
|
51
51
|
method = action.method.to_sym
|
|
@@ -56,32 +56,16 @@ module Users
|
|
|
56
56
|
lang('access_rules.labels.user') => 'div_user_id',
|
|
57
57
|
lang('access_rules.labels.user_group') => 'div_user_group_id'
|
|
58
58
|
}
|
|
59
|
-
end
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
# This method requires the following permissions:
|
|
66
|
-
#
|
|
67
|
-
# * read
|
|
68
|
-
#
|
|
69
|
-
# @author Yorick Peterse
|
|
70
|
-
# @since 0.1
|
|
71
|
-
#
|
|
72
|
-
def index
|
|
73
|
-
if !user_authorized?([:read])
|
|
74
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
set_breadcrumbs(lang('access_rules.titles.index'))
|
|
78
|
-
|
|
79
|
-
@access_rules = AccessRule.all
|
|
60
|
+
@boolean_hash = {
|
|
61
|
+
true => lang('zen_general.special.boolean_hash.true'),
|
|
62
|
+
false => lang('zen_general.special.boolean_hash.false')
|
|
63
|
+
}
|
|
80
64
|
end
|
|
81
65
|
|
|
82
66
|
##
|
|
83
|
-
# Hook that's executed before the edit and new method. This hook is used
|
|
84
|
-
# pre-process some data used in the form.
|
|
67
|
+
# Hook that's executed before the edit and new method. This hook is used
|
|
68
|
+
# to pre-process some data used in the form.
|
|
85
69
|
#
|
|
86
70
|
# @author Yorick Peterse
|
|
87
71
|
# @since 0.2.5
|
|
@@ -100,7 +84,9 @@ module Users
|
|
|
100
84
|
::Zen::Package::Registered.each do |name, pkg|
|
|
101
85
|
name = name.to_s
|
|
102
86
|
@form_packages[name] = name
|
|
103
|
-
@form_controllers[name] ||= {
|
|
87
|
+
@form_controllers[name] ||= {
|
|
88
|
+
lang('access_rules.labels.all_controllers') => '*'
|
|
89
|
+
}
|
|
104
90
|
|
|
105
91
|
pkg.controllers.each do |key, value|
|
|
106
92
|
@form_controllers[name][key] = value.to_s
|
|
@@ -112,6 +98,25 @@ module Users
|
|
|
112
98
|
end
|
|
113
99
|
end
|
|
114
100
|
|
|
101
|
+
##
|
|
102
|
+
# Show an overview of all access rules and allow the current user
|
|
103
|
+
# to manage these groups.
|
|
104
|
+
#
|
|
105
|
+
# This method requires the following permissions:
|
|
106
|
+
#
|
|
107
|
+
# * read
|
|
108
|
+
#
|
|
109
|
+
# @author Yorick Peterse
|
|
110
|
+
# @since 0.1
|
|
111
|
+
#
|
|
112
|
+
def index
|
|
113
|
+
require_permissions(:read)
|
|
114
|
+
|
|
115
|
+
set_breadcrumbs(lang('access_rules.titles.index'))
|
|
116
|
+
|
|
117
|
+
@access_rules = paginate(AccessRule)
|
|
118
|
+
end
|
|
119
|
+
|
|
115
120
|
##
|
|
116
121
|
# Edit an existing access rule.
|
|
117
122
|
#
|
|
@@ -121,24 +126,24 @@ module Users
|
|
|
121
126
|
# * update
|
|
122
127
|
#
|
|
123
128
|
# @author Yorick Peterse
|
|
124
|
-
# @param [
|
|
129
|
+
# @param [Fixnum] id The ID of the access rule to edit.
|
|
125
130
|
# @since 0.1
|
|
126
131
|
#
|
|
127
132
|
def edit(id)
|
|
128
|
-
|
|
129
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
130
|
-
end
|
|
133
|
+
require_permissions(:read, :update)
|
|
131
134
|
|
|
132
135
|
set_breadcrumbs(
|
|
133
|
-
|
|
136
|
+
AccessRules.a(lang('access_rules.titles.index'), :index),
|
|
134
137
|
lang('access_rules.titles.edit')
|
|
135
138
|
)
|
|
136
139
|
|
|
137
140
|
if flash[:form_data]
|
|
138
141
|
@access_rule = flash[:form_data]
|
|
139
142
|
else
|
|
140
|
-
@access_rule =
|
|
143
|
+
@access_rule = validate_access_rule(id)
|
|
141
144
|
end
|
|
145
|
+
|
|
146
|
+
render_view(:form)
|
|
142
147
|
end
|
|
143
148
|
|
|
144
149
|
##
|
|
@@ -147,26 +152,27 @@ module Users
|
|
|
147
152
|
# This method requires the following permissions:
|
|
148
153
|
#
|
|
149
154
|
# * read
|
|
150
|
-
# * create
|
|
155
|
+
# * create
|
|
151
156
|
#
|
|
152
157
|
# @author Yorick Peterse
|
|
153
158
|
# @since 0.1
|
|
154
159
|
#
|
|
155
160
|
def new
|
|
156
|
-
|
|
157
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
158
|
-
end
|
|
161
|
+
require_permissions(:read, :create)
|
|
159
162
|
|
|
160
163
|
set_breadcrumbs(
|
|
161
|
-
|
|
164
|
+
AccessRules.a(lang('access_rules.titles.index'), :index),
|
|
162
165
|
lang('access_rules.titles.new')
|
|
163
166
|
)
|
|
164
167
|
|
|
165
168
|
@access_rule = AccessRule.new
|
|
169
|
+
|
|
170
|
+
render_view(:form)
|
|
166
171
|
end
|
|
167
172
|
|
|
168
173
|
##
|
|
169
|
-
# Saves or creates a new access rule based on the POST data and a field
|
|
174
|
+
# Saves or creates a new access rule based on the POST data and a field
|
|
175
|
+
# named 'id'.
|
|
170
176
|
#
|
|
171
177
|
# This method requires the following permissions:
|
|
172
178
|
#
|
|
@@ -177,13 +183,17 @@ module Users
|
|
|
177
183
|
# @since 0.1
|
|
178
184
|
#
|
|
179
185
|
def save
|
|
180
|
-
if !user_authorized?([:create, :update])
|
|
181
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
182
|
-
end
|
|
183
|
-
|
|
184
186
|
post = request.subset(
|
|
185
|
-
:id,
|
|
186
|
-
:
|
|
187
|
+
:id,
|
|
188
|
+
:package,
|
|
189
|
+
:read_access,
|
|
190
|
+
:create_access,
|
|
191
|
+
:update_access,
|
|
192
|
+
:delete_access,
|
|
193
|
+
:user_id,
|
|
194
|
+
:user_group_id,
|
|
195
|
+
:controller,
|
|
196
|
+
:rule_applies
|
|
187
197
|
)
|
|
188
198
|
|
|
189
199
|
if post['rule_applies'] === 'div_user_id'
|
|
@@ -193,10 +203,14 @@ module Users
|
|
|
193
203
|
end
|
|
194
204
|
|
|
195
205
|
if post['id'] and !post['id'].empty?
|
|
196
|
-
|
|
206
|
+
require_permissions(:update)
|
|
207
|
+
|
|
208
|
+
access_rule = validate_access_rule(post['id'])
|
|
197
209
|
save_action = :save
|
|
198
210
|
else
|
|
199
|
-
|
|
211
|
+
require_permissions(:create)
|
|
212
|
+
|
|
213
|
+
access_rule = AccessRule.new
|
|
200
214
|
save_action = :new
|
|
201
215
|
end
|
|
202
216
|
|
|
@@ -207,7 +221,7 @@ module Users
|
|
|
207
221
|
flash_error = lang("access_rules.errors.#{save_action}")
|
|
208
222
|
|
|
209
223
|
begin
|
|
210
|
-
|
|
224
|
+
access_rule.update(post)
|
|
211
225
|
|
|
212
226
|
# Flush the existing rules from the session
|
|
213
227
|
session.delete(:access_rules)
|
|
@@ -216,12 +230,14 @@ module Users
|
|
|
216
230
|
Ramaze::Log.error(e.inspect)
|
|
217
231
|
message(:error, flash_error)
|
|
218
232
|
|
|
219
|
-
flash[:form_data] =
|
|
220
|
-
flash[:form_errors] =
|
|
233
|
+
flash[:form_data] = access_rule
|
|
234
|
+
flash[:form_errors] = access_rule.errors
|
|
235
|
+
|
|
236
|
+
redirect_referrer
|
|
221
237
|
end
|
|
222
238
|
|
|
223
|
-
if
|
|
224
|
-
redirect(AccessRules.r(:edit,
|
|
239
|
+
if access_rule.id
|
|
240
|
+
redirect(AccessRules.r(:edit, access_rule.id))
|
|
225
241
|
else
|
|
226
242
|
redirect_referrer
|
|
227
243
|
end
|
|
@@ -238,11 +254,10 @@ module Users
|
|
|
238
254
|
# @since 0.1
|
|
239
255
|
#
|
|
240
256
|
def delete
|
|
241
|
-
|
|
242
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
243
|
-
end
|
|
257
|
+
require_permissions(:delete)
|
|
244
258
|
|
|
245
|
-
if !request.params['access_rule_ids']
|
|
259
|
+
if !request.params['access_rule_ids'] \
|
|
260
|
+
or request.params['access_rule_ids'].empty?
|
|
246
261
|
message(:error, lang('access_rules.errors.no_delete'))
|
|
247
262
|
redirect_referrer
|
|
248
263
|
end
|
|
@@ -257,6 +272,8 @@ module Users
|
|
|
257
272
|
rescue => e
|
|
258
273
|
Ramaze::Log.error(e.inspect)
|
|
259
274
|
message(:error, lang('access_rules.errors.delete') % id)
|
|
275
|
+
|
|
276
|
+
redirect_referrer
|
|
260
277
|
end
|
|
261
278
|
end
|
|
262
279
|
|