watobo 0.9.21 → 0.9.23

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 (283) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +46 -1
  3. data/bin/nfq_server.rb +0 -9
  4. data/bin/watobo_gui.rb +3 -13
  5. data/custom-views/prettify-json.rb +9 -18
  6. data/icons/watobo.ico +0 -0
  7. data/icons/watobo.ico.old +0 -0
  8. data/lib/watobo.rb +10 -19
  9. data/lib/watobo/adapters.rb +5 -14
  10. data/lib/watobo/adapters/data_store.rb +50 -59
  11. data/lib/watobo/adapters/file/file_store.rb +287 -296
  12. data/lib/watobo/adapters/file/marshal_store.rb +293 -296
  13. data/lib/watobo/adapters/session_store.rb +5 -14
  14. data/lib/watobo/ca.rb +1 -10
  15. data/lib/watobo/config.rb +197 -206
  16. data/lib/watobo/constants.rb +0 -9
  17. data/lib/watobo/core.rb +3 -12
  18. data/lib/watobo/core/active_check.rb +72 -135
  19. data/lib/watobo/core/active_checks.rb +49 -58
  20. data/lib/watobo/core/ca.rb +369 -389
  21. data/lib/watobo/core/cert_store.rb +34 -43
  22. data/lib/watobo/core/chat.rb +92 -101
  23. data/lib/watobo/core/chats.rb +271 -280
  24. data/lib/watobo/core/client_cert_store.rb +106 -35
  25. data/lib/watobo/core/conversation.rb +48 -57
  26. data/lib/watobo/core/cookie.rb +23 -32
  27. data/lib/watobo/core/egress_handlers.rb +98 -0
  28. data/lib/watobo/core/finding.rb +66 -75
  29. data/lib/watobo/core/findings.rb +107 -114
  30. data/lib/watobo/core/forwarding_proxy.rb +13 -22
  31. data/lib/watobo/core/fuzz_gen.rb +0 -9
  32. data/lib/watobo/core/intercept_carver.rb +166 -177
  33. data/lib/watobo/core/intercept_filter.rb +235 -244
  34. data/lib/watobo/core/interceptor.rb +98 -107
  35. data/lib/watobo/core/min_class.rb +4 -13
  36. data/lib/watobo/core/netfilter_queue.rb +170 -179
  37. data/lib/watobo/core/ott_cache.rb +132 -141
  38. data/lib/watobo/core/parameter.rb +43 -52
  39. data/lib/watobo/core/passive_check.rb +103 -102
  40. data/lib/watobo/core/passive_checks.rb +48 -57
  41. data/lib/watobo/core/passive_scanner.rb +54 -55
  42. data/lib/watobo/core/plugin.rb +11 -20
  43. data/lib/watobo/core/project.rb +3 -9
  44. data/lib/watobo/core/proxy.rb +43 -52
  45. data/lib/watobo/core/request.rb +125 -123
  46. data/lib/watobo/core/response.rb +44 -53
  47. data/lib/watobo/core/scanner.rb +0 -9
  48. data/lib/watobo/core/scanner3.rb +405 -414
  49. data/lib/watobo/core/scope.rb +83 -92
  50. data/lib/watobo/core/session.rb +1043 -1026
  51. data/lib/watobo/core/sid_cache.rb +98 -107
  52. data/lib/watobo/core/subscriber.rb +25 -34
  53. data/lib/watobo/defaults.rb +21 -30
  54. data/lib/watobo/external/diff/lcs.rb +0 -9
  55. data/lib/watobo/external/diff/lcs/array.rb +0 -9
  56. data/lib/watobo/external/diff/lcs/block.rb +0 -9
  57. data/lib/watobo/external/diff/lcs/callbacks.rb +0 -9
  58. data/lib/watobo/external/diff/lcs/change.rb +0 -9
  59. data/lib/watobo/external/diff/lcs/hunk.rb +0 -9
  60. data/lib/watobo/external/diff/lcs/ldiff.rb +0 -9
  61. data/lib/watobo/external/diff/lcs/string.rb +0 -9
  62. data/lib/watobo/externals.rb +6 -15
  63. data/lib/watobo/framework.rb +4 -13
  64. data/lib/watobo/framework/create_project.rb +60 -69
  65. data/lib/watobo/framework/init.rb +0 -9
  66. data/lib/watobo/framework/init_modules.rb +0 -9
  67. data/lib/watobo/framework/license_text.rb +28 -37
  68. data/lib/watobo/framework/load_chat.rb +13 -22
  69. data/lib/watobo/gui.rb +132 -123
  70. data/lib/watobo/gui/about_watobo.rb +0 -9
  71. data/lib/watobo/gui/browser_preview.rb +0 -9
  72. data/lib/watobo/gui/certificate_dialog.rb +0 -9
  73. data/lib/watobo/gui/chat_diff.rb +0 -9
  74. data/lib/watobo/gui/chatviewer_frame.rb +73 -72
  75. data/lib/watobo/gui/checkboxtree.rb +0 -9
  76. data/lib/watobo/gui/checks_policy_frame.rb +0 -9
  77. data/lib/watobo/gui/client_cert_dialog.rb +96 -87
  78. data/lib/watobo/gui/confirm_scan_dialog.rb +0 -9
  79. data/lib/watobo/gui/conversation_table.rb +158 -164
  80. data/lib/watobo/gui/conversation_table_ctrl.rb +207 -216
  81. data/lib/watobo/gui/conversation_table_ctrl2.rb +373 -382
  82. data/lib/watobo/gui/csrf_token_dialog.rb +0 -9
  83. data/lib/watobo/gui/custom_viewer.rb +374 -383
  84. data/lib/watobo/gui/dashboard.rb +296 -303
  85. data/lib/watobo/gui/define_scope_frame.rb +0 -9
  86. data/lib/watobo/gui/differ_frame.rb +215 -224
  87. data/lib/watobo/gui/edit_comment.rb +0 -9
  88. data/lib/watobo/gui/edit_scope_dialog.rb +0 -9
  89. data/lib/watobo/gui/export_dialog.rb +104 -113
  90. data/lib/watobo/gui/finding_info.rb +0 -9
  91. data/lib/watobo/gui/findings_tree.rb +210 -217
  92. data/lib/watobo/gui/full_scan_dialog.rb +0 -9
  93. data/lib/watobo/gui/fuzzer_gui.rb +1295 -1313
  94. data/lib/watobo/gui/fxsave_thread.rb +14 -0
  95. data/lib/watobo/gui/goto_url_dialog.rb +70 -79
  96. data/lib/watobo/gui/hex_viewer.rb +0 -9
  97. data/lib/watobo/gui/html_viewer.rb +287 -296
  98. data/lib/watobo/gui/intercept_filter_dialog.rb +188 -197
  99. data/lib/watobo/gui/interceptor_gui.rb +1041 -1051
  100. data/lib/watobo/gui/interceptor_settings_dialog.rb +0 -9
  101. data/lib/watobo/gui/json_viewer.rb +287 -0
  102. data/lib/watobo/gui/list_box.rb +101 -110
  103. data/lib/watobo/gui/log_file_viewer.rb +32 -41
  104. data/lib/watobo/gui/log_viewer.rb +83 -88
  105. data/lib/watobo/gui/login_wizzard.rb +0 -9
  106. data/lib/watobo/gui/main_window.rb +587 -618
  107. data/lib/watobo/gui/manual_request_editor.rb +620 -565
  108. data/lib/watobo/gui/master_pw_dialog.rb +0 -9
  109. data/lib/watobo/gui/mixins/gui_settings.rb +29 -38
  110. data/lib/watobo/gui/page_tree.rb +217 -226
  111. data/lib/watobo/gui/password_policy_dialog.rb +0 -9
  112. data/lib/watobo/gui/plugin_board.rb +0 -9
  113. data/lib/watobo/gui/preferences_dialog.rb +0 -9
  114. data/lib/watobo/gui/progress_window.rb +17 -27
  115. data/lib/watobo/gui/project_wizzard.rb +0 -9
  116. data/lib/watobo/gui/proxy_dialog.rb +1 -10
  117. data/lib/watobo/gui/quick_scan_dialog.rb +0 -9
  118. data/lib/watobo/gui/request_builder_frame.rb +102 -111
  119. data/lib/watobo/gui/request_editor.rb +181 -137
  120. data/lib/watobo/gui/rewrite_filters_dialog.rb +394 -403
  121. data/lib/watobo/gui/rewrite_rules_dialog.rb +372 -381
  122. data/lib/watobo/gui/save_chat_dialog.rb +140 -149
  123. data/lib/watobo/gui/scanner_settings_dialog.rb +0 -9
  124. data/lib/watobo/gui/select_chat_dialog.rb +0 -9
  125. data/lib/watobo/gui/session_management_dialog.rb +0 -9
  126. data/lib/watobo/gui/sites_tree.rb +0 -9
  127. data/lib/watobo/gui/status_bar.rb +0 -9
  128. data/lib/watobo/gui/table_editor.rb +0 -9
  129. data/lib/watobo/gui/tagless_viewer.rb +0 -9
  130. data/lib/watobo/gui/templates/plugin.rb +0 -9
  131. data/lib/watobo/gui/templates/plugin2.rb +92 -100
  132. data/lib/watobo/gui/templates/plugin_base.rb +144 -153
  133. data/lib/watobo/gui/text_viewer.rb +0 -9
  134. data/lib/watobo/gui/transcoder_window.rb +0 -9
  135. data/lib/watobo/gui/utils/gui_utils.rb +0 -9
  136. data/lib/watobo/gui/utils/init_icons.rb +86 -95
  137. data/lib/watobo/gui/utils/load_icons.rb +33 -42
  138. data/lib/watobo/gui/utils/load_plugins.rb +116 -119
  139. data/lib/watobo/gui/utils/master_password.rb +68 -77
  140. data/lib/watobo/gui/utils/save_default_settings.rb +113 -122
  141. data/lib/watobo/gui/utils/save_project_settings.rb +0 -9
  142. data/lib/watobo/gui/utils/save_proxy_settings.rb +41 -50
  143. data/lib/watobo/gui/utils/save_scanner_settings.rb +18 -27
  144. data/lib/watobo/gui/utils/session_history.rb +112 -121
  145. data/lib/watobo/gui/workspace_dialog.rb +0 -9
  146. data/lib/watobo/gui/www_auth_dialog.rb +0 -9
  147. data/lib/watobo/gui/xml_viewer_frame.rb +0 -9
  148. data/lib/watobo/http.rb +4 -13
  149. data/lib/watobo/http/cookies/cookies.rb +26 -35
  150. data/lib/watobo/http/data/data.rb +45 -54
  151. data/lib/watobo/http/data/json.rb +47 -55
  152. data/lib/watobo/http/url/url.rb +38 -47
  153. data/lib/watobo/http/xml/xml.rb +124 -130
  154. data/lib/watobo/interceptor.rb +3 -12
  155. data/lib/watobo/interceptor/proxy.rb +742 -739
  156. data/lib/watobo/interceptor/transparent.rb +22 -24
  157. data/lib/watobo/mixins.rb +10 -19
  158. data/lib/watobo/mixins/check_info.rb +27 -36
  159. data/lib/watobo/mixins/httpparser.rb +613 -637
  160. data/lib/watobo/mixins/request_parser.rb +88 -97
  161. data/lib/watobo/mixins/shapers.rb +515 -529
  162. data/lib/watobo/mixins/transcoders.rb +3 -11
  163. data/lib/watobo/parser.rb +1 -10
  164. data/lib/watobo/parser/html.rb +83 -92
  165. data/lib/watobo/patch_fxruby_setfocus.rb +26 -0
  166. data/lib/watobo/sockets.rb +3 -12
  167. data/lib/watobo/sockets/agent.rb +828 -837
  168. data/lib/watobo/sockets/client_socket.rb +308 -312
  169. data/lib/watobo/sockets/connection.rb +401 -410
  170. data/lib/watobo/sockets/http_socket.rb +11 -13
  171. data/lib/watobo/sockets/ntlm_auth.rb +129 -138
  172. data/lib/watobo/utils.rb +10 -19
  173. data/lib/watobo/utils/check_regex.rb +0 -9
  174. data/lib/watobo/utils/copy_object.rb +0 -9
  175. data/lib/watobo/utils/crypto.rb +0 -9
  176. data/lib/watobo/utils/expand_range.rb +23 -32
  177. data/lib/watobo/utils/export_xml.rb +97 -106
  178. data/lib/watobo/utils/file_management.rb +9 -11
  179. data/lib/watobo/utils/hexprint.rb +9 -18
  180. data/lib/watobo/utils/load_chat.rb +0 -9
  181. data/lib/watobo/utils/load_icon.rb +0 -9
  182. data/lib/watobo/utils/ntlm.rb +866 -875
  183. data/lib/watobo/utils/print_debug.rb +12 -21
  184. data/lib/watobo/utils/response_builder.rb +90 -99
  185. data/lib/watobo/utils/response_hash.rb +0 -9
  186. data/lib/watobo/utils/secure_eval.rb +0 -9
  187. data/lib/watobo/utils/strings.rb +10 -19
  188. data/lib/watobo/utils/text2request.rb +0 -9
  189. data/lib/watobo/utils/url.rb +23 -32
  190. data/lib/watobo/utils/utf16.rb +11 -20
  191. data/modules/active/Apache/mod_status.rb +0 -9
  192. data/modules/active/Apache/multiview.rb +151 -160
  193. data/modules/active/Flash/crossdomain.rb +0 -9
  194. data/modules/active/JWT/jwt_oauth2_none.rb +111 -0
  195. data/modules/active/cq5/cq5_default_selectors.rb +106 -115
  196. data/modules/active/cq5/cqp_user_enumeration.rb +125 -134
  197. data/modules/active/directories/dirwalker.rb +0 -9
  198. data/modules/active/discovery/fileextensions.rb +0 -9
  199. data/modules/active/discovery/http_methods.rb +0 -9
  200. data/modules/active/discovery/jsmapfiles.rb +79 -0
  201. data/modules/active/domino/domino_db.rb +68 -76
  202. data/modules/active/dotNET/custom_errors.rb +102 -111
  203. data/modules/active/dotNET/dotnet_files.rb +90 -99
  204. data/modules/active/fileinclusion/lfi_simple.rb +0 -9
  205. data/modules/active/jboss/jboss_basic.rb +0 -9
  206. data/modules/active/sap/business_objects.rb +51 -60
  207. data/modules/active/sap/its_commands.rb +0 -9
  208. data/modules/active/sap/its_service_parameter.rb +0 -9
  209. data/modules/active/sap/its_services.rb +0 -9
  210. data/modules/active/sap/its_xss.rb +0 -9
  211. data/modules/active/shell_shock/shell_shock.rb +139 -148
  212. data/modules/active/siebel/siebel_apps.rb +160 -169
  213. data/modules/active/sqlinjection/sql_boolean.rb +0 -9
  214. data/modules/active/sqlinjection/sql_numerical.rb +198 -0
  215. data/modules/active/sqlinjection/sqli_error.rb +0 -9
  216. data/modules/active/sqlinjection/sqli_timing.rb +220 -229
  217. data/modules/active/struts2/default_handler_ognl.rb +106 -115
  218. data/modules/active/struts2/include_params_ognl.rb +105 -114
  219. data/modules/active/xml/xml_xxe.rb +112 -123
  220. data/modules/active/xss/xss_ng.rb +214 -223
  221. data/modules/active/xss/xss_simple.rb +0 -9
  222. data/modules/passive/ajax.rb +68 -77
  223. data/modules/passive/autocomplete.rb +56 -65
  224. data/modules/passive/cookie_options.rb +0 -9
  225. data/modules/passive/cookie_xss.rb +0 -9
  226. data/modules/passive/detect_code.rb +0 -9
  227. data/modules/passive/detect_fileupload.rb +0 -9
  228. data/modules/passive/detect_infrastructure.rb +0 -9
  229. data/modules/passive/detect_one_time_tokens.rb +0 -9
  230. data/modules/passive/dirindexing.rb +0 -9
  231. data/modules/passive/disclosure_domino.rb +55 -64
  232. data/modules/passive/disclosure_emails.rb +0 -9
  233. data/modules/passive/disclosure_ipaddr.rb +55 -53
  234. data/modules/passive/filename_as_parameter.rb +0 -9
  235. data/modules/passive/form_spotter.rb +0 -9
  236. data/modules/passive/hidden_fields.rb +50 -59
  237. data/modules/passive/hotspots.rb +0 -9
  238. data/modules/passive/in_script_parameter.rb +0 -9
  239. data/modules/passive/json_web_token.rb +93 -0
  240. data/modules/passive/multiple_server_headers.rb +0 -9
  241. data/modules/passive/possible_login.rb +0 -9
  242. data/modules/passive/redirect_url.rb +0 -9
  243. data/modules/passive/redirectionz.rb +0 -9
  244. data/modules/passive/sap-headers.rb +56 -65
  245. data/modules/passive/xss_dom.rb +0 -9
  246. data/plugins/aem/aem.rb +11 -20
  247. data/plugins/aem/gui/main.rb +118 -127
  248. data/plugins/aem/gui/tree_view.rb +171 -180
  249. data/plugins/aem/lib/agent.rb +130 -138
  250. data/plugins/aem/lib/dispatcher.rb +45 -51
  251. data/plugins/aem/lib/engine.rb +177 -186
  252. data/plugins/catalog/catalog.rb +345 -355
  253. data/plugins/crawler/crawler.rb +4 -13
  254. data/plugins/crawler/gui.rb +5 -14
  255. data/plugins/crawler/gui/auth_frame.rb +270 -279
  256. data/plugins/crawler/gui/crawler_gui.rb +271 -276
  257. data/plugins/crawler/gui/general_settings_frame.rb +96 -105
  258. data/plugins/crawler/gui/hooks_frame.rb +80 -89
  259. data/plugins/crawler/gui/scope_frame.rb +50 -59
  260. data/plugins/crawler/gui/settings_tabbook.rb +38 -47
  261. data/plugins/crawler/gui/status_frame.rb +59 -68
  262. data/plugins/crawler/lib/bags.rb +18 -27
  263. data/plugins/crawler/lib/constants.rb +11 -20
  264. data/plugins/crawler/lib/engine.rb +488 -497
  265. data/plugins/crawler/lib/grabber.rb +68 -77
  266. data/plugins/crawler/lib/status.rb +71 -80
  267. data/plugins/crawler/lib/uri_mp.rb +12 -21
  268. data/plugins/filefinder/filefinder.rb +326 -333
  269. data/plugins/sqlmap/bin/test.rb +78 -87
  270. data/plugins/sqlmap/gui.rb +4 -13
  271. data/plugins/sqlmap/gui/main.rb +218 -227
  272. data/plugins/sqlmap/gui/options_frame.rb +97 -106
  273. data/plugins/sqlmap/lib/sqlmap_ctrl.rb +90 -100
  274. data/plugins/sqlmap/sqlmap.rb +2 -11
  275. data/plugins/sslchecker/cli/sslchecker_cli.rb +0 -9
  276. data/plugins/sslchecker/gui/cipher_table.rb +246 -254
  277. data/plugins/sslchecker/gui/gui.rb +258 -264
  278. data/plugins/sslchecker/gui/sslchecker.rb +4 -13
  279. data/plugins/sslchecker/lib/check.rb +127 -133
  280. data/plugins/wshell/gui/main.rb +119 -117
  281. data/plugins/wshell/lib/core.rb +38 -88
  282. data/plugins/wshell/wshell.rb +11 -20
  283. metadata +170 -164
