zen 0.1a → 0.2

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.
Files changed (414) hide show
  1. data/CHANGELOG.md +17 -0
  2. data/MANIFEST +161 -264
  3. data/README.md +114 -0
  4. data/ROADMAP.md +31 -0
  5. data/Thorfile +8 -0
  6. data/lib/zen.rb +13 -10
  7. data/lib/zen/base/database.rb +34 -28
  8. data/lib/zen/base/language.rb +174 -92
  9. data/lib/zen/base/logger.rb +8 -6
  10. data/lib/zen/base/package.rb +36 -29
  11. data/lib/zen/base/version.rb +2 -1
  12. data/lib/zen/bin/zen_binary.rb +7 -71
  13. data/lib/zen/controller/admin_controller.rb +31 -11
  14. data/lib/zen/controller/base_controller.rb +13 -13
  15. data/lib/zen/controller/frontend_controller.rb +2 -0
  16. data/lib/zen/controller/main_controller.rb +9 -8
  17. data/lib/zen/helper/acl.rb +4 -1
  18. data/lib/zen/helper/asset.rb +5 -3
  19. data/lib/zen/helper/breadcrumb.rb +10 -8
  20. data/lib/zen/helper/common.rb +28 -13
  21. data/lib/zen/language/en/zen_general.yml +31 -0
  22. data/lib/zen/language/en/zen_models.yml +13 -0
  23. data/lib/zen/layout/admin.xhtml +76 -68
  24. data/lib/zen/layout/login.xhtml +48 -42
  25. data/lib/zen/liquid/controller_behavior.rb +2 -0
  26. data/lib/zen/liquid/general.rb +60 -9
  27. data/lib/zen/liquid/redirect.rb +29 -6
  28. data/lib/zen/liquid/strip.rb +3 -1
  29. data/lib/zen/model/methods.rb +7 -5
  30. data/lib/zen/model/settings.rb +69 -18
  31. data/lib/zen/package/all.rb +7 -0
  32. data/lib/zen/{packages → package}/categories/lib/categories.rb +3 -3
  33. data/lib/zen/package/categories/lib/categories/controller/categories.rb +250 -0
  34. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +216 -0
  35. data/lib/zen/package/categories/lib/categories/language/en/categories.yml +35 -0
  36. data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +32 -0
  37. data/lib/zen/package/categories/lib/categories/liquid/categories.rb +16 -0
  38. data/lib/zen/{packages → package}/categories/lib/categories/model/category.rb +9 -9
  39. data/lib/zen/{packages → package}/categories/lib/categories/model/category_group.rb +6 -4
  40. data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +7 -0
  41. data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +59 -0
  42. data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +78 -0
  43. data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +7 -0
  44. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +7 -0
  45. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +31 -0
  46. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +85 -0
  47. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +7 -0
  48. data/lib/zen/{packages → package}/categories/migrations/.gitkeep +0 -0
  49. data/lib/zen/{packages → package}/categories/migrations/1295282303_create_schema.rb +3 -2
  50. data/lib/zen/{packages → package}/comments/lib/comments.rb +1 -1
  51. data/lib/zen/{packages → package}/comments/lib/comments/controller/comments.rb +81 -41
  52. data/lib/zen/{packages → package}/comments/lib/comments/controller/comments_form.rb +15 -13
  53. data/lib/zen/package/comments/lib/comments/language/en/comments.yml +42 -0
  54. data/lib/zen/{packages → package}/comments/lib/comments/liquid/comment_form.rb +43 -13
  55. data/lib/zen/{packages → package}/comments/lib/comments/liquid/comments.rb +10 -12
  56. data/lib/zen/{packages → package}/comments/lib/comments/model/comment.rb +24 -0
  57. data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +7 -0
  58. data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +57 -0
  59. data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +79 -0
  60. data/lib/zen/{packages → package}/comments/migrations/.gitkeep +0 -0
  61. data/lib/zen/{packages → package}/comments/migrations/1295282202_create_schema.rb +6 -4
  62. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields.rb +2 -2
  63. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +224 -0
  64. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +259 -0
  65. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +32 -0
  66. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +52 -0
  67. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field.rb +12 -7
  68. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field_group.rb +14 -4
  69. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field_value.rb +4 -2
  70. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +7 -0
  71. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +30 -0
  72. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +100 -0
  73. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +7 -0
  74. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +7 -0
  75. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +107 -0
  76. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +84 -0
  77. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +7 -0
  78. data/lib/zen/{packages → package}/custom_fields/migrations/.gitkeep +0 -0
  79. data/lib/zen/{packages → package}/custom_fields/migrations/1295255665_create_schema.rb +8 -7
  80. data/lib/zen/package/menus/lib/menus.rb +59 -0
  81. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +244 -0
  82. data/lib/zen/package/menus/lib/menus/controller/menus.rb +231 -0
  83. data/lib/zen/package/menus/lib/menus/helper/menu_item.rb +93 -0
  84. data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +41 -0
  85. data/lib/zen/package/menus/lib/menus/language/en/menus.yml +39 -0
  86. data/lib/zen/package/menus/lib/menus/liquid/menus.rb +152 -0
  87. data/lib/zen/package/menus/lib/menus/model/menu.rb +38 -0
  88. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +33 -0
  89. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +7 -0
  90. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +64 -0
  91. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +84 -0
  92. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +7 -0
  93. data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +7 -0
  94. data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +42 -0
  95. data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +95 -0
  96. data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +7 -0
  97. data/lib/zen/{packages/sections → package/menus}/migrations/.gitkeep +0 -0
  98. data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +33 -0
  99. data/lib/zen/{packages → package}/sections/lib/sections.rb +0 -0
  100. data/lib/zen/{packages → package}/sections/lib/sections/controller/section_entries.rb +132 -68
  101. data/lib/zen/{packages → package}/sections/lib/sections/controller/sections.rb +96 -48
  102. data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +43 -0
  103. data/lib/zen/package/sections/lib/sections/language/en/sections.yml +48 -0
  104. data/lib/zen/{packages → package}/sections/lib/sections/liquid/section_entries.rb +55 -43
  105. data/lib/zen/{packages → package}/sections/lib/sections/liquid/sections.rb +9 -8
  106. data/lib/zen/package/sections/lib/sections/model/section.rb +62 -0
  107. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +53 -0
  108. data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +7 -0
  109. data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +107 -0
  110. data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +93 -0
  111. data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +7 -0
  112. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +7 -0
  113. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +233 -0
  114. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +82 -0
  115. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +7 -0
  116. data/lib/zen/{packages/settings → package/sections}/migrations/.gitkeep +0 -0
  117. data/lib/zen/{packages → package}/sections/migrations/1295251836_create_schema.rb +6 -6
  118. data/lib/zen/{packages → package}/settings/lib/settings.rb +0 -0
  119. data/lib/zen/{packages → package}/settings/lib/settings/controller/settings.rb +33 -24
  120. data/lib/zen/package/settings/lib/settings/language/en/settings.yml +26 -0
  121. data/lib/zen/{packages → package}/settings/lib/settings/liquid/setting.rb +5 -3
  122. data/lib/zen/package/settings/lib/settings/model/setting.rb +113 -0
  123. data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +111 -0
  124. data/lib/zen/{packages/users → package/settings}/migrations/.gitkeep +0 -0
  125. data/lib/zen/{packages → package}/settings/migrations/1295597111_create_schema.rb +2 -2
  126. data/lib/zen/package/settings/migrations/1299538742_add_language_key.rb +62 -0
  127. data/lib/zen/{packages → package}/users/lib/users.rb +6 -2
  128. data/lib/zen/package/users/lib/users/controller/access_rules.rb +238 -0
  129. data/lib/zen/package/users/lib/users/controller/user_groups.rb +217 -0
  130. data/lib/zen/{packages → package}/users/lib/users/controller/users.rb +115 -57
  131. data/lib/zen/package/users/lib/users/language/en/access_rules.yml +35 -0
  132. data/lib/zen/package/users/lib/users/language/en/user_groups.yml +31 -0
  133. data/lib/zen/package/users/lib/users/language/en/users.yml +50 -0
  134. data/lib/zen/{packages → package}/users/lib/users/liquid/user.rb +8 -6
  135. data/lib/zen/{packages → package}/users/lib/users/liquid/users.rb +5 -3
  136. data/lib/zen/{packages → package}/users/lib/users/model/access_rule.rb +11 -3
  137. data/lib/zen/{packages → package}/users/lib/users/model/user.rb +5 -1
  138. data/lib/zen/{packages → package}/users/lib/users/model/user_group.rb +6 -3
  139. data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +42 -0
  140. data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +7 -0
  141. data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +108 -0
  142. data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +93 -0
  143. data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +7 -0
  144. data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +7 -0
  145. data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +37 -0
  146. data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +76 -0
  147. data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +7 -0
  148. data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +7 -0
  149. data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +53 -0
  150. data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +81 -0
  151. data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +27 -0
  152. data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +7 -0
  153. data/{pkg → lib/zen/package/users/migrations}/.gitkeep +0 -0
  154. data/lib/zen/{packages → package}/users/migrations/1295281013_create_schema.rb +2 -2
  155. data/lib/zen/public/admin/css/boilerplate.css +62 -60
  156. data/lib/zen/public/admin/css/buttons.css +46 -0
  157. data/lib/zen/public/admin/css/datepicker.css +163 -0
  158. data/lib/zen/public/admin/css/editor.css +91 -0
  159. data/lib/zen/public/admin/css/forms.css +68 -0
  160. data/lib/zen/public/admin/css/general.css +34 -419
  161. data/lib/zen/public/admin/css/grid.css +26 -26
  162. data/lib/zen/public/admin/css/layout.css +73 -62
  163. data/lib/zen/public/admin/css/modals.css +63 -0
  164. data/lib/zen/public/admin/css/notifications.css +84 -0
  165. data/lib/zen/public/admin/css/tables.css +71 -0
  166. data/lib/zen/public/admin/css/tabs.css +53 -0
  167. data/lib/zen/public/admin/js/mootools/more.js +139 -51
  168. data/lib/zen/public/admin/js/vendor/datepicker/Picker.Attach.js +137 -0
  169. data/lib/zen/public/admin/js/vendor/datepicker/Picker.Date.js +576 -0
  170. data/lib/zen/public/admin/js/vendor/datepicker/Picker.js +291 -0
  171. data/lib/zen/public/admin/js/vendor/datepicker/README.md +325 -0
  172. data/lib/zen/public/admin/js/vendor/datepicker/locale.js +16 -0
  173. data/lib/zen/public/admin/js/zen/editor/base.js +173 -183
  174. data/lib/zen/public/admin/js/zen/editor/drivers/html.js +74 -89
  175. data/lib/zen/public/admin/js/zen/editor/drivers/markdown.js +72 -87
  176. data/lib/zen/public/admin/js/zen/editor/drivers/textile.js +72 -87
  177. data/lib/zen/public/admin/js/zen/init.js +65 -51
  178. data/lib/zen/public/admin/js/zen/modal.js +108 -121
  179. data/lib/zen/public/admin/js/zen/notification.js +163 -165
  180. data/lib/zen/public/admin/js/zen/tabs.js +203 -210
  181. data/lib/zen/task/build.rb +123 -0
  182. data/lib/zen/task/clean.rb +46 -0
  183. data/lib/zen/task/db.rb +120 -0
  184. data/lib/zen/task/package.rb +82 -0
  185. data/lib/zen/task/proto.rb +116 -0
  186. data/{LICENSE → license.txt} +2 -2
  187. data/proto/app/Thorfile +4 -0
  188. data/proto/app/config/middlewares.rb +3 -3
  189. data/proto/app/config/requires.rb +1 -6
  190. data/proto/app/start.rb +5 -10
  191. data/{lib/zen/packages/settings → proto/package}/LICENSE +0 -0
  192. data/{lib/zen/packages/categories → proto/package}/README.textile +0 -0
  193. data/proto/package/lib/package.rb +41 -0
  194. data/proto/{module/lib/module → package/lib/package}/controller/controllers.rb +3 -2
  195. data/proto/{module/lib/module → package/lib/package}/language/en/languages.rb +0 -0
  196. data/proto/{module/lib/module → package/lib/package}/model/model.rb +0 -0
  197. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/edit.xhtml +0 -0
  198. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/form.xhtml +0 -0
  199. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/index.xhtml +0 -0
  200. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/new.xhtml +0 -0
  201. data/proto/{module → package}/migrations/.gitkeep +0 -0
  202. metadata +199 -280
  203. data/README.textile +0 -42
  204. data/Rakefile +0 -6
  205. data/doc/Categories.html +0 -93
  206. data/doc/Categories/Controllers.html +0 -93
  207. data/doc/Categories/Controllers/Categories.html +0 -995
  208. data/doc/Categories/Controllers/CategoryGroups.html +0 -878
  209. data/doc/Categories/Models.html +0 -97
  210. data/doc/Categories/Models/Category.html +0 -269
  211. data/doc/Categories/Models/CategoryGroup.html +0 -231
  212. data/doc/Comments.html +0 -93
  213. data/doc/Comments/Controllers.html +0 -93
  214. data/doc/Comments/Controllers/Comments.html +0 -797
  215. data/doc/Comments/Controllers/CommentsForm.html +0 -487
  216. data/doc/Comments/Liquid.html +0 -93
  217. data/doc/Comments/Liquid/CommentForm.html +0 -522
  218. data/doc/Comments/Liquid/Comments.html +0 -543
  219. data/doc/Comments/Models.html +0 -95
  220. data/doc/Comments/Models/Comment.html +0 -260
  221. data/doc/CustomFields.html +0 -93
  222. data/doc/CustomFields/Controllers.html +0 -93
  223. data/doc/CustomFields/Controllers/CustomFieldGroups.html +0 -902
  224. data/doc/CustomFields/Controllers/CustomFields.html +0 -974
  225. data/doc/CustomFields/Models.html +0 -97
  226. data/doc/CustomFields/Models/CustomField.html +0 -272
  227. data/doc/CustomFields/Models/CustomFieldGroup.html +0 -259
  228. data/doc/CustomFields/Models/CustomFieldValue.html +0 -154
  229. data/doc/Ramaze.html +0 -93
  230. data/doc/Ramaze/Helper.html +0 -93
  231. data/doc/Ramaze/Helper/ACL.html +0 -531
  232. data/doc/Ramaze/Helper/Asset.html +0 -617
  233. data/doc/Ramaze/Helper/Breadcrumb.html +0 -411
  234. data/doc/Ramaze/Helper/Common.html +0 -738
  235. data/doc/Sections.html +0 -93
  236. data/doc/Sections/Controllers.html +0 -93
  237. data/doc/Sections/Controllers/SectionEntries.html +0 -1100
  238. data/doc/Sections/Controllers/Sections.html +0 -953
  239. data/doc/Sections/Liquid.html +0 -93
  240. data/doc/Sections/Liquid/SectionEntries.html +0 -674
  241. data/doc/Sections/Liquid/Sections.html +0 -494
  242. data/doc/Sections/Models.html +0 -97
  243. data/doc/Sections/Models/Section.html +0 -272
  244. data/doc/Sections/Models/SectionEntry.html +0 -264
  245. data/doc/Sequel.html +0 -91
  246. data/doc/Sequel/Model.html +0 -243
  247. data/doc/Settings.html +0 -93
  248. data/doc/Settings/Controllers.html +0 -91
  249. data/doc/Settings/Controllers/Settings.html +0 -565
  250. data/doc/Settings/Liquid.html +0 -91
  251. data/doc/Settings/Liquid/Setting.html +0 -426
  252. data/doc/Settings/Models.html +0 -95
  253. data/doc/Settings/Models/Setting.html +0 -293
  254. data/doc/Users.html +0 -93
  255. data/doc/Users/Controllers.html +0 -93
  256. data/doc/Users/Controllers/AccessRules.html +0 -904
  257. data/doc/Users/Controllers/UserGroups.html +0 -879
  258. data/doc/Users/Controllers/Users.html +0 -1124
  259. data/doc/Users/Liquid.html +0 -93
  260. data/doc/Users/Liquid/User.html +0 -480
  261. data/doc/Users/Liquid/Users.html +0 -495
  262. data/doc/Users/Models.html +0 -97
  263. data/doc/Users/Models/AccessRule.html +0 -257
  264. data/doc/Users/Models/User.html +0 -649
  265. data/doc/Users/Models/UserGroup.html +0 -267
  266. data/doc/Zen.html +0 -391
  267. data/doc/Zen/Bin.html +0 -113
  268. data/doc/Zen/Bin/Base.html +0 -727
  269. data/doc/Zen/Controllers.html +0 -115
  270. data/doc/Zen/Controllers/AdminController.html +0 -298
  271. data/doc/Zen/Controllers/BaseController.html +0 -272
  272. data/doc/Zen/Controllers/FrontendController.html +0 -164
  273. data/doc/Zen/Controllers/MainController.html +0 -421
  274. data/doc/Zen/Database.html +0 -498
  275. data/doc/Zen/Language.html +0 -660
  276. data/doc/Zen/Liquid.html +0 -117
  277. data/doc/Zen/Liquid/ControllerBehavior.html +0 -448
  278. data/doc/Zen/Liquid/General.html +0 -444
  279. data/doc/Zen/Liquid/Redirect.html +0 -435
  280. data/doc/Zen/Liquid/Strip.html +0 -447
  281. data/doc/Zen/Logger.html +0 -393
  282. data/doc/Zen/Package.html +0 -909
  283. data/doc/_index.html +0 -724
  284. data/doc/class_list.html +0 -36
  285. data/doc/css/common.css +0 -1
  286. data/doc/css/full_list.css +0 -53
  287. data/doc/css/style.css +0 -310
  288. data/doc/file.README.html +0 -86
  289. data/doc/file_list.html +0 -38
  290. data/doc/frames.html +0 -13
  291. data/doc/index.html +0 -86
  292. data/doc/js/app.js +0 -203
  293. data/doc/js/full_list.js +0 -149
  294. data/doc/js/jquery.js +0 -154
  295. data/doc/method_list.html +0 -1139
  296. data/doc/top-level-namespace.html +0 -88
  297. data/lib/zen/language/en/zen_general.rb +0 -21
  298. data/lib/zen/language/en/zen_models.rb +0 -39
  299. data/lib/zen/packages/categories/LICENSE +0 -19
  300. data/lib/zen/packages/categories/lib/categories/controller/categories.rb +0 -202
  301. data/lib/zen/packages/categories/lib/categories/controller/category_groups.rb +0 -173
  302. data/lib/zen/packages/categories/lib/categories/language/en/categories.rb +0 -38
  303. data/lib/zen/packages/categories/lib/categories/language/en/category_groups.rb +0 -37
  304. data/lib/zen/packages/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
  305. data/lib/zen/packages/categories/lib/categories/view/admin/categories/form.xhtml +0 -36
  306. data/lib/zen/packages/categories/lib/categories/view/admin/categories/index.xhtml +0 -70
  307. data/lib/zen/packages/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
  308. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/edit.xhtml +0 -7
  309. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/form.xhtml +0 -18
  310. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/index.xhtml +0 -72
  311. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/new.xhtml +0 -7
  312. data/lib/zen/packages/comments/LICENSE +0 -19
  313. data/lib/zen/packages/comments/README.textile +0 -0
  314. data/lib/zen/packages/comments/lib/comments/language/en/comments.rb +0 -52
  315. data/lib/zen/packages/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
  316. data/lib/zen/packages/comments/lib/comments/view/admin/comments/form.xhtml +0 -31
  317. data/lib/zen/packages/comments/lib/comments/view/admin/comments/index.xhtml +0 -74
  318. data/lib/zen/packages/comments/migrations/1296949631_add_defensio_signature.rb +0 -11
  319. data/lib/zen/packages/custom_fields/LICENSE +0 -19
  320. data/lib/zen/packages/custom_fields/README.textile +0 -0
  321. data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +0 -179
  322. data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_fields.rb +0 -194
  323. data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +0 -45
  324. data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_fields.rb +0 -64
  325. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/edit.xhtml +0 -7
  326. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/form.xhtml +0 -18
  327. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/index.xhtml +0 -88
  328. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/new.xhtml +0 -7
  329. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/edit.xhtml +0 -7
  330. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/form.xhtml +0 -50
  331. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/index.xhtml +0 -75
  332. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/new.xhtml +0 -7
  333. data/lib/zen/packages/sections/LICENSE +0 -19
  334. data/lib/zen/packages/sections/README.textile +0 -43
  335. data/lib/zen/packages/sections/lib/sections/language/en/section_entries.rb +0 -58
  336. data/lib/zen/packages/sections/lib/sections/language/en/sections.rb +0 -63
  337. data/lib/zen/packages/sections/lib/sections/model/section.rb +0 -43
  338. data/lib/zen/packages/sections/lib/sections/model/section_entry.rb +0 -43
  339. data/lib/zen/packages/sections/lib/sections/view/admin/edit.xhtml +0 -7
  340. data/lib/zen/packages/sections/lib/sections/view/admin/form.xhtml +0 -54
  341. data/lib/zen/packages/sections/lib/sections/view/admin/index.xhtml +0 -77
  342. data/lib/zen/packages/sections/lib/sections/view/admin/new.xhtml +0 -7
  343. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/edit.xhtml +0 -7
  344. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/form.xhtml +0 -147
  345. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/index.xhtml +0 -74
  346. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/new.xhtml +0 -7
  347. data/lib/zen/packages/sections/migrations/1296335671_userdata_section_entries.rb +0 -18
  348. data/lib/zen/packages/sections/migrations/1296936110_drop_comment_antispam.rb +0 -11
  349. data/lib/zen/packages/settings/README.textile +0 -0
  350. data/lib/zen/packages/settings/lib/settings/language/en/settings.rb +0 -56
  351. data/lib/zen/packages/settings/lib/settings/model/setting.rb +0 -38
  352. data/lib/zen/packages/settings/lib/settings/view/admin/settings/index.xhtml +0 -79
  353. data/lib/zen/packages/users/LICENSE +0 -19
  354. data/lib/zen/packages/users/README.textile +0 -0
  355. data/lib/zen/packages/users/lib/users/controller/access_rules.rb +0 -186
  356. data/lib/zen/packages/users/lib/users/controller/user_groups.rb +0 -171
  357. data/lib/zen/packages/users/lib/users/language/en/access_rules.rb +0 -49
  358. data/lib/zen/packages/users/lib/users/language/en/user_groups.rb +0 -42
  359. data/lib/zen/packages/users/lib/users/language/en/users.rb +0 -63
  360. data/lib/zen/packages/users/lib/users/public/admin/js/users/access_rules.js +0 -43
  361. data/lib/zen/packages/users/lib/users/view/admin/access_rules/edit.xhtml +0 -7
  362. data/lib/zen/packages/users/lib/users/view/admin/access_rules/form.xhtml +0 -68
  363. data/lib/zen/packages/users/lib/users/view/admin/access_rules/index.xhtml +0 -85
  364. data/lib/zen/packages/users/lib/users/view/admin/access_rules/new.xhtml +0 -7
  365. data/lib/zen/packages/users/lib/users/view/admin/user_groups/edit.xhtml +0 -7
  366. data/lib/zen/packages/users/lib/users/view/admin/user_groups/form.xhtml +0 -19
  367. data/lib/zen/packages/users/lib/users/view/admin/user_groups/index.xhtml +0 -69
  368. data/lib/zen/packages/users/lib/users/view/admin/user_groups/new.xhtml +0 -7
  369. data/lib/zen/packages/users/lib/users/view/admin/users/edit.xhtml +0 -7
  370. data/lib/zen/packages/users/lib/users/view/admin/users/form.xhtml +0 -25
  371. data/lib/zen/packages/users/lib/users/view/admin/users/index.xhtml +0 -73
  372. data/lib/zen/packages/users/lib/users/view/admin/users/login.xhtml +0 -22
  373. data/lib/zen/packages/users/lib/users/view/admin/users/new.xhtml +0 -7
  374. data/lib/zen/tasks.rb +0 -6
  375. data/proto/app/Rakefile +0 -2
  376. data/proto/module/LICENSE +0 -0
  377. data/proto/module/README.textile +0 -0
  378. data/proto/module/lib/module.rb +0 -15
  379. data/spec/javascript/css/base.css +0 -177
  380. data/spec/javascript/css/style.css +0 -204
  381. data/spec/javascript/css/typography.css +0 -70
  382. data/spec/javascript/editor/index.html +0 -65
  383. data/spec/javascript/images/close.png +0 -0
  384. data/spec/javascript/images/info.png +0 -0
  385. data/spec/javascript/js/editor.js +0 -16
  386. data/spec/javascript/js/modal.js +0 -12
  387. data/spec/javascript/js/namespace.js +0 -2
  388. data/spec/javascript/js/notification.js +0 -43
  389. data/spec/javascript/js/tabs.js +0 -8
  390. data/spec/javascript/modal/index.html +0 -45
  391. data/spec/javascript/notification/index.html +0 -48
  392. data/spec/javascript/tabs/index.html +0 -73
  393. data/spec/javascript/tabs/tab_1.html +0 -1
  394. data/spec/javascript/tabs/tab_2.html +0 -1
  395. data/spec/zen/base/language.rb +0 -31
  396. data/spec/zen/base/logger.rb +0 -34
  397. data/spec/zen/base/package.rb +0 -47
  398. data/spec/zen/config/database.rb +0 -8
  399. data/spec/zen/helper/asset.rb +0 -26
  400. data/spec/zen/helper/breadcrumb.rb +0 -24
  401. data/spec/zen/language/en/general.rb +0 -4
  402. data/spec/zen/language/nl/general.rb +0 -4
  403. data/spec/zen/liquid/general.rb +0 -42
  404. data/spec/zen/logs/.gitkeep +0 -0
  405. data/spec/zen/spec.rb +0 -9
  406. data/spec/zen/spec_database.db +0 -0
  407. data/tasks/bacon.rake +0 -99
  408. data/tasks/build.rake +0 -72
  409. data/tasks/clean.rake +0 -18
  410. data/tasks/db.rake +0 -81
  411. data/tasks/doc.rake +0 -5
  412. data/tasks/extension.rake +0 -65
  413. data/tasks/proto.rake +0 -37
  414. data/tasks/theme.rake +0 -63
