activeldap 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. data/CHANGES +454 -0
  2. data/COPYING +340 -0
  3. data/LICENSE +58 -0
  4. data/README +101 -0
  5. data/Rakefile +175 -0
  6. data/TODO +25 -0
  7. data/benchmark/bench-al.rb +202 -0
  8. data/benchmark/config.yaml.sample +5 -0
  9. data/data/locale/en/LC_MESSAGES/active-ldap.mo +0 -0
  10. data/data/locale/ja/LC_MESSAGES/active-ldap.mo +0 -0
  11. data/examples/al-admin/README +182 -0
  12. data/examples/al-admin/Rakefile +10 -0
  13. data/examples/al-admin/app/controllers/account_controller.rb +59 -0
  14. data/examples/al-admin/app/controllers/application.rb +34 -0
  15. data/examples/al-admin/app/controllers/attributes_controller.rb +17 -0
  16. data/examples/al-admin/app/controllers/directory_controller.rb +47 -0
  17. data/examples/al-admin/app/controllers/object_classes_controller.rb +17 -0
  18. data/examples/al-admin/app/controllers/syntaxes_controller.rb +17 -0
  19. data/examples/al-admin/app/controllers/users_controller.rb +51 -0
  20. data/examples/al-admin/app/controllers/welcome_controller.rb +10 -0
  21. data/examples/al-admin/app/helpers/account_helper.rb +2 -0
  22. data/examples/al-admin/app/helpers/application_helper.rb +42 -0
  23. data/examples/al-admin/app/helpers/attributes_helper.rb +15 -0
  24. data/examples/al-admin/app/helpers/directory_helper.rb +7 -0
  25. data/examples/al-admin/app/helpers/object_classes_helper.rb +10 -0
  26. data/examples/al-admin/app/helpers/syntaxes_helper.rb +10 -0
  27. data/examples/al-admin/app/helpers/url_helper.rb +13 -0
  28. data/examples/al-admin/app/helpers/users_helper.rb +17 -0
  29. data/examples/al-admin/app/helpers/welcome_helper.rb +2 -0
  30. data/examples/al-admin/app/models/entry.rb +23 -0
  31. data/examples/al-admin/app/models/ldap_user.rb +54 -0
  32. data/examples/al-admin/app/models/user.rb +91 -0
  33. data/examples/al-admin/app/views/_entry/_attributes_information.rhtml +23 -0
  34. data/examples/al-admin/app/views/_entry/_entry.rhtml +15 -0
  35. data/examples/al-admin/app/views/_schema/_aliases.rhtml +7 -0
  36. data/examples/al-admin/app/views/_switcher/_after.rhtml +2 -0
  37. data/examples/al-admin/app/views/_switcher/_before.rhtml +5 -0
  38. data/examples/al-admin/app/views/account/login.rhtml +26 -0
  39. data/examples/al-admin/app/views/account/sign_up.rhtml +28 -0
  40. data/examples/al-admin/app/views/attributes/_attributes.rhtml +19 -0
  41. data/examples/al-admin/app/views/attributes/_detail.rhtml +29 -0
  42. data/examples/al-admin/app/views/attributes/index.rhtml +3 -0
  43. data/examples/al-admin/app/views/attributes/show.rhtml +31 -0
  44. data/examples/al-admin/app/views/directory/_tree.rhtml +10 -0
  45. data/examples/al-admin/app/views/directory/_tree_view_js.rhtml +26 -0
  46. data/examples/al-admin/app/views/directory/index.rhtml +13 -0
  47. data/examples/al-admin/app/views/directory/populate.rhtml +2 -0
  48. data/examples/al-admin/app/views/layouts/_flash_box.rhtml +4 -0
  49. data/examples/al-admin/app/views/layouts/_footer.rhtml +9 -0
  50. data/examples/al-admin/app/views/layouts/_header_menu.rhtml +10 -0
  51. data/examples/al-admin/app/views/layouts/_main_menu.rhtml +18 -0
  52. data/examples/al-admin/app/views/layouts/application.rhtml +56 -0
  53. data/examples/al-admin/app/views/object_classes/_attributes.rhtml +28 -0
  54. data/examples/al-admin/app/views/object_classes/_object_classes.rhtml +19 -0
  55. data/examples/al-admin/app/views/object_classes/index.rhtml +3 -0
  56. data/examples/al-admin/app/views/object_classes/show.rhtml +39 -0
  57. data/examples/al-admin/app/views/syntaxes/_detail.rhtml +14 -0
  58. data/examples/al-admin/app/views/syntaxes/_syntaxes.rhtml +19 -0
  59. data/examples/al-admin/app/views/syntaxes/index.rhtml +3 -0
  60. data/examples/al-admin/app/views/syntaxes/show.rhtml +22 -0
  61. data/examples/al-admin/app/views/users/_attributes_update_form.rhtml +30 -0
  62. data/examples/al-admin/app/views/users/_form.rhtml +13 -0
  63. data/examples/al-admin/app/views/users/_object_classes_update_form.rhtml +40 -0
  64. data/examples/al-admin/app/views/users/_password_change_form.rhtml +20 -0
  65. data/examples/al-admin/app/views/users/edit.rhtml +15 -0
  66. data/examples/al-admin/app/views/users/index.rhtml +10 -0
  67. data/examples/al-admin/app/views/users/show.rhtml +11 -0
  68. data/examples/al-admin/app/views/welcome/index.rhtml +13 -0
  69. data/examples/al-admin/config/boot.rb +45 -0
  70. data/examples/al-admin/config/database.yml.example +19 -0
  71. data/examples/al-admin/config/environment.rb +70 -0
  72. data/examples/al-admin/config/environments/development.rb +21 -0
  73. data/examples/al-admin/config/environments/production.rb +18 -0
  74. data/examples/al-admin/config/environments/test.rb +19 -0
  75. data/examples/al-admin/config/ldap.yml.example +21 -0
  76. data/examples/al-admin/config/routes.rb +46 -0
  77. data/examples/al-admin/db/migrate/001_create_users.rb +16 -0
  78. data/examples/al-admin/lib/accept_http_rails_relative_url_root.rb +9 -0
  79. data/examples/al-admin/lib/authenticated_system.rb +124 -0
  80. data/examples/al-admin/lib/authenticated_test_helper.rb +113 -0
  81. data/examples/al-admin/lib/tasks/gettext.rake +35 -0
  82. data/examples/al-admin/po/en/al-admin.po +341 -0
  83. data/examples/al-admin/po/ja/al-admin.po +341 -0
  84. data/examples/al-admin/po/nl/al-admin.po +373 -0
  85. data/examples/al-admin/public/.htaccess +40 -0
  86. data/examples/al-admin/public/404.html +30 -0
  87. data/examples/al-admin/public/500.html +30 -0
  88. data/examples/al-admin/public/dispatch.cgi +10 -0
  89. data/examples/al-admin/public/dispatch.fcgi +24 -0
  90. data/examples/al-admin/public/dispatch.rb +10 -0
  91. data/examples/al-admin/public/favicon.ico +0 -0
  92. data/examples/al-admin/public/images/active-ldap.svg +6351 -0
  93. data/examples/al-admin/public/images/al-admin.png +0 -0
  94. data/examples/al-admin/public/images/al-admin.svg +6371 -0
  95. data/examples/al-admin/public/images/header-background.png +0 -0
  96. data/examples/al-admin/public/images/header-background.svg +99 -0
  97. data/examples/al-admin/public/images/rails.png +0 -0
  98. data/examples/al-admin/public/images/spinelz/accordion_tab_left_active.gif +0 -0
  99. data/examples/al-admin/public/images/spinelz/accordion_tab_left_inactive.gif +0 -0
  100. data/examples/al-admin/public/images/spinelz/accordion_tab_middle_active.gif +0 -0
  101. data/examples/al-admin/public/images/spinelz/accordion_tab_middle_inactive.gif +0 -0
  102. data/examples/al-admin/public/images/spinelz/accordion_tab_right_active.gif +0 -0
  103. data/examples/al-admin/public/images/spinelz/accordion_tab_right_inactive.gif +0 -0
  104. data/examples/al-admin/public/images/spinelz/balloon_back.gif +0 -0
  105. data/examples/al-admin/public/images/spinelz/balloon_bottom_left.gif +0 -0
  106. data/examples/al-admin/public/images/spinelz/balloon_bottom_middle.gif +0 -0
  107. data/examples/al-admin/public/images/spinelz/balloon_bottom_right.gif +0 -0
  108. data/examples/al-admin/public/images/spinelz/balloon_left_down_arrow.gif +0 -0
  109. data/examples/al-admin/public/images/spinelz/balloon_left_up_arrow.gif +0 -0
  110. data/examples/al-admin/public/images/spinelz/balloon_middle_left.gif +0 -0
  111. data/examples/al-admin/public/images/spinelz/balloon_middle_right.gif +0 -0
  112. data/examples/al-admin/public/images/spinelz/balloon_right_down_arrow.gif +0 -0
  113. data/examples/al-admin/public/images/spinelz/balloon_right_up_arrow.gif +0 -0
  114. data/examples/al-admin/public/images/spinelz/balloon_top_left.gif +0 -0
  115. data/examples/al-admin/public/images/spinelz/balloon_top_middle.gif +0 -0
  116. data/examples/al-admin/public/images/spinelz/balloon_top_right.gif +0 -0
  117. data/examples/al-admin/public/images/spinelz/barchart_h.gif +0 -0
  118. data/examples/al-admin/public/images/spinelz/barchart_v.gif +0 -0
  119. data/examples/al-admin/public/images/spinelz/button.gif +0 -0
  120. data/examples/al-admin/public/images/spinelz/calendar_default_handler.gif +0 -0
  121. data/examples/al-admin/public/images/spinelz/calendar_delete.gif +0 -0
  122. data/examples/al-admin/public/images/spinelz/calendar_next.gif +0 -0
  123. data/examples/al-admin/public/images/spinelz/calendar_next_second.gif +0 -0
  124. data/examples/al-admin/public/images/spinelz/calendar_pre.gif +0 -0
  125. data/examples/al-admin/public/images/spinelz/calendar_pre_second.gif +0 -0
  126. data/examples/al-admin/public/images/spinelz/calendar_private_icon.gif +0 -0
  127. data/examples/al-admin/public/images/spinelz/calendar_schedule.gif +0 -0
  128. data/examples/al-admin/public/images/spinelz/calender_back.gif +0 -0
  129. data/examples/al-admin/public/images/spinelz/calender_back_second.gif +0 -0
  130. data/examples/al-admin/public/images/spinelz/datepicker2_back.gif +0 -0
  131. data/examples/al-admin/public/images/spinelz/datepicker2_back_second.gif +0 -0
  132. data/examples/al-admin/public/images/spinelz/datepicker2_next.gif +0 -0
  133. data/examples/al-admin/public/images/spinelz/datepicker2_next_second.gif +0 -0
  134. data/examples/al-admin/public/images/spinelz/datepicker2_pre.gif +0 -0
  135. data/examples/al-admin/public/images/spinelz/datepicker2_pre_second.gif +0 -0
  136. data/examples/al-admin/public/images/spinelz/datepicker_back.gif +0 -0
  137. data/examples/al-admin/public/images/spinelz/datepicker_back_second.gif +0 -0
  138. data/examples/al-admin/public/images/spinelz/datepicker_next.gif +0 -0
  139. data/examples/al-admin/public/images/spinelz/datepicker_next_second.gif +0 -0
  140. data/examples/al-admin/public/images/spinelz/datepicker_pre.gif +0 -0
  141. data/examples/al-admin/public/images/spinelz/datepicker_pre_second.gif +0 -0
  142. data/examples/al-admin/public/images/spinelz/grid_down.gif +0 -0
  143. data/examples/al-admin/public/images/spinelz/grid_state.gif +0 -0
  144. data/examples/al-admin/public/images/spinelz/grid_up.gif +0 -0
  145. data/examples/al-admin/public/images/spinelz/icon_day.gif +0 -0
  146. data/examples/al-admin/public/images/spinelz/icon_month.gif +0 -0
  147. data/examples/al-admin/public/images/spinelz/icon_week.gif +0 -0
  148. data/examples/al-admin/public/images/spinelz/menubar_back.gif +0 -0
  149. data/examples/al-admin/public/images/spinelz/menubar_subcontents_back.gif +0 -0
  150. data/examples/al-admin/public/images/spinelz/navPanel_tab_left_active.gif +0 -0
  151. data/examples/al-admin/public/images/spinelz/navPanel_tab_left_inactive.gif +0 -0
  152. data/examples/al-admin/public/images/spinelz/navPanel_tab_middle_active.gif +0 -0
  153. data/examples/al-admin/public/images/spinelz/navPanel_tab_middle_inactive.gif +0 -0
  154. data/examples/al-admin/public/images/spinelz/navPanel_tab_right_active.gif +0 -0
  155. data/examples/al-admin/public/images/spinelz/navPanel_tab_right_inactive.gif +0 -0
  156. data/examples/al-admin/public/images/spinelz/select_date.gif +0 -0
  157. data/examples/al-admin/public/images/spinelz/selectabletable_selected.gif +0 -0
  158. data/examples/al-admin/public/images/spinelz/sideBarBox_about.gif +0 -0
  159. data/examples/al-admin/public/images/spinelz/sideBarBox_menu.gif +0 -0
  160. data/examples/al-admin/public/images/spinelz/sideBarBox_sample.gif +0 -0
  161. data/examples/al-admin/public/images/spinelz/sideBarBox_tabBottomActive.gif +0 -0
  162. data/examples/al-admin/public/images/spinelz/sideBarBox_tabBottomInactive.gif +0 -0
  163. data/examples/al-admin/public/images/spinelz/sideBarBox_tabMiddleActive.gif +0 -0
  164. data/examples/al-admin/public/images/spinelz/sideBarBox_tabMiddleActive2.gif +0 -0
  165. data/examples/al-admin/public/images/spinelz/sideBarBox_tabMiddleInactive.gif +0 -0
  166. data/examples/al-admin/public/images/spinelz/sideBarBox_tabMiddleInactive2.gif +0 -0
  167. data/examples/al-admin/public/images/spinelz/sideBarBox_tabTopActive.gif +0 -0
  168. data/examples/al-admin/public/images/spinelz/sideBarBox_tabTopInactive.gif +0 -0
  169. data/examples/al-admin/public/images/spinelz/sideBarBox_tabbar.gif +0 -0
  170. data/examples/al-admin/public/images/spinelz/sortableTable_down.gif +0 -0
  171. data/examples/al-admin/public/images/spinelz/sortableTable_normal.gif +0 -0
  172. data/examples/al-admin/public/images/spinelz/sortableTable_up.gif +0 -0
  173. data/examples/al-admin/public/images/spinelz/switcher_close.gif +0 -0
  174. data/examples/al-admin/public/images/spinelz/switcher_open.gif +0 -0
  175. data/examples/al-admin/public/images/spinelz/tabBox_close.gif +0 -0
  176. data/examples/al-admin/public/images/spinelz/tabBox_tabLeftActive.gif +0 -0
  177. data/examples/al-admin/public/images/spinelz/tabBox_tabLeftInactive.gif +0 -0
  178. data/examples/al-admin/public/images/spinelz/tabBox_tabMiddleActive.gif +0 -0
  179. data/examples/al-admin/public/images/spinelz/tabBox_tabMiddleInactive.gif +0 -0
  180. data/examples/al-admin/public/images/spinelz/tabBox_tabRightActive.gif +0 -0
  181. data/examples/al-admin/public/images/spinelz/tabBox_tabRightInactive.gif +0 -0
  182. data/examples/al-admin/public/images/spinelz/tab_bar.gif +0 -0
  183. data/examples/al-admin/public/images/spinelz/table_back.gif +0 -0
  184. data/examples/al-admin/public/images/spinelz/timepicker_clock.gif +0 -0
  185. data/examples/al-admin/public/images/spinelz/toolbar_close.gif +0 -0
  186. data/examples/al-admin/public/images/spinelz/toolbar_left.gif +0 -0
  187. data/examples/al-admin/public/images/spinelz/toolbar_max.gif +0 -0
  188. data/examples/al-admin/public/images/spinelz/toolbar_middle.gif +0 -0
  189. data/examples/al-admin/public/images/spinelz/toolbar_min.gif +0 -0
  190. data/examples/al-admin/public/images/spinelz/toolbar_next.gif +0 -0
  191. data/examples/al-admin/public/images/spinelz/toolbar_right.gif +0 -0
  192. data/examples/al-admin/public/images/spinelz/treeview_dir.gif +0 -0
  193. data/examples/al-admin/public/images/spinelz/treeview_file.gif +0 -0
  194. data/examples/al-admin/public/images/spinelz/treeview_group.gif +0 -0
  195. data/examples/al-admin/public/images/spinelz/treeview_group_special.gif +0 -0
  196. data/examples/al-admin/public/images/spinelz/treeview_state.gif +0 -0
  197. data/examples/al-admin/public/images/spinelz/treeview_user.gif +0 -0
  198. data/examples/al-admin/public/images/spinelz/window_bottom_left.gif +0 -0
  199. data/examples/al-admin/public/images/spinelz/window_bottom_middle.gif +0 -0
  200. data/examples/al-admin/public/images/spinelz/window_bottom_right.gif +0 -0
  201. data/examples/al-admin/public/images/spinelz/window_close.gif +0 -0
  202. data/examples/al-admin/public/images/spinelz/window_max.gif +0 -0
  203. data/examples/al-admin/public/images/spinelz/window_middle_left.gif +0 -0
  204. data/examples/al-admin/public/images/spinelz/window_middle_right.gif +0 -0
  205. data/examples/al-admin/public/images/spinelz/window_min.gif +0 -0
  206. data/examples/al-admin/public/images/spinelz/window_top_left.gif +0 -0
  207. data/examples/al-admin/public/images/spinelz/window_top_middle.gif +0 -0
  208. data/examples/al-admin/public/images/spinelz/window_top_right.gif +0 -0
  209. data/examples/al-admin/public/javascripts/application.js +2 -0
  210. data/examples/al-admin/public/javascripts/controls.js +833 -0
  211. data/examples/al-admin/public/javascripts/dragdrop.js +942 -0
  212. data/examples/al-admin/public/javascripts/effects.js +1088 -0
  213. data/examples/al-admin/public/javascripts/prototype.js +2515 -0
  214. data/examples/al-admin/public/javascripts/spinelz/accordion.js +185 -0
  215. data/examples/al-admin/public/javascripts/spinelz/ajaxHistory.js +157 -0
  216. data/examples/al-admin/public/javascripts/spinelz/balloon.js +287 -0
  217. data/examples/al-admin/public/javascripts/spinelz/barchart.js +524 -0
  218. data/examples/al-admin/public/javascripts/spinelz/calendar.js +3012 -0
  219. data/examples/al-admin/public/javascripts/spinelz/colorpicker.js +128 -0
  220. data/examples/al-admin/public/javascripts/spinelz/datepicker.js +438 -0
  221. data/examples/al-admin/public/javascripts/spinelz/grid.js +1391 -0
  222. data/examples/al-admin/public/javascripts/spinelz/grid_resizeEx.js +100 -0
  223. data/examples/al-admin/public/javascripts/spinelz/grid_sortabletableEx.js +129 -0
  224. data/examples/al-admin/public/javascripts/spinelz/inplaceEditorEx.js +148 -0
  225. data/examples/al-admin/public/javascripts/spinelz/menubar.js +232 -0
  226. data/examples/al-admin/public/javascripts/spinelz/navPanel.js +170 -0
  227. data/examples/al-admin/public/javascripts/spinelz/selectableTable.js +433 -0
  228. data/examples/al-admin/public/javascripts/spinelz/sideBarBox.js +282 -0
  229. data/examples/al-admin/public/javascripts/spinelz/sideBarBox_effects.js +83 -0
  230. data/examples/al-admin/public/javascripts/spinelz/sortableTable.js +270 -0
  231. data/examples/al-admin/public/javascripts/spinelz/switcher.js +78 -0
  232. data/examples/al-admin/public/javascripts/spinelz/tabBox.js +469 -0
  233. data/examples/al-admin/public/javascripts/spinelz/timepicker.js +384 -0
  234. data/examples/al-admin/public/javascripts/spinelz/toolbar.js +152 -0
  235. data/examples/al-admin/public/javascripts/spinelz/treeview.js +703 -0
  236. data/examples/al-admin/public/javascripts/spinelz/window.js +641 -0
  237. data/examples/al-admin/public/javascripts/spinelz/window_resizeEx.js +130 -0
  238. data/examples/al-admin/public/javascripts/spinelz_lib/builder.js +131 -0
  239. data/examples/al-admin/public/javascripts/spinelz_lib/controls.js +835 -0
  240. data/examples/al-admin/public/javascripts/spinelz_lib/dragdrop.js +944 -0
  241. data/examples/al-admin/public/javascripts/spinelz_lib/effects.js +1090 -0
  242. data/examples/al-admin/public/javascripts/spinelz_lib/json.js +139 -0
  243. data/examples/al-admin/public/javascripts/spinelz_lib/prototype.js +2515 -0
  244. data/examples/al-admin/public/javascripts/spinelz_lib/resize.js +215 -0
  245. data/examples/al-admin/public/javascripts/spinelz_lib/scriptaculous.js +51 -0
  246. data/examples/al-admin/public/javascripts/spinelz_lib/slider.js +278 -0
  247. data/examples/al-admin/public/javascripts/spinelz_lib/spinelz_util.js +1266 -0
  248. data/examples/al-admin/public/javascripts/spinelz_lib/unittest.js +564 -0
  249. data/examples/al-admin/public/robots.txt +1 -0
  250. data/examples/al-admin/public/stylesheets/account.css +41 -0
  251. data/examples/al-admin/public/stylesheets/attributes.css +1 -0
  252. data/examples/al-admin/public/stylesheets/base.css +99 -0
  253. data/examples/al-admin/public/stylesheets/common.css +2 -0
  254. data/examples/al-admin/public/stylesheets/detail.css +36 -0
  255. data/examples/al-admin/public/stylesheets/directory.css +22 -0
  256. data/examples/al-admin/public/stylesheets/object-classes.css +6 -0
  257. data/examples/al-admin/public/stylesheets/rails.css +35 -0
  258. data/examples/al-admin/public/stylesheets/spinelz/accordion.css +59 -0
  259. data/examples/al-admin/public/stylesheets/spinelz/balloon.css +151 -0
  260. data/examples/al-admin/public/stylesheets/spinelz/calendar.css +564 -0
  261. data/examples/al-admin/public/stylesheets/spinelz/datepicker.css +175 -0
  262. data/examples/al-admin/public/stylesheets/spinelz/grid.css +137 -0
  263. data/examples/al-admin/public/stylesheets/spinelz/menubar.css +78 -0
  264. data/examples/al-admin/public/stylesheets/spinelz/modal.css +22 -0
  265. data/examples/al-admin/public/stylesheets/spinelz/navPanel.css +58 -0
  266. data/examples/al-admin/public/stylesheets/spinelz/selectableTable.css +28 -0
  267. data/examples/al-admin/public/stylesheets/spinelz/sideBarBox.css +82 -0
  268. data/examples/al-admin/public/stylesheets/spinelz/sortableTable.css +51 -0
  269. data/examples/al-admin/public/stylesheets/spinelz/switcher.css +23 -0
  270. data/examples/al-admin/public/stylesheets/spinelz/tabBox.css +94 -0
  271. data/examples/al-admin/public/stylesheets/spinelz/timepicker.css +508 -0
  272. data/examples/al-admin/public/stylesheets/spinelz/toolbar.css +82 -0
  273. data/examples/al-admin/public/stylesheets/spinelz/treeview.css +121 -0
  274. data/examples/al-admin/public/stylesheets/spinelz/window.css +140 -0
  275. data/examples/al-admin/public/stylesheets/structure.css +81 -0
  276. data/examples/al-admin/public/stylesheets/syntaxes.css +1 -0
  277. data/examples/al-admin/public/stylesheets/users.css +13 -0
  278. data/examples/al-admin/public/stylesheets/welcome.css +0 -0
  279. data/examples/al-admin/script/about +3 -0
  280. data/examples/al-admin/script/breakpointer +3 -0
  281. data/examples/al-admin/script/console +3 -0
  282. data/examples/al-admin/script/destroy +3 -0
  283. data/examples/al-admin/script/generate +3 -0
  284. data/examples/al-admin/script/performance/benchmarker +3 -0
  285. data/examples/al-admin/script/performance/profiler +3 -0
  286. data/examples/al-admin/script/plugin +3 -0
  287. data/examples/al-admin/script/process/inspector +3 -0
  288. data/examples/al-admin/script/process/reaper +3 -0
  289. data/examples/al-admin/script/process/spawner +3 -0
  290. data/examples/al-admin/script/runner +3 -0
  291. data/examples/al-admin/script/server +3 -0
  292. data/examples/al-admin/test/fixtures/users.yml +9 -0
  293. data/examples/al-admin/test/functional/account_controller_test.rb +24 -0
  294. data/examples/al-admin/test/functional/attributes_controller_test.rb +18 -0
  295. data/examples/al-admin/test/functional/directory_controller_test.rb +18 -0
  296. data/examples/al-admin/test/functional/object_classes_controller_test.rb +18 -0
  297. data/examples/al-admin/test/functional/syntaxes_controller_test.rb +18 -0
  298. data/examples/al-admin/test/functional/users_controller_test.rb +18 -0
  299. data/examples/al-admin/test/functional/welcome_controller_test.rb +18 -0
  300. data/examples/al-admin/test/run-test.sh +3 -0
  301. data/examples/al-admin/test/test_helper.rb +28 -0
  302. data/examples/al-admin/test/unit/user_test.rb +13 -0
  303. data/examples/al-admin/vendor/plugins/exception_notification/README +111 -0
  304. data/examples/al-admin/vendor/plugins/exception_notification/init.rb +1 -0
  305. data/examples/al-admin/vendor/plugins/exception_notification/lib/exception_notifiable.rb +99 -0
  306. data/examples/al-admin/vendor/plugins/exception_notification/lib/exception_notifier.rb +67 -0
  307. data/examples/al-admin/vendor/plugins/exception_notification/lib/exception_notifier_helper.rb +77 -0
  308. data/examples/al-admin/vendor/plugins/exception_notification/test/exception_notifier_helper_test.rb +61 -0
  309. data/examples/al-admin/vendor/plugins/exception_notification/test/test_helper.rb +7 -0
  310. data/examples/al-admin/vendor/plugins/exception_notification/views/exception_notifier/_backtrace.rhtml +1 -0
  311. data/examples/al-admin/vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml +7 -0
  312. data/examples/al-admin/vendor/plugins/exception_notification/views/exception_notifier/_inspect_model.rhtml +16 -0
  313. data/examples/al-admin/vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml +3 -0
  314. data/examples/al-admin/vendor/plugins/exception_notification/views/exception_notifier/_session.rhtml +2 -0
  315. data/examples/al-admin/vendor/plugins/exception_notification/views/exception_notifier/_title.rhtml +3 -0
  316. data/examples/al-admin/vendor/plugins/exception_notification/views/exception_notifier/exception_notification.rhtml +6 -0
  317. data/examples/config.yaml.example +5 -0
  318. data/examples/example.der +0 -0
  319. data/examples/example.jpg +0 -0
  320. data/examples/groupadd +41 -0
  321. data/examples/groupdel +35 -0
  322. data/examples/groupls +49 -0
  323. data/examples/groupmod +42 -0
  324. data/examples/lpasswd +55 -0
  325. data/examples/objects/group.rb +13 -0
  326. data/examples/objects/ou.rb +4 -0
  327. data/examples/objects/user.rb +20 -0
  328. data/examples/ouadd +38 -0
  329. data/examples/useradd +45 -0
  330. data/examples/useradd-binary +50 -0
  331. data/examples/userdel +34 -0
  332. data/examples/userls +50 -0
  333. data/examples/usermod +42 -0
  334. data/examples/usermod-binary-add +47 -0
  335. data/examples/usermod-binary-add-time +51 -0
  336. data/examples/usermod-binary-del +48 -0
  337. data/examples/usermod-lang-add +43 -0
  338. data/lib/active_ldap/acts/tree.rb +75 -0
  339. data/lib/active_ldap/adapter/base.rb +531 -0
  340. data/lib/active_ldap/adapter/ldap.rb +231 -0
  341. data/lib/active_ldap/adapter/ldap_ext.rb +69 -0
  342. data/lib/active_ldap/adapter/net_ldap.rb +292 -0
  343. data/lib/active_ldap/adapter/net_ldap_ext.rb +29 -0
  344. data/lib/active_ldap/association/belongs_to.rb +47 -0
  345. data/lib/active_ldap/association/belongs_to_many.rb +42 -0
  346. data/lib/active_ldap/association/children.rb +21 -0
  347. data/lib/active_ldap/association/collection.rb +83 -0
  348. data/lib/active_ldap/association/has_many.rb +31 -0
  349. data/lib/active_ldap/association/has_many_utils.rb +35 -0
  350. data/lib/active_ldap/association/has_many_wrap.rb +46 -0
  351. data/lib/active_ldap/association/proxy.rb +102 -0
  352. data/lib/active_ldap/associations.rb +172 -0
  353. data/lib/active_ldap/attributes.rb +211 -0
  354. data/lib/active_ldap/base.rb +1273 -0
  355. data/lib/active_ldap/callbacks.rb +19 -0
  356. data/lib/active_ldap/command.rb +49 -0
  357. data/lib/active_ldap/configuration.rb +147 -0
  358. data/lib/active_ldap/connection.rb +237 -0
  359. data/lib/active_ldap/distinguished_name.rb +251 -0
  360. data/lib/active_ldap/escape.rb +12 -0
  361. data/lib/active_ldap/get_text/parser.rb +159 -0
  362. data/lib/active_ldap/get_text.rb +8 -0
  363. data/lib/active_ldap/get_text_fallback.rb +53 -0
  364. data/lib/active_ldap/get_text_support.rb +26 -0
  365. data/lib/active_ldap/helper.rb +33 -0
  366. data/lib/active_ldap/human_readable.rb +112 -0
  367. data/lib/active_ldap/ldap_error.rb +74 -0
  368. data/lib/active_ldap/ldif.rb +52 -0
  369. data/lib/active_ldap/object_class.rb +93 -0
  370. data/lib/active_ldap/operations.rb +429 -0
  371. data/lib/active_ldap/populate.rb +44 -0
  372. data/lib/active_ldap/schema/syntaxes.rb +386 -0
  373. data/lib/active_ldap/schema.rb +530 -0
  374. data/lib/active_ldap/timeout.rb +75 -0
  375. data/lib/active_ldap/timeout_stub.rb +17 -0
  376. data/lib/active_ldap/user_password.rb +93 -0
  377. data/lib/active_ldap/validations.rb +171 -0
  378. data/lib/active_ldap.rb +982 -0
  379. data/po/en/active-ldap.po +3677 -0
  380. data/po/ja/active-ldap.po +3713 -0
  381. data/rails/plugin/active_ldap/README +54 -0
  382. data/rails/plugin/active_ldap/generators/model_active_ldap/USAGE +17 -0
  383. data/rails/plugin/active_ldap/generators/model_active_ldap/model_active_ldap_generator.rb +70 -0
  384. data/rails/plugin/active_ldap/generators/model_active_ldap/templates/fixtures.yml +11 -0
  385. data/rails/plugin/active_ldap/generators/model_active_ldap/templates/model_active_ldap.rb +3 -0
  386. data/rails/plugin/active_ldap/generators/model_active_ldap/templates/unit_test.rb +10 -0
  387. data/rails/plugin/active_ldap/generators/scaffold_active_ldap/scaffold_active_ldap_generator.rb +7 -0
  388. data/rails/plugin/active_ldap/generators/scaffold_al/scaffold_al_generator.rb +20 -0
  389. data/rails/plugin/active_ldap/init.rb +26 -0
  390. data/test/al-test-utils.rb +362 -0
  391. data/test/command.rb +62 -0
  392. data/test/config.yaml.sample +6 -0
  393. data/test/run-test.rb +31 -0
  394. data/test/test-unit-ext/always-show-result.rb +28 -0
  395. data/test/test-unit-ext/backtrace-filter.rb +17 -0
  396. data/test/test-unit-ext/long-display-for-emacs.rb +25 -0
  397. data/test/test-unit-ext/priority.rb +163 -0
  398. data/test/test-unit-ext.rb +4 -0
  399. data/test/test_acts_as_tree.rb +57 -0
  400. data/test/test_adapter.rb +98 -0
  401. data/test/test_associations.rb +353 -0
  402. data/test/test_attributes.rb +79 -0
  403. data/test/test_base.rb +547 -0
  404. data/test/test_base_per_instance.rb +55 -0
  405. data/test/test_bind.rb +62 -0
  406. data/test/test_callback.rb +35 -0
  407. data/test/test_configuration.rb +40 -0
  408. data/test/test_connection.rb +59 -0
  409. data/test/test_connection_per_class.rb +58 -0
  410. data/test/test_connection_per_dn.rb +78 -0
  411. data/test/test_dn.rb +160 -0
  412. data/test/test_find.rb +96 -0
  413. data/test/test_groupadd.rb +50 -0
  414. data/test/test_groupdel.rb +46 -0
  415. data/test/test_groupls.rb +107 -0
  416. data/test/test_groupmod.rb +51 -0
  417. data/test/test_ldif.rb +35 -0
  418. data/test/test_lpasswd.rb +75 -0
  419. data/test/test_object_class.rb +56 -0
  420. data/test/test_reflection.rb +179 -0
  421. data/test/test_schema.rb +433 -0
  422. data/test/test_syntax.rb +329 -0
  423. data/test/test_user.rb +227 -0
  424. data/test/test_user_password.rb +93 -0
  425. data/test/test_useradd-binary.rb +61 -0
  426. data/test/test_useradd.rb +57 -0
  427. data/test/test_userdel.rb +48 -0
  428. data/test/test_userls.rb +91 -0
  429. data/test/test_usermod-binary-add-time.rb +64 -0
  430. data/test/test_usermod-binary-add.rb +63 -0
  431. data/test/test_usermod-binary-del.rb +66 -0
  432. data/test/test_usermod-lang-add.rb +59 -0
  433. data/test/test_usermod.rb +58 -0
  434. data/test/test_validation.rb +110 -0
  435. metadata +536 -0