@@ -1,44 +1,35 @@
1
- #.
2
- # load_icons.rb
3
- #.
4
- # Copyright 2014 by siberas, http://www.siberas.de
5
- # This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
6
- # WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
7
- # WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
8
- # You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
9
-
10
1
  # @private
11
- module Watobo#:nodoc: all
12
- module Gui
13
-
14
- def self.load_gui_icon(name)
15
- return nil if @icon_path.nil?
16
- icon = load_icon(File.join(@icon_path, name))
17
- end
18
-
19
- def self.load_icon(filename)
20
- begin
21
- icon = nil
22
- return icon if @application.nil?
23
- #filename =
24
- File.open(filename, "rb") do |f|
25
- if filename.strip =~ /\.ico$/ then
26
- icon = FXICOIcon.new(@application, f.read)
27
- #icon = FXICOIcon.new(getApp(), f.read)
28
- elsif filename.strip =~ /\.png$/ then
29
- icon = FXPNGIcon.new(@application, f.read)
30
- elsif filename.strip =~ /\.gif$/ then
31
- icon = FXGIFIcon.new(@application, f.read)
32
- end
33
- icon.create
34
- end
35
-
36
- icon
37
- rescue => bang
38
- puts "Couldn't load icon: #{filename}"
39
- puts bang
40
- end
41
-
42
- end
43
- end
2
+ module Watobo#:nodoc: all
3
+ module Gui
4
+
5
+ def self.load_gui_icon(name)
6
+ return nil if @icon_path.nil?
7
+ icon = load_icon(File.join(@icon_path, name))
8
+ end
9
+
10
+ def self.load_icon(filename)
11
+ begin
12
+ icon = nil
13
+ return icon if @application.nil?
14
+ #filename =
15
+ File.open(filename, "rb") do |f|
16
+ if filename.strip =~ /\.ico$/ then
17
+ icon = FXICOIcon.new(@application, f.read)
18
+ #icon = FXICOIcon.new(getApp(), f.read)
19
+ elsif filename.strip =~ /\.png$/ then
20
+ icon = FXPNGIcon.new(@application, f.read)
21
+ elsif filename.strip =~ /\.gif$/ then
22
+ icon = FXGIFIcon.new(@application, f.read)
23
+ end
24
+ icon.create
25
+ end
26
+
27
+ icon
28
+ rescue => bang
29
+ puts "Couldn't load icon: #{filename}"
30
+ puts bang
31
+ end
32
+
33
+ end
34
+ end
44
35
  end