@@ -7,7 +7,7 @@ Sequel.migration do
7
7
  String :key , :null => false, :unique => true
8
8
  String :group_key, :null => false
9
9
  String :default , :text => true
10
- Enum :type , :elements => ['textbox', 'textarea', 'radio', 'checkbox', 'select']
10
+ String :type , :default => 'textbox'
11
11
  String :value , :text => true
12
12
  end
13
13
 
@@ -28,4 +28,4 @@ Sequel.migration do
28
28
  drop_table :settings
29
29
  end
30
30
 
31
- end
31
+ end
@@ -0,0 +1,62 @@
1
+ Sequel.migration do
2
+
3
+ up do
4
+ add_column(:settings, :language_key , String)
5
+ add_column(:settings, :language_group_key, String)
6
+
7
+ # Set the correct values for all rows
8
+ Zen::Database.handle[:settings].filter(:key => 'website_name')
9
+ .update(
10
+ :language_key => 'settings.labels.website_name',
11
+ :language_group_key => 'settings.tabs.general'
12
+ )
13
+
14
+ Zen::Database.handle[:settings].filter(:key => 'website_description')
15
+ .update(
16
+ :language_key => 'settings.labels.website_description',
17
+ :language_group_key => 'settings.tabs.general'
18
+ )
19
+
20
+ Zen::Database.handle[:settings].filter(:key => 'website_enabled')
21
+ .update(
22
+ :language_key => 'settings.labels.website_enabled',
23
+ :language_group_key => 'settings.tabs.general'
24
+ )
25
+
26
+ Zen::Database.handle[:settings].filter(:key => 'language')
27
+ .update(
28
+ :language_key => 'settings.labels.language',
29
+ :language_group_key => 'settings.tabs.general'
30
+ )
31
+
32
+ Zen::Database.handle[:settings].filter(:key => 'default_section')
33
+ .update(
34
+ :language_key => 'settings.labels.default_section',
35
+ :language_group_key => 'settings.tabs.general'
36
+ )
37
+
38
+ Zen::Database.handle[:settings].filter(:key => 'theme')
39
+ .update(
40
+ :language_key => 'settings.labels.theme',
41
+ :language_group_key => 'settings.tabs.general'
42
+ )
43
+
44
+ Zen::Database.handle[:settings].filter(:key => 'enable_antispam')
45
+ .update(
46
+ :language_key => 'settings.labels.enable_antispam',
47
+ :language_group_key => 'settings.tabs.security'
48
+ )
49
+
50
+ Zen::Database.handle[:settings].filter(:key => 'defensio_key')
51
+ .update(
52
+ :language_key => 'settings.labels.defensio_key',
53
+ :language_group_key => 'settings.tabs.security'
54
+ )
55
+ end
56
+
57
+ down do
58
+ drop_column(:settings, :language_key)
59
+ drop_column(:settings, :language_group_key)
60
+ end
61
+
62
+ end
@@ -13,6 +13,10 @@ require __DIR__('users/liquid/user')
13
13
  Liquid::Template.register_tag('users', Users::Liquid::Users)