@@ -0,0 +1,16 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def self.up
3
+ create_table "users", :force => true do |t|
4
+ t.column :login, :string
5
+ t.column :dn, :string
6
+ t.column :updated_at, :datetime
7
+ t.column :salt, :string
8
+ t.column :remember_token, :string
9
+ t.column :remember_token_expires_at, :datetime
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table "users"
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ module ActionController
2
+ class AbstractRequest
3
+ def relative_url_root_with_accept_http_rails_relative_url_root
4
+ @env["RAILS_RELATIVE_URL_ROOT"] ||= @env["HTTP_RAILS_RELATIVE_URL_ROOT"]
5
+ relative_url_root_without_accept_http_rails_relative_url_root
6
+ end
7
+ alias_method_chain :relative_url_root, :accept_http_rails_relative_url_root
8
+ end
9
+ end
@@ -0,0 +1,124 @@
1
+ module AuthenticatedSystem
2
+ protected
3
+ # Returns true or false if the user is logged in.
4
+ # Preloads @current_user with the user model if they're logged in.
5
+ def logged_in?
6
+ current_user != :false
7
+ end
8
+
9
+ # Accesses the current user from the session.
10
+ def current_user
11
+ @current_user ||= (session[:user] && User.find_by_id(session[:user])) || :false
12
+ end
13
+
14
+ # Store the given user in the session.
15
+ def current_user=(new_user)
16
+ session[:user] = (new_user.nil? || new_user.is_a?(Symbol)) ? nil : new_user.id
17
+ @current_user = new_user
18
+ end
19
+
20
+ # Check if the user is authorized.
21
+ #
22
+ # Override this method in your controllers if you want to restrict access
23
+ # to only a few actions or if you want to check if the user
24
+ # has the correct rights.
25
+ #
26
+ # Example:
27
+ #
28
+ # # only allow nonbobs
29
+ # def authorize?
30
+ # current_user.login != "bob"
31
+ # end
32
+ def authorized?
33
+ true
34
+ end
35
+
36
+ # Filter method to enforce a login requirement.
37
+ #
38
+ # To require logins for all actions, use this in your controllers:
39
+ #
40
+ # before_filter :login_required
41
+ #
42
+ # To require logins for specific actions, use this in your controllers:
43
+ #
44
+ # before_filter :login_required, :only => [ :edit, :update ]
45
+ #
46
+ # To skip this in a subclassed controller:
47
+ #
48
+ # skip_before_filter :login_required
49
+ #
50
+ def login_required
51
+ username, passwd = get_auth_data
52
+ self.current_user ||= User.authenticate(username, passwd) || :false if username && passwd
53
+ logged_in? && authorized? ? true : access_denied
54
+ end
55
+
56
+ # Redirect as appropriate when an access request fails.
57
+ #
58
+ # The default action is to redirect to the login screen.
59
+ #
60
+ # Override this method in your controllers if you want to have special
61
+ # behavior in case the user is not authorized
62
+ # to access the requested action. For example, a popup window might
63
+ # simply close itself.
64
+ def access_denied
65
+ respond_to do |accepts|
66
+ accepts.html do
67
+ store_location
68
+ flash.now[:notice] = _("Please login.")
69
+ redirect_to :controller => '/account', :action => 'login'
70
+ end
71
+ accepts.xml do
72
+ headers["Status"] = "Unauthorized"
73
+ headers["WWW-Authenticate"] = %(Basic realm="Web Password")
74
+ render :text => "Could't authenticate you", :status => '401 Unauthorized'
75
+ end
76
+ end
77
+ false
78
+ end
79
+
80
+ # Store the URI of the current request in the session.
81
+ #
82
+ # We can return to this location by calling #redirect_back_or_default.
83
+ def store_location
84
+ session[:return_to] = url_for(params.merge(:only_path => false))
85
+ end
86
+
87
+ # Redirect to the URI stored by the most recent store_location call or
88
+ # to the passed default.
89
+ def redirect_back_or_default(default)
90
+ session[:return_to] ? redirect_to_url(session[:return_to]) : redirect_to(default)
91
+ session[:return_to] = nil
92
+ end
93
+
94
+ # Inclusion hook to make #current_user and #logged_in?
95
+ # available as ActionView helper methods.
96
+ def self.included(base)
97
+ base.send :helper_method, :current_user, :logged_in?
98
+ end
99
+
100
+ # When called with before_filter :login_from_cookie will check for an :auth_token
101
+ # cookie and log the user back in if apropriate
102
+ def login_from_cookie
103
+ return unless cookies[:auth_token] && !logged_in?
104
+ user = User.find_by_remember_token(cookies[:auth_token])
105
+ if user && user.remember_token?
106
+ user.remember_me
107
+ self.current_user = user
108
+ cookies[:auth_token] = {
109
+ :value => current_user.remember_token,
110
+ :expires => current_user.remember_token_expires_at
111
+ }
112
+ flash.now[:notice] = _("Logged in successfully")
113
+ end
114
+ end
115
+
116
+ private
117
+ @@http_auth_headers = %w(X-HTTP_AUTHORIZATION HTTP_AUTHORIZATION Authorization)
118
+ # gets BASIC auth info
119
+ def get_auth_data
120
+ auth_key = @@http_auth_headers.detect { |h| request.env.has_key?(h) }
121
+ auth_data = request.env[auth_key].to_s.split unless auth_key.blank?
122
+ return auth_data && auth_data[0] == 'Basic' ? Base64.decode64(auth_data[1]).split(':')[0..1] : [nil, nil]
123
+ end
124
+ end
@@ -0,0 +1,113 @@
1
+ module AuthenticatedTestHelper
2
+ # Sets the current user in the session from the user fixtures.
3
+ def login_as(user)
4
+ @request.session[:user] = user ? users(user).id : nil
5
+ end
6
+
7
+ def content_type(type)
8
+ @request.env['Content-Type'] = type
9
+ end
10
+
11
+ def accept(accept)
12
+ @request.env["HTTP_ACCEPT"] = accept
13
+ end
14
+
15
+ def authorize_as(user)
16
+ if user
17
+ @request.env["HTTP_AUTHORIZATION"] = "Basic #{Base64.encode64("#{users(user).login}:test")}"
18
+ accept 'application/xml'
19
+ content_type 'application/xml'
20
+ else
21
+ @request.env["HTTP_AUTHORIZATION"] = nil
22
+ accept nil
23
+ content_type nil
24
+ end
25
+ end
26
+
27
+ # http://project.ioni.st/post/217#post-217
28
+ #
29
+ # def test_new_publication
30
+ # assert_difference(Publication, :count) do
31
+ # post :create, :publication => {...}
32
+ # # ...
33
+ # end
34
+ # end
35
+ #
36
+ def assert_difference(object, method = nil, difference = 1)
37
+ initial_value = object.send(method)
38
+ yield
39
+ assert_equal initial_value + difference, object.send(method), "#{object}##{method}"
40
+ end
41
+
42
+ def assert_no_difference(object, method, &block)
43
+ assert_difference object, method, 0, &block
44
+ end
45
+
46
+ # Assert the block redirects to the login
47
+ #
48
+ # assert_requires_login(:bob) { |c| c.get :edit, :id => 1 }
49
+ #
50
+ def assert_requires_login(login = nil)
51
+ yield HttpLoginProxy.new(self, login)
52
+ end
53
+
54
+ def assert_http_authentication_required(login = nil)
55
+ yield XmlLoginProxy.new(self, login)
56
+ end
57
+
58
+ def reset!(*instance_vars)
59
+ instance_vars = [:controller, :request, :response] unless instance_vars.any?
60
+ instance_vars.collect! { |v| "@#{v}".to_sym }
61
+ instance_vars.each do |var|
62
+ instance_variable_set(var, instance_variable_get(var).class.new)
63
+ end
64
+ end
65
+ end
66
+
67
+ class BaseLoginProxy
68
+ attr_reader :controller
69
+ attr_reader :options
70
+ def initialize(controller, login)
71
+ @controller = controller
72
+ @login = login
73
+ end
74
+
75
+ private
76
+ def authenticated
77
+ raise NotImplementedError
78
+ end
79
+
80
+ def check
81
+ raise NotImplementedError
82
+ end
83
+
84
+ def method_missing(method, *args)
85
+ @controller.reset!
86
+ authenticate
87
+ @controller.send(method, *args)
88
+ check
89
+ end
90
+ end
91
+
92
+ class HttpLoginProxy < BaseLoginProxy
93
+ protected
94
+ def authenticate
95
+ @controller.login_as @login if @login
96
+ end
97
+
98
+ def check
99
+ @controller.assert_redirected_to :controller => 'account', :action => 'login'
100
+ end
101
+ end
102
+
103
+ class XmlLoginProxy < BaseLoginProxy
104
+ protected
105
+ def authenticate
106
+ @controller.accept 'application/xml'
107
+ @controller.authorize_as @login if @login
108
+ end
109
+
110
+ def check
111
+ @controller.assert_response 401
112
+ end
113
+ end
@@ -0,0 +1,35 @@
1
+ # -*- ruby -*-
2
+
3
+ desc "Update *.po/*.pot files and create *.mo from *.po files"
4
+ task :gettext => ["gettext:po:update", "gettext:mo:create"]
5
+
6
+ namespace :gettext do
7
+ namespace :environment do
8
+ desc "Setup environment for GetText"
9
+ task :setup => :environment do
10
+ require "gettext/utils"
11
+ end
12
+ end
13
+
14
+ namespace :po do
15
+ desc "Update po/pot files (GetText)"
16
+ task :update => "gettext:environment:setup" do
17
+ require 'active_ldap/get_text/parser'
18
+ options = {
19
+ # :extract_schema => true, # use this if you have any extra schema.
20
+ }
21
+ GetText::RGetText.add_parser(ActiveLdap::GetText::Parser.new(options))
22
+
23
+ files = Dir.glob("{app,lib,components}/**/*.{rb,rhtml,rxml}")
24
+ GetText.update_pofiles("al-admin", files,
25
+ "AL Admin #{ActiveLdap::VERSION}")
26
+ end
27
+ end
28
+
29
+ namespace :mo do
30
+ desc "Create *.mo from *.po (GetText)"
31
+ task :create => "gettext:environment:setup" do
32
+ GetText.create_mofiles(false, 'po', 'locale')
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,341 @@
1
+ # English translations for AL Admin package.
2
+ # Copyright (C) 2007 Kouhei Sutou
3
+ # This file is distributed under the same license as the AL Admin package.
4
+ # Kouhei Sutou <kou@cozmixng.org>, 2007.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: AL Admin 0.9.0\n"
9
+ "POT-Creation-Date: 2007-11-04 15:53+0900\n"
10
+ "PO-Revision-Date: 2007-08-19 09:44+0900\n"
11
+ "Last-Translator: Kouhei Sutou <kou@cozmixng.org>\n"
12
+ "Language-Team: English\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+
18
+ #: app/models/ldap_user.rb:8
19
+ msgid "LdapUser|Password"
20
+ msgstr ""
21
+
22
+ #: app/models/ldap_user.rb:9
23
+ msgid "LdapUser|Password confirmation"
24
+ msgstr ""
25
+
26
+ #: app/models/user.rb:-
27
+ msgid "User|Dn"
28
+ msgstr ""
29
+
30
+ #: app/models/user.rb:-
31
+ msgid "User|Login"
32
+ msgstr ""
33
+
34
+ #: app/models/user.rb:-
35
+ msgid "User|Remember token"
36
+ msgstr ""
37
+
38
+ #: app/models/user.rb:-
39
+ msgid "User|Remember token expires at"
40
+ msgstr ""
41
+
42
+ #: app/models/user.rb:-
43
+ msgid "User|Salt"
44
+ msgstr ""
45
+
46
+ #: app/models/user.rb:-
47
+ msgid "User|Updated at"
48
+ msgstr ""
49
+
50
+ #: app/models/entry.rb:21
51
+ msgid "disable saving"
52
+ msgstr ""
53
+
54
+ #: app/models/entry.rb:-
55
+ msgid "entry"
56
+ msgstr ""
57
+
58
+ #: app/models/ldap_user.rb:-
59
+ msgid "ldap user"
60
+ msgstr ""
61
+
62
+ #: app/models/user.rb:-
63
+ msgid "user"
64
+ msgstr ""
65
+
66
+ #: app/controllers/directory_controller.rb:31
67
+ msgid "Populating is only for initialization"
68
+ msgstr ""
69
+
70
+ #: app/controllers/account_controller.rb:24 lib/authenticated_system.rb:112
71
+ msgid "Logged in successfully"
72
+ msgstr ""
73
+
74
+ #: app/controllers/account_controller.rb:26
75
+ msgid "Login or Password is incorrect"
76
+ msgstr ""
77
+
78
+ #: app/controllers/account_controller.rb:40
79
+ msgid "Thanks for signing up!"
80
+ msgstr ""
81
+
82
+ #: app/controllers/account_controller.rb:47
83
+ msgid "You have been logged out."
84
+ msgstr ""
85
+
86
+ #: app/controllers/users_controller.rb:27
87
+ msgid "User was successfully updated."
88
+ msgstr ""
89
+
90
+ #: app/helpers/directory_helper.rb:5
91
+ msgid "Failed to retrieve the entry"
92
+ msgstr ""
93
+
94
+ #: app/helpers/users_helper.rb:12
95
+ msgid "Edit"
96
+ msgstr ""
97
+
98
+ #: app/views/directory/populate.rhtml:1
99
+ msgid "Done."
100
+ msgstr ""
101
+
102
+ #: app/views/directory/populate.rhtml:2 app/views/object_classes/show.rhtml:37
103
+ #: app/views/users/edit.rhtml:13 app/views/users/show.rhtml:9
104
+ #: app/views/syntaxes/show.rhtml:20 app/views/attributes/show.rhtml:29
105
+ msgid "Menu|Index"
106
+ msgstr ""
107
+
108
+ #: app/views/layouts/_header_menu.rhtml:5
109
+ msgid "Menu|Logout"
110
+ msgstr ""
111
+
112
+ #: app/views/layouts/_header_menu.rhtml:7
113
+ msgid "Menu|Login"
114
+ msgstr ""
115
+
116
+ #: app/views/layouts/_header_menu.rhtml:9
117
+ msgid "Menu|Sign up"
118
+ msgstr ""
119
+
120
+ #: app/views/layouts/_main_menu.rhtml:6
121
+ msgid "Menu|Users list"
122
+ msgstr ""
123
+
124
+ #: app/views/layouts/_main_menu.rhtml:7
125
+ msgid "Menu|Directory"
126
+ msgstr ""
127
+
128
+ #: app/views/layouts/_main_menu.rhtml:8
129
+ msgid "Menu|objectClass list"
130
+ msgstr ""
131
+
132
+ #: app/views/layouts/_main_menu.rhtml:9
133
+ msgid "Menu|Attribute list"
134
+ msgstr ""
135
+
136
+ #: app/views/layouts/_main_menu.rhtml:10
137
+ msgid "Menu|Syntax list"
138
+ msgstr ""
139
+
140
+ #: app/views/_entry/_attributes_information.rhtml:6
141
+ #: app/views/attributes/_attributes.rhtml:5
142
+ msgid "Attribute name"
143
+ msgstr ""
144
+
145
+ #: app/views/_entry/_attributes_information.rhtml:7
146
+ msgid "Value"
147
+ msgstr ""
148
+
149
+ #: app/views/_entry/_attributes_information.rhtml:8
150
+ #: app/views/object_classes/show.rhtml:6
151
+ #: app/views/object_classes/_attributes.rhtml:11
152
+ #: app/views/users/_object_classes_update_form.rhtml:12
153
+ #: app/views/syntaxes/_syntaxes.rhtml:6 app/views/syntaxes/show.rhtml:6
154
+ #: app/views/attributes/show.rhtml:6 app/views/attributes/_attributes.rhtml:6
155
+ msgid "Description"
156
+ msgstr ""
157
+
158
+ #: app/views/_entry/_entry.rhtml:6
159
+ msgid "objectClasses"
160
+ msgstr ""
161
+
162
+ #: app/views/_entry/_entry.rhtml:11
163
+ msgid "Attributes"
164
+ msgstr ""
165
+
166
+ #: app/views/object_classes/_object_classes.rhtml:5
167
+ #: app/views/users/_object_classes_update_form.rhtml:11
168
+ msgid "objectClass name"
169
+ msgstr ""
170
+
171
+ #: app/views/object_classes/_object_classes.rhtml:6
172
+ #: app/views/users/_attributes_update_form.rhtml:13
173
+ msgid "description"
174
+ msgstr ""
175
+
176
+ #: app/views/object_classes/show.rhtml:13
177
+ msgid "Super classes"
178
+ msgstr ""
179
+
180
+ #: app/views/object_classes/show.rhtml:15
181
+ #: app/views/object_classes/_attributes.rhtml:4
182
+ msgid "None"
183
+ msgstr ""
184
+
185
+ #: app/views/object_classes/show.rhtml:24
186
+ msgid "Requeired attributes"
187
+ msgstr ""
188
+
189
+ #: app/views/object_classes/show.rhtml:30
190
+ msgid "Optional attributes"
191
+ msgstr ""
192
+
193
+ #: app/views/object_classes/index.rhtml:1
194
+ msgid "objectClass list"
195
+ msgstr ""
196
+
197
+ #: app/views/object_classes/_attributes.rhtml:9
198
+ msgid "Name"
199
+ msgstr ""
200
+
201
+ #: app/views/object_classes/_attributes.rhtml:10
202
+ msgid "Inherited"
203
+ msgstr ""
204
+
205
+ #: app/views/users/edit.rhtml:12
206
+ msgid "Menu|Show"
207
+ msgstr ""
208
+
209
+ #: app/views/users/_form.rhtml:5 app/views/users/_form.rhtml:13
210
+ msgid "Command|Update"
211
+ msgstr ""
212
+
213
+ #: app/views/users/_password_change_form.rhtml:2
214
+ msgid "Change password"
215
+ msgstr ""
216
+
217
+ #: app/views/users/_password_change_form.rhtml:7
218
+ #: app/views/account/sign_up.rhtml:7
219
+ msgid "Password"
220
+ msgstr ""
221
+
222
+ #: app/views/users/_password_change_form.rhtml:15
223
+ #: app/views/account/sign_up.rhtml:10
224
+ msgid "Confirm Password"
225
+ msgstr ""
226
+
227
+ #: app/views/users/_object_classes_update_form.rhtml:6
228
+ msgid "Update objectClasses"
229
+ msgstr ""
230
+
231
+ #: app/views/users/_object_classes_update_form.rhtml:10
232
+ msgid "Use"
233
+ msgstr ""
234
+
235
+ #: app/views/users/index.rhtml:2
236
+ msgid "No user."
237
+ msgstr ""
238
+
239
+ #: app/views/users/_attributes_update_form.rhtml:6
240
+ msgid "Update attributes"
241
+ msgstr ""
242
+
243
+ #: app/views/users/_attributes_update_form.rhtml:11
244
+ msgid "attribute name"
245
+ msgstr ""
246
+
247
+ #: app/views/users/_attributes_update_form.rhtml:12
248
+ msgid "value"
249
+ msgstr ""
250
+
251
+ #: app/views/account/login.rhtml:5
252
+ msgid "Login:"
253
+ msgstr ""
254
+
255
+ #: app/views/account/login.rhtml:10
256
+ msgid "Password:"
257
+ msgstr ""
258
+
259
+ #: app/views/account/login.rhtml:16
260
+ msgid "Remember me:"
261
+ msgstr ""
262
+
263
+ #: app/views/account/login.rhtml:22
264
+ msgid "Log in"
265
+ msgstr ""
266
+
267
+ #: app/views/account/sign_up.rhtml:4
268
+ msgid "Login"
269
+ msgstr ""
270
+
271
+ #: app/views/account/sign_up.rhtml:13 app/views/account/sign_up.rhtml:27
272
+ msgid "Sign up"
273
+ msgstr ""
274
+
275
+ #: app/views/syntaxes/_syntaxes.rhtml:5
276
+ msgid "Syntax name"
277
+ msgstr ""
278
+
279
+ #: app/views/syntaxes/show.rhtml:13 app/views/attributes/show.rhtml:22
280
+ msgid "Detail"
281
+ msgstr ""
282
+
283
+ #: app/views/syntaxes/_detail.rhtml:4
284
+ msgid "Binary tranfer required"
285
+ msgstr ""
286
+
287
+ #: app/views/syntaxes/_detail.rhtml:9
288
+ msgid "Human readable"
289
+ msgstr ""
290
+
291
+ #: app/views/syntaxes/index.rhtml:1
292
+ msgid "Syntax list"
293
+ msgstr ""
294
+
295
+ #: app/views/welcome/index.rhtml:4
296
+ msgid "Menu|Populate"
297
+ msgstr ""
298
+
299
+ #: app/views/welcome/index.rhtml:6
300
+ msgid "OK?"
301
+ msgstr ""
302
+
303
+ #: app/views/welcome/index.rhtml:8
304
+ msgid "Welcome %s!"
305
+ msgstr ""
306
+
307
+ #: app/views/welcome/index.rhtml:12 lib/authenticated_system.rb:68
308
+ msgid "Please login."
309
+ msgstr ""
310
+
311
+ #: app/views/attributes/show.rhtml:14
312
+ msgid "Super attribute"
313
+ msgstr ""
314
+
315
+ #: app/views/attributes/_detail.rhtml:4
316
+ msgid "Read only"
317
+ msgstr ""
318
+
319
+ #: app/views/attributes/_detail.rhtml:9
320
+ msgid "Single value"
321
+ msgstr ""
322
+
323
+ #: app/views/attributes/_detail.rhtml:14
324
+ msgid "Binary"
325
+ msgstr ""
326
+
327
+ #: app/views/attributes/_detail.rhtml:19
328
+ msgid "Binary required"
329
+ msgstr ""
330
+
331
+ #: app/views/attributes/_detail.rhtml:24
332
+ msgid "Syntax"
333
+ msgstr ""
334
+
335
+ #: app/views/attributes/index.rhtml:1
336
+ msgid "Attribute list"
337
+ msgstr ""
338
+
339
+ #: app/views/_schema/_aliases.rhtml:2
340
+ msgid "Aliases"
341
+ msgstr ""