@@ -1,121 +1,118 @@
1
- #.
2
- # load_plugins.rb
3
- #.
4
- # Copyright 2014 by siberas, http://www.siberas.de
5
- # This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
6
- # WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
7
- # WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
8
- # You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
9
-
10
1
  # @private
11
- module Watobo#:nodoc: all
12
- module Gui
13
- @plugin_list = []
14
- def self.add_plugin(p)
15
- @plugin_list << p
16
- end
17
-
18
- def self.plugins
19
- @plugin_list
20
- end
21
-
22
- def self.clear_plugins
23
- @plugin_list = []
24
- end
25
-
26
- module Utils
27
- def self.load_plugins(project=nil)
28
- raise ArgumentError, "Need a project" unless project
29
- # this is the old plugin style
30
- Dir["#{Watobo.plugin_path}/*"].each do |sub|
31
- if File.ftype(sub) == "directory"
32
- pgf = File.join(sub, "gui.rb")
33
- if File.exist? pgf
34
- puts "Loading Plugin GUI #{pgf} ..."
35
-
36
- group = File.basename(sub)
37
- plugin = File.basename(pgf).sub(/\.rb/,'')
38
- # load "#{@settings[:module_path]}/#{modules}/#{check}"
39
- group_class = group.slice(0..0).upcase + group.slice(1..-1).downcase
40
- #
41
- plugin_class = plugin.slice(0..0).upcase + plugin.slice(1..-1).downcase
42
- class_name = "Watobo::Plugin::#{group_class}::#{plugin_class}"
43
- puts
44
- puts ">> ClassName: #{class_name}"
45
- puts
46
- load pgf
47
- class_constant = Watobo.class_eval(class_name)
48
-
49
- Watobo::Gui.add_plugin class_constant.new(Watobo::Gui.application, project)
50
- else
51
-
52
- Dir["#{sub}/#{File.basename(sub)}.rb"].each do |plugin_file|
53
- begin
54
- puts "* processing plugin file #{plugin_file}" if $DEBUG
55
- load plugin_file
56
- group = File.basename(sub)
57
- plugin = File.basename(plugin_file).sub(/\.rb/,'')
58
- # load "#{@settings[:module_path]}/#{modules}/#{check}"
59
- group_class = group.slice(0..0).upcase + group.slice(1..-1).downcase
60
- #
61
- plugin_class = plugin.slice(0..0).upcase + plugin.slice(1..-1).downcase
62
- class_constant = Watobo.class_eval("Watobo::Plugin::#{group_class}::#{plugin_class}")
63
-
64
- Watobo::Gui.add_plugin class_constant.new(Watobo::Gui.application, project)
65
- rescue => bang
66
- puts bang if $DEBUG
67
- puts bang.backtrace if $DEBUG
68
- # notify(:logger, LOG_INFO, "problems loading plugin: #{plugin_file}")
69
- end
70
- end
71
-
72
- # this the way loading new plugins
73
-
74
- Dir["#{sub}/gui/#{File.basename(sub)}.rb"].each do |plugin_file|
75
- begin
76
- puts "* processing plugin file #{plugin_file}" if $DEBUG
77
- load plugin_file
78
- group = File.basename(sub)
79
- plugin = File.basename(plugin_file).sub(/\.rb/,'')
80
- # load "#{@settings[:module_path]}/#{modules}/#{check}"
81
- group_class = group.slice(0..0).upcase + group.slice(1..-1).downcase
82
- #
83
- plugin_class = plugin.slice(0..0).upcase + plugin.slice(1..-1).downcase
84
- class_name = "Watobo::Plugin::#{group_class}::Gui::Main"
85
- #puts class_name
86
- class_constant = Watobo.class_eval(class_name)
87
-
88
- Watobo::Gui.add_plugin class_constant.new(Watobo::Gui.application, project)
89
-
90
- rescue => bang
91
- puts bang
92
- puts bang.backtrace if $DEBUG
93
- # notify(:logger, LOG_INFO, "problems loading plugin: #{plugin_file}")
94
- end
95
- end
96
- #
97
-
98
- Watobo::Plugin.constants.each do |pc|
99
- puts ">> PLUGIN >> #{pc.to_s}"
100
-
101
- pclass = Watobo::Plugin.class_eval(pc.to_s)
102
-
103
- if pclass.respond_to? :create_gui
104
- puts "ADD NEW PLUGIN #{pc.upcase}"
105
- # TODO: In later versions - if all plugins are switched to the new style - this will not be necessary here
106
- gui = pclass.create_gui()
107
- # puts gui.class
108
- Watobo::Gui.add_plugin pclass
109
-
110
- # exit
111
- end
112
- end
113
- end
114
- end
115
- end
116
-
117
- end
118
- #-------------
119
- end
120
- end
2
+ module Watobo#:nodoc: all
3
+ module Gui
4
+ @plugin_list = []
5
+ def self.add_plugin(p)
6
+ @plugin_list << p
7
+ end
8
+
9
+ def self.plugins
10
+ @plugin_list
11
+ end
12
+
13
+ def self.clear_plugins
14
+ @plugin_list = []
15
+ end
16
+
17
+ module Utils
18
+ def self.load_plugins(project=nil)
19
+ raise ArgumentError, "Need a project" unless project
20
+ # this is the old plugin style
21
+ Dir["#{Watobo.plugin_path}/*"].each do |sub|
22
+ if File.ftype(sub) == "directory"
23
+ pgf = File.join(sub, "gui.rb")
24
+ if File.exist? pgf
25
+ puts "Loading Plugin GUI #{pgf} ..."
26
+
27
+ group = File.basename(sub)
28
+ plugin = File.basename(pgf).sub(/\.rb/,'')
29
+ # load "#{@settings[:module_path]}/#{modules}/#{check}"
30
+ group_class = group.slice(0..0).upcase + group.slice(1..-1).downcase
31
+ #
32
+ plugin_class = plugin.slice(0..0).upcase + plugin.slice(1..-1).downcase
33
+ class_name = "Watobo::Plugin::#{group_class}::#{plugin_class}"
34
+ puts
35
+ puts ">> ClassName: #{class_name}"
36
+ puts
37
+ load pgf
38
+ class_constant = Watobo.class_eval(class_name)
39
+
40
+
41
+ Watobo::Gui.add_plugin class_constant.new(Watobo::Gui.application, project)
42
+
43
+ else
44
+
45
+ Dir["#{sub}/#{File.basename(sub)}.rb"].each do |plugin_file|
46
+ begin
47
+ puts "* processing plugin file #{plugin_file}" if $DEBUG
48
+ load plugin_file
49
+ group = File.basename(sub)
50
+ plugin = File.basename(plugin_file).sub(/\.rb/,'')
51
+ # load "#{@settings[:module_path]}/#{modules}/#{check}"
52
+ group_class = group.slice(0..0).upcase + group.slice(1..-1).downcase
53
+ #
54
+ plugin_class = plugin.slice(0..0).upcase + plugin.slice(1..-1).downcase
55
+ class_constant = Watobo.class_eval("Watobo::Plugin::#{group_class}::#{plugin_class}")
56
+
57
+ Watobo::Gui.add_plugin class_constant.new(Watobo::Gui.application, project)
58
+
59
+ rescue => bang
60
+ puts bang if $DEBUG
61
+ puts bang.backtrace if $DEBUG
62
+ # notify(:logger, LOG_INFO, "problems loading plugin: #{plugin_file}")
63
+ end
64
+ end
65
+
66
+ # this the way loading new plugins
67
+
68
+ Dir["#{sub}/gui/#{File.basename(sub)}.rb"].each do |plugin_file|
69
+ begin
70
+ puts "* processing plugin file #{plugin_file}" if $DEBUG
71
+ load plugin_file
72
+ group = File.basename(sub)
73
+ plugin = File.basename(plugin_file).sub(/\.rb/,'')
74
+ # load "#{@settings[:module_path]}/#{modules}/#{check}"
75
+ group_class = group.slice(0..0).upcase + group.slice(1..-1).downcase
76
+ #
77
+ plugin_class = plugin.slice(0..0).upcase + plugin.slice(1..-1).downcase
78
+ class_name = "Watobo::Plugin::#{group_class}::Gui::Main"
79
+ #puts class_name
80
+ class_constant = Watobo.class_eval(class_name)
81
+
82
+
83
+ Watobo::Gui.add_plugin class_constant.new(Watobo::Gui.application, project)
84
+
85
+ rescue => bang
86
+ puts bang
87
+ puts bang.backtrace if $DEBUG
88
+ # notify(:logger, LOG_INFO, "problems loading plugin: #{plugin_file}")
89
+ end
90
+ end
91
+ #
92
+
93
+ Watobo::Plugin.constants.each do |pc|
94
+ puts ">> PLUGIN >> #{pc.to_s}"
95
+
96
+ pclass = Watobo::Plugin.class_eval(pc.to_s)
97
+
98
+ if pclass.respond_to? :create_gui
99
+ puts "ADD NEW PLUGIN #{pc.upcase}"
100
+ # TODO: In later versions - if all plugins are switched to the new style - this will not be necessary here
101
+
102
+ gui = pclass.create_gui()
103
+ # puts gui.class
104
+ Watobo::Gui.add_plugin pclass
105
+
106
+
107
+ # exit
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
113
+
114
+ end
115
+ #-------------
116
+ end
117
+ end
121
118
  end