14
14
  Liquid::Template.register_tag('user' , Users::Liquid::User)
15
15
 
16
+ # The trait for the User helper has to be specified in the constructor as
17
+ # our user model is loaded after this class is loaded (but before it's initialized)
18
+ Zen::Controllers::BaseController.trait(:user_model => Users::Models::User)
19
+
16
20
  Zen::Package.add do |p|
17
21
  p.type = 'extension'
18
22
  p.name = 'Users'
@@ -28,8 +32,8 @@ Zen::Package.add do |p|
28
32
  :title => "Users",
29
33
  :url => "admin/users",
30
34
  :children => [
31
- {:title => "User Groups" , :url => "admin/user_groups"},
32
- {:title => "Access Rules", :url => "admin/access_rules"}
35
+ {:title => "User Groups" , :url => "admin/user-groups" },
36
+ {:title => "Access Rules", :url => "admin/access-rules"}
33
37
  ]
34
38
  }]
35
39
  end
@@ -0,0 +1,238 @@
1
+ #:nodoc:
2
+ module Users
3
+ #:nodoc:
4
+ module Controllers
5
+ ##
6
+ # Controller for managing access rules. Each access rule can be used
7
+ # to specify whether or not a user can edit or create something.
8
+ #
9
+ # The following permissions are available:
10
+ #
11
+ # * create
12
+ # * read
13
+ # * update
14
+ # * delete
15
+ #
16
+ # @author Yorick Peterse
17
+ # @since 0.1
18
+ #
19
+ class AccessRules < Zen::Controllers::AdminController
20
+ include ::Users::Models
21
+
22
+ map '/admin/access-rules'
23
+ trait :extension_identifier => 'com.zen.users'
24
+
25
+ before_all do
26
+ csrf_protection(:save, :delete) do
27
+ respond(lang('zen_general.errors.csrf'), 403)
28
+ end
29
+ end
30
+
31
+ ##
32
+ # Load our language packs, set the form URLs and define our page title.
33
+ #
34
+ # This method loads the following language files:
35
+ #
36
+ # * access_rules
37
+ #
38
+ # @author Yorick Peterse
39
+ # @since 0.1
40
+ #
41
+ def initialize
42
+ super
43
+
44
+ @form_save_url = AccessRules.r(:save)
45
+ @form_delete_url = AccessRules.r(:delete)
46
+ @rules_lang = Zen::Language.load('access_rules')
47
+
48
+ # Set the page title
49
+ if !action.method.nil?
50
+ method = action.method.to_sym
51
+ @page_title = lang('access_rules.titles.#{method}') rescue nil
52
+ end
53
+
54
+ require_js 'users/access_rules'
55
+
56
+ @rule_applies_hash = {
57
+ lang('access_rules.labels.user') => 'div_user_id',
58
+ lang('access_rules.labels.user_group') => 'div_user_group_id'
59
+ }
60
+ end
61
+
62
+ ##
63
+ # Show an overview of all access rules and allow the current user
64
+ # to manage these groups.
65
+ #
66
+ # This method requires the following permissions:
67
+ #
68
+ # * read
69
+ #
70
+ # @author Yorick Peterse
71
+ # @since 0.1
72
+ #
73
+ def index
74
+ if !user_authorized?([:read])
75
+ respond(lang('zen_general.errors.not_authorized'), 403)
76
+ end
77
+
78
+ set_breadcrumbs(lang('access_rules.titles.index'))
79
+
80
+ @access_rules = AccessRule.all
81
+ end
82
+
83
+ ##
84
+ # Edit an existing access rule.
85
+ #
86
+ # This method requires the following permissions:
87
+ #
88
+ # * read
89
+ # * update
90
+ #
91
+ # @author Yorick Peterse
92
+ # @param [Integer] id The ID of the access rule to edit.
93
+ # @since 0.1
94
+ #
95
+ def edit(id)
96
+ if !user_authorized?([:read, :update])
97
+ respond(lang('zen_general.errors.not_authorized'), 403)
98
+ end
99
+
100
+ set_breadcrumbs(
101
+ anchor_to(lang('access_rules.titles.index'), AccessRules.r(:index)),
102
+ lang('access_rules.titles.edit')
103
+ )
104
+
105
+ if flash[:form_data]
106
+ @access_rule = flash[:form_data]
107
+ else
108
+ @access_rule = AccessRule[id]
109
+ end
110
+ end
111
+
112
+ ##
113
+ # Create a new access rule.
114
+ #
115
+ # This method requires the following permissions:
116
+ #
117
+ # * read
118
+ # * create§
119
+ #
120
+ # @author Yorick Peterse
121
+ # @since 0.1
122
+ #
123
+ def new
124
+ if !user_authorized?([:read, :create])
125
+ respond(lang('zen_general.errors.not_authorized'), 403)
126
+ end
127
+
128
+ set_breadcrumbs(
129
+ anchor_to(lang('access_rules.titles.index'), AccessRules.r(:index)),
130
+ lang('access_rules.titles.new')
131
+ )
132
+
133
+ @access_rule = AccessRule.new
134
+ end
135
+
136
+ ##
137
+ # Saves or creates a new access rule based on the POST data and a field named 'id'.
138
+ #
139
+ # This method requires the following permissions:
140
+ #
141
+ # * create
142
+ # * update
143
+ #
144
+ # @author Yorick Peterse
145
+ # @since 0.1
146
+ #
147
+ def save
148
+ if !user_authorized?([:create, :update])
149
+ respond(lang('zen_general.errors.not_authorized'), 403)
150
+ end
151
+
152
+ post = request.params.dup
153
+
154
+ if post['rule_applies'] == 'div_user_id'
155
+ post['user_group_id'] = nil
156
+ else
157
+ post['user_id'] = nil
158
+ end
159
+
160
+ post.delete('rule_applies')
161
+
162
+ if post['id'] and !post['id'].empty?
163
+ @access_rule = AccessRule[post['id']]
164
+ save_action = :save
165
+ else
166
+ @access_rule = AccessRule.new
167
+ save_action = :new
168
+ end
169
+
170
+ flash_success = lang("access_rules.success.#{save_action}")
171
+ flash_error = lang("access_rules.errors.#{save_action}")
172
+
173
+ begin
174
+ @access_rule.update(post)
175
+ notification(:success, lang('access_rules.titles.index'), flash_success)
176
+ rescue
177
+ notification(:error, lang('access_rules.titles.index'), flash_error)
178
+
179
+ flash[:form_data] = @access_rule
180
+ flash[:form_errors] = @access_rule.errors
181
+ end
182
+
183
+ if @access_rule.id
184
+ redirect(AccessRules.r(:edit, @access_rule.id))
185
+ else
186
+ redirect_referrer
187
+ end
188
+ end
189
+
190
+ ##
191
+ # Delete all specified access rules.
192
+ #
193
+ # This method requires the following permissions:
194
+ #
195
+ # * delete
196
+ #
197
+ # @author Yorick Peterse
198
+ # @since 0.1
199
+ #
200
+ def delete
201
+ if !user_authorized?([:delete])
202
+ respond(lang('zen_general.errors.not_authorized'), 403)
203
+ end
204
+
205
+ if !request.params['access_rule_ids'] or request.params['access_rule_ids'].empty?
206
+ notification(
207
+ :error,
208
+ lang('access_rules.titles.index'),
209
+ lang('access_rules.errors.no_delete')
210
+ )
211
+
212
+ redirect_referrer
213
+ end
214
+
215
+ request.params['access_rule_ids'].each do |id|
216
+ @access_rule = AccessRule[id]
217
+
218
+ begin
219
+ @access_rule.delete
220
+ notification(
221
+ :success,
222
+ lang('access_rules.titles.index'),
223
+ lang('access_rules.success.delete')
224
+ )
225
+ rescue
226
+ notification(
227
+ :error,
228
+ lang('access_rules.titles.index'),
229
+ lang('access_rules.errors.delete') % id
230
+ )
231
+ end
232
+ end
233
+
234
+ redirect_referrer
235
+ end
236
+ end
237
+ end
238
+ end
@@ -0,0 +1,217 @@
1
+ #:nodoc:
2
+ module Users
3
+ #:nodoc:
4
+ module Controllers
5
+ ##
6
+ # Controller for managing all user groups. It's not
7
+ # required to add a user to a group but it can certainly
8
+ # make it easier when adding custom permissions or
9
+ # granting a user full access to the backend.
10
+ #
11
+ # @author Yorick Peterse
12
+ # @since 0.1
13
+ #
14
+ class UserGroups < Zen::Controllers::AdminController
15
+ include ::Users::Models
16
+
17
+ map '/admin/user-groups'
18
+ trait :extension_identifier => 'com.zen.users'
19
+
20
+ before_all do
21
+ csrf_protection(:save, :delete) do
22
+ respond(lang('zen_general.errors.csrf'), 403)
23
+ end
24
+ end
25
+
26
+ ##
27
+ # Load our language packs, set the form URLs and define our page title.
28
+ #
29
+ # This method loads the following language files:
30
+ #
31
+ # * user_groups
32
+ #
33
+ # @author Yorick Peterse
34
+ # @since 0.1
35
+ #
36
+ def initialize
37
+ super
38
+
39
+ @form_save_url = UserGroups.r(:save)
40
+ @form_delete_url = UserGroups.r(:delete)
41
+
42
+ Zen::Language.load('user_groups')
43
+
44
+ # Set the page title
45
+ if !action.method.nil?
46
+ method = action.method.to_sym
47
+ @page_title = lang("user_groups.titles.#{method}") rescue nil
48
+ end
49
+ end
50
+
51
+ ##
52
+ # Show an overview of all user groups and allow the current user
53
+ # to manage these groups
54
+ #
55
+ # This method requires the following permissions:
56
+ #
57
+ # * read
58
+ #
59
+ # @author Yorick Peterse
60
+ # @since 0.1
61
+ #
62
+ def index
63
+ if !user_authorized?([:read])
64
+ respond(lang('zen_general.errors.not_authorized'), 403)
65
+ end
66
+
67
+ set_breadcrumbs(lang('user_groups.titles.index'))
68
+
69
+ @user_groups = UserGroup.all
70
+ end
71
+
72
+ ##
73
+ # Edit an existing user group.
74
+ #
75
+ # This method requires the following permissions:
76
+ #
77
+ # * read
78
+ # * update
79
+ #
80
+ # @author Yorick Peterse
81
+ # @param [Integer] id The ID of the user group to edit.
82
+ # @since 0.1
83
+ #
84
+ def edit(id)
85
+ if !user_authorized?([:read, :update])
86
+ respond(lang('zen_general.errors.not_authorized'), 403)
87
+ end
88
+
89
+ set_breadcrumbs(
90
+ anchor_to(lang('user_groups.titles.index'), UserGroups.r(:index)),
91
+ lang('user_groups.titles.edit')
92
+ )
93
+
94
+ if flash[:form_data]
95
+ @user_group = flash[:form_data]
96
+ else
97
+ @user_group = UserGroup[id.to_i]
98
+ end
99
+ end
100
+
101
+ ##
102
+ # Create a new user group.
103
+ #
104
+ # This method requires the following permissions:
105
+ #
106
+ # * read
107
+ # * create
108
+ #
109
+ # @author Yorick Peterse
110
+ # @since 0.1
111
+ #
112
+ def new
113
+ if !user_authorized?([:read, :create])
114
+ respond(lang('zen_general.errors.not_authorized'), 403)
115
+ end
116
+
117
+ set_breadcrumbs(
118
+ anchor_to(lang('user_groups.titles.index'), UserGroups.r(:index)),
119
+ lang('user_groups.titles.new')
120
+ )
121
+
122
+ @user_group = UserGroup.new
123
+ end
124
+
125
+ ##
126
+ # Saves or creates a new user group based on the POST data and a field named 'id'.
127
+ #
128
+ # This method requires the following permissions:
129
+ #
130
+ # * create
131
+ # * read
132
+ #
133
+ # @author Yorick Peterse
134
+ # @since 0.1
135
+ #
136
+ def save
137
+ if !user_authorized?([:create, :update])
138
+ respond(lang('zen_general.errors.not_authorized'), 403)
139
+ end
140
+
141
+ post = request.params.dup
142
+
143
+ if post['id'] and !post['id'].empty?
144
+ @user_group = UserGroup[post['id']]
145
+ save_action = :save
146
+ else
147
+ @user_group = UserGroup.new
148
+ save_action = :new
149
+ end
150
+
151
+ flash_success = lang("user_groups.success.#{save_action}")
152
+ flash_error = lang("user_groups.errors.#{save_action}")
153
+
154
+ begin
155
+ @user_group.update(post)
156
+ notification(:success, lang('user_groups.titles.index'), flash_success)
157
+ rescue
158
+ notification(:error, lang('user_groups.titles.index'), flash_error)
159
+
160
+ flash[:form_data] = @user_group
161
+ flash[:form_errors] = @user_group.errors
162
+ end
163
+
164
+ if @user_group.id
165
+ redirect(UserGroups.r(:edit, @user_group.id))
166
+ else
167
+ redirect_referrer
168
+ end
169
+ end
170
+
171
+ ##
172
+ # Delete all specified user groups.
173
+ #
174
+ # This method requires the following permissions:
175
+ #
176
+ # * delete
177
+ #
178
+ # @author Yorick Peterse
179
+ # @since 0.1
180
+ #
181
+ def delete
182
+ if !user_authorized?([:delete])
183
+ respond(lang('zen_general.errors.not_authorized'), 403)
184
+ end
185
+
186
+ if !request.params['user_group_ids'] or request.params['user_group_ids'].empty?
187
+ notification(
188
+ :error,
189
+ lang('user_groups.titles.index'),
190
+ lang('user_groups.errors.no_delete')
191
+ )
192
+
193
+ redirect_referrer
194
+ end
195
+
196
+ request.params['user_group_ids'].each do |id|
197
+ begin
198
+ UserGroup[id.to_i].destroy
199
+ notification(
200
+ :success,
201
+ lang('user_groups.titles.index'),
202
+ lang('user_groups.success.delete')
203
+ )
204
+ rescue
205
+ notification(
206
+ :error,
207
+ lang('user_groups.titles.index'),
208
+ lang('user_groups.errors.delete') % id
209
+ )
210
+ end
211
+ end
212
+
213
+ redirect_referrer
214
+ end
215
+ end
216
+ end
217
+ end