@@ -1,79 +1,70 @@
1
- #.
2
- # master_password.rb
3
- #.
4
- # Copyright 2014 by siberas, http://www.siberas.de
5
- # This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
6
- # WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
7
- # WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
8
- # You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
9
-
10
1
  # @private
11
- module Watobo#:nodoc: all
12
- module Gui
13
- module MasterPW
14
- @master_password = ''
15
- @save_without_master = false
16
- @save_passwords = false
17
- # set the master password
18
- def self.set=(pw)
19
- @master_password = ''
20
- return false unless pw.is_a? String
21
- @master_password = pw
22
- true
23
- end
24
-
25
- def self.set?
26
- return false unless @master_password.is_a? String
27
- @master_password.empty?
28
- end
29
-
30
- def self.disable
31
- @save_without_master = false
32
- @master_password = ''
33
- end
34
-
35
- def self.enable
36
- @save_without_master = true
37
- end
38
-
39
- def self.save_passwords?
40
- @save_passwords
41
- end
42
-
43
- def self.save_passwords=(state)
44
- @save_passwords = state
45
- end
46
-
47
- def self.save_without_master=(state)
48
- @save_without_master = state
49
- end
50
-
51
- def self.save_without_master?
52
- @save_without_master
53
- end
54
-
55
- # retrieve the master password
56
- def self.get
57
- @master_password
58
- end
59
-
60
- # check if master password is set
61
- def self.enabled?
62
- return @master_password.empty?
63
- end
64
-
65
- def self.settings
66
- s = { :save_passwords => @save_passwords, :save_without_master => @save_without_master }
67
- end
68
-
69
- def self.settings=(s)
70
- return false unless s.is_a? Hash
71
- @save_passwords = s[:save_passwords] if s.has_key? :save_passwords
72
- @save_without_master = s[:save_without_master] if s.has_key? :save_without_master
73
- true
74
- end
75
-
76
- end
77
-
78
- end
2
+ module Watobo#:nodoc: all
3
+ module Gui
4
+ module MasterPW
5
+ @master_password = ''
6
+ @save_without_master = false
7
+ @save_passwords = false
8
+ # set the master password
9
+ def self.set=(pw)
10
+ @master_password = ''
11
+ return false unless pw.is_a? String
12
+ @master_password = pw
13
+ true
14
+ end
15
+
16
+ def self.set?
17
+ return false unless @master_password.is_a? String
18
+ @master_password.empty?
19
+ end
20
+
21
+ def self.disable
22
+ @save_without_master = false
23
+ @master_password = ''
24
+ end
25
+
26
+ def self.enable
27
+ @save_without_master = true
28
+ end
29
+
30
+ def self.save_passwords?
31
+ @save_passwords
32
+ end
33
+
34
+ def self.save_passwords=(state)
35
+ @save_passwords = state
36
+ end
37
+
38
+ def self.save_without_master=(state)
39
+ @save_without_master = state
40
+ end
41
+
42
+ def self.save_without_master?
43
+ @save_without_master
44
+ end
45
+
46
+ # retrieve the master password
47
+ def self.get
48
+ @master_password
49
+ end
50
+
51
+ # check if master password is set
52
+ def self.enabled?
53
+ return @master_password.empty?
54
+ end
55
+
56
+ def self.settings
57
+ s = { :save_passwords => @save_passwords, :save_without_master => @save_without_master }
58
+ end
59
+
60
+ def self.settings=(s)
61
+ return false unless s.is_a? Hash
62
+ @save_passwords = s[:save_passwords] if s.has_key? :save_passwords
63
+ @save_without_master = s[:save_without_master] if s.has_key? :save_without_master
64
+ true
65
+ end
66
+
67
+ end
68
+
69
+ end
79
70
  end