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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +46 -1
- data/bin/nfq_server.rb +0 -9
- data/bin/watobo_gui.rb +3 -13
- data/custom-views/prettify-json.rb +9 -18
- data/icons/watobo.ico +0 -0
- data/icons/watobo.ico.old +0 -0
- data/lib/watobo.rb +10 -19
- data/lib/watobo/adapters.rb +5 -14
- data/lib/watobo/adapters/data_store.rb +50 -59
- data/lib/watobo/adapters/file/file_store.rb +287 -296
- data/lib/watobo/adapters/file/marshal_store.rb +293 -296
- data/lib/watobo/adapters/session_store.rb +5 -14
- data/lib/watobo/ca.rb +1 -10
- data/lib/watobo/config.rb +197 -206
- data/lib/watobo/constants.rb +0 -9
- data/lib/watobo/core.rb +3 -12
- data/lib/watobo/core/active_check.rb +72 -135
- data/lib/watobo/core/active_checks.rb +49 -58
- data/lib/watobo/core/ca.rb +369 -389
- data/lib/watobo/core/cert_store.rb +34 -43
- data/lib/watobo/core/chat.rb +92 -101
- data/lib/watobo/core/chats.rb +271 -280
- data/lib/watobo/core/client_cert_store.rb +106 -35
- data/lib/watobo/core/conversation.rb +48 -57
- data/lib/watobo/core/cookie.rb +23 -32
- data/lib/watobo/core/egress_handlers.rb +98 -0
- data/lib/watobo/core/finding.rb +66 -75
- data/lib/watobo/core/findings.rb +107 -114
- data/lib/watobo/core/forwarding_proxy.rb +13 -22
- data/lib/watobo/core/fuzz_gen.rb +0 -9
- data/lib/watobo/core/intercept_carver.rb +166 -177
- data/lib/watobo/core/intercept_filter.rb +235 -244
- data/lib/watobo/core/interceptor.rb +98 -107
- data/lib/watobo/core/min_class.rb +4 -13
- data/lib/watobo/core/netfilter_queue.rb +170 -179
- data/lib/watobo/core/ott_cache.rb +132 -141
- data/lib/watobo/core/parameter.rb +43 -52
- data/lib/watobo/core/passive_check.rb +103 -102
- data/lib/watobo/core/passive_checks.rb +48 -57
- data/lib/watobo/core/passive_scanner.rb +54 -55
- data/lib/watobo/core/plugin.rb +11 -20
- data/lib/watobo/core/project.rb +3 -9
- data/lib/watobo/core/proxy.rb +43 -52
- data/lib/watobo/core/request.rb +125 -123
- data/lib/watobo/core/response.rb +44 -53
- data/lib/watobo/core/scanner.rb +0 -9
- data/lib/watobo/core/scanner3.rb +405 -414
- data/lib/watobo/core/scope.rb +83 -92
- data/lib/watobo/core/session.rb +1043 -1026
- data/lib/watobo/core/sid_cache.rb +98 -107
- data/lib/watobo/core/subscriber.rb +25 -34
- data/lib/watobo/defaults.rb +21 -30
- data/lib/watobo/external/diff/lcs.rb +0 -9
- data/lib/watobo/external/diff/lcs/array.rb +0 -9
- data/lib/watobo/external/diff/lcs/block.rb +0 -9
- data/lib/watobo/external/diff/lcs/callbacks.rb +0 -9
- data/lib/watobo/external/diff/lcs/change.rb +0 -9
- data/lib/watobo/external/diff/lcs/hunk.rb +0 -9
- data/lib/watobo/external/diff/lcs/ldiff.rb +0 -9
- data/lib/watobo/external/diff/lcs/string.rb +0 -9
- data/lib/watobo/externals.rb +6 -15
- data/lib/watobo/framework.rb +4 -13
- data/lib/watobo/framework/create_project.rb +60 -69
- data/lib/watobo/framework/init.rb +0 -9
- data/lib/watobo/framework/init_modules.rb +0 -9
- data/lib/watobo/framework/license_text.rb +28 -37
- data/lib/watobo/framework/load_chat.rb +13 -22
- data/lib/watobo/gui.rb +132 -123
- data/lib/watobo/gui/about_watobo.rb +0 -9
- data/lib/watobo/gui/browser_preview.rb +0 -9
- data/lib/watobo/gui/certificate_dialog.rb +0 -9
- data/lib/watobo/gui/chat_diff.rb +0 -9
- data/lib/watobo/gui/chatviewer_frame.rb +73 -72
- data/lib/watobo/gui/checkboxtree.rb +0 -9
- data/lib/watobo/gui/checks_policy_frame.rb +0 -9
- data/lib/watobo/gui/client_cert_dialog.rb +96 -87
- data/lib/watobo/gui/confirm_scan_dialog.rb +0 -9
- data/lib/watobo/gui/conversation_table.rb +158 -164
- data/lib/watobo/gui/conversation_table_ctrl.rb +207 -216
- data/lib/watobo/gui/conversation_table_ctrl2.rb +373 -382
- data/lib/watobo/gui/csrf_token_dialog.rb +0 -9
- data/lib/watobo/gui/custom_viewer.rb +374 -383
- data/lib/watobo/gui/dashboard.rb +296 -303
- data/lib/watobo/gui/define_scope_frame.rb +0 -9
- data/lib/watobo/gui/differ_frame.rb +215 -224
- data/lib/watobo/gui/edit_comment.rb +0 -9
- data/lib/watobo/gui/edit_scope_dialog.rb +0 -9
- data/lib/watobo/gui/export_dialog.rb +104 -113
- data/lib/watobo/gui/finding_info.rb +0 -9
- data/lib/watobo/gui/findings_tree.rb +210 -217
- data/lib/watobo/gui/full_scan_dialog.rb +0 -9
- data/lib/watobo/gui/fuzzer_gui.rb +1295 -1313
- data/lib/watobo/gui/fxsave_thread.rb +14 -0
- data/lib/watobo/gui/goto_url_dialog.rb +70 -79
- data/lib/watobo/gui/hex_viewer.rb +0 -9
- data/lib/watobo/gui/html_viewer.rb +287 -296
- data/lib/watobo/gui/intercept_filter_dialog.rb +188 -197
- data/lib/watobo/gui/interceptor_gui.rb +1041 -1051
- data/lib/watobo/gui/interceptor_settings_dialog.rb +0 -9
- data/lib/watobo/gui/json_viewer.rb +287 -0
- data/lib/watobo/gui/list_box.rb +101 -110
- data/lib/watobo/gui/log_file_viewer.rb +32 -41
- data/lib/watobo/gui/log_viewer.rb +83 -88
- data/lib/watobo/gui/login_wizzard.rb +0 -9
- data/lib/watobo/gui/main_window.rb +587 -618
- data/lib/watobo/gui/manual_request_editor.rb +620 -565
- data/lib/watobo/gui/master_pw_dialog.rb +0 -9
- data/lib/watobo/gui/mixins/gui_settings.rb +29 -38
- data/lib/watobo/gui/page_tree.rb +217 -226
- data/lib/watobo/gui/password_policy_dialog.rb +0 -9
- data/lib/watobo/gui/plugin_board.rb +0 -9
- data/lib/watobo/gui/preferences_dialog.rb +0 -9
- data/lib/watobo/gui/progress_window.rb +17 -27
- data/lib/watobo/gui/project_wizzard.rb +0 -9
- data/lib/watobo/gui/proxy_dialog.rb +1 -10
- data/lib/watobo/gui/quick_scan_dialog.rb +0 -9
- data/lib/watobo/gui/request_builder_frame.rb +102 -111
- data/lib/watobo/gui/request_editor.rb +181 -137
- data/lib/watobo/gui/rewrite_filters_dialog.rb +394 -403
- data/lib/watobo/gui/rewrite_rules_dialog.rb +372 -381
- data/lib/watobo/gui/save_chat_dialog.rb +140 -149
- data/lib/watobo/gui/scanner_settings_dialog.rb +0 -9
- data/lib/watobo/gui/select_chat_dialog.rb +0 -9
- data/lib/watobo/gui/session_management_dialog.rb +0 -9
- data/lib/watobo/gui/sites_tree.rb +0 -9
- data/lib/watobo/gui/status_bar.rb +0 -9
- data/lib/watobo/gui/table_editor.rb +0 -9
- data/lib/watobo/gui/tagless_viewer.rb +0 -9
- data/lib/watobo/gui/templates/plugin.rb +0 -9
- data/lib/watobo/gui/templates/plugin2.rb +92 -100
- data/lib/watobo/gui/templates/plugin_base.rb +144 -153
- data/lib/watobo/gui/text_viewer.rb +0 -9
- data/lib/watobo/gui/transcoder_window.rb +0 -9
- data/lib/watobo/gui/utils/gui_utils.rb +0 -9
- data/lib/watobo/gui/utils/init_icons.rb +86 -95
- data/lib/watobo/gui/utils/load_icons.rb +33 -42
- data/lib/watobo/gui/utils/load_plugins.rb +116 -119
- data/lib/watobo/gui/utils/master_password.rb +68 -77
- data/lib/watobo/gui/utils/save_default_settings.rb +113 -122
- data/lib/watobo/gui/utils/save_project_settings.rb +0 -9
- data/lib/watobo/gui/utils/save_proxy_settings.rb +41 -50
- data/lib/watobo/gui/utils/save_scanner_settings.rb +18 -27
- data/lib/watobo/gui/utils/session_history.rb +112 -121
- data/lib/watobo/gui/workspace_dialog.rb +0 -9
- data/lib/watobo/gui/www_auth_dialog.rb +0 -9
- data/lib/watobo/gui/xml_viewer_frame.rb +0 -9
- data/lib/watobo/http.rb +4 -13
- data/lib/watobo/http/cookies/cookies.rb +26 -35
- data/lib/watobo/http/data/data.rb +45 -54
- data/lib/watobo/http/data/json.rb +47 -55
- data/lib/watobo/http/url/url.rb +38 -47
- data/lib/watobo/http/xml/xml.rb +124 -130
- data/lib/watobo/interceptor.rb +3 -12
- data/lib/watobo/interceptor/proxy.rb +742 -739
- data/lib/watobo/interceptor/transparent.rb +22 -24
- data/lib/watobo/mixins.rb +10 -19
- data/lib/watobo/mixins/check_info.rb +27 -36
- data/lib/watobo/mixins/httpparser.rb +613 -637
- data/lib/watobo/mixins/request_parser.rb +88 -97
- data/lib/watobo/mixins/shapers.rb +515 -529
- data/lib/watobo/mixins/transcoders.rb +3 -11
- data/lib/watobo/parser.rb +1 -10
- data/lib/watobo/parser/html.rb +83 -92
- data/lib/watobo/patch_fxruby_setfocus.rb +26 -0
- data/lib/watobo/sockets.rb +3 -12
- data/lib/watobo/sockets/agent.rb +828 -837
- data/lib/watobo/sockets/client_socket.rb +308 -312
- data/lib/watobo/sockets/connection.rb +401 -410
- data/lib/watobo/sockets/http_socket.rb +11 -13
- data/lib/watobo/sockets/ntlm_auth.rb +129 -138
- data/lib/watobo/utils.rb +10 -19
- data/lib/watobo/utils/check_regex.rb +0 -9
- data/lib/watobo/utils/copy_object.rb +0 -9
- data/lib/watobo/utils/crypto.rb +0 -9
- data/lib/watobo/utils/expand_range.rb +23 -32
- data/lib/watobo/utils/export_xml.rb +97 -106
- data/lib/watobo/utils/file_management.rb +9 -11
- data/lib/watobo/utils/hexprint.rb +9 -18
- data/lib/watobo/utils/load_chat.rb +0 -9
- data/lib/watobo/utils/load_icon.rb +0 -9
- data/lib/watobo/utils/ntlm.rb +866 -875
- data/lib/watobo/utils/print_debug.rb +12 -21
- data/lib/watobo/utils/response_builder.rb +90 -99
- data/lib/watobo/utils/response_hash.rb +0 -9
- data/lib/watobo/utils/secure_eval.rb +0 -9
- data/lib/watobo/utils/strings.rb +10 -19
- data/lib/watobo/utils/text2request.rb +0 -9
- data/lib/watobo/utils/url.rb +23 -32
- data/lib/watobo/utils/utf16.rb +11 -20
- data/modules/active/Apache/mod_status.rb +0 -9
- data/modules/active/Apache/multiview.rb +151 -160
- data/modules/active/Flash/crossdomain.rb +0 -9
- data/modules/active/JWT/jwt_oauth2_none.rb +111 -0
- data/modules/active/cq5/cq5_default_selectors.rb +106 -115
- data/modules/active/cq5/cqp_user_enumeration.rb +125 -134
- data/modules/active/directories/dirwalker.rb +0 -9
- data/modules/active/discovery/fileextensions.rb +0 -9
- data/modules/active/discovery/http_methods.rb +0 -9
- data/modules/active/discovery/jsmapfiles.rb +79 -0
- data/modules/active/domino/domino_db.rb +68 -76
- data/modules/active/dotNET/custom_errors.rb +102 -111
- data/modules/active/dotNET/dotnet_files.rb +90 -99
- data/modules/active/fileinclusion/lfi_simple.rb +0 -9
- data/modules/active/jboss/jboss_basic.rb +0 -9
- data/modules/active/sap/business_objects.rb +51 -60
- data/modules/active/sap/its_commands.rb +0 -9
- data/modules/active/sap/its_service_parameter.rb +0 -9
- data/modules/active/sap/its_services.rb +0 -9
- data/modules/active/sap/its_xss.rb +0 -9
- data/modules/active/shell_shock/shell_shock.rb +139 -148
- data/modules/active/siebel/siebel_apps.rb +160 -169
- data/modules/active/sqlinjection/sql_boolean.rb +0 -9
- data/modules/active/sqlinjection/sql_numerical.rb +198 -0
- data/modules/active/sqlinjection/sqli_error.rb +0 -9
- data/modules/active/sqlinjection/sqli_timing.rb +220 -229
- data/modules/active/struts2/default_handler_ognl.rb +106 -115
- data/modules/active/struts2/include_params_ognl.rb +105 -114
- data/modules/active/xml/xml_xxe.rb +112 -123
- data/modules/active/xss/xss_ng.rb +214 -223
- data/modules/active/xss/xss_simple.rb +0 -9
- data/modules/passive/ajax.rb +68 -77
- data/modules/passive/autocomplete.rb +56 -65
- data/modules/passive/cookie_options.rb +0 -9
- data/modules/passive/cookie_xss.rb +0 -9
- data/modules/passive/detect_code.rb +0 -9
- data/modules/passive/detect_fileupload.rb +0 -9
- data/modules/passive/detect_infrastructure.rb +0 -9
- data/modules/passive/detect_one_time_tokens.rb +0 -9
- data/modules/passive/dirindexing.rb +0 -9
- data/modules/passive/disclosure_domino.rb +55 -64
- data/modules/passive/disclosure_emails.rb +0 -9
- data/modules/passive/disclosure_ipaddr.rb +55 -53
- data/modules/passive/filename_as_parameter.rb +0 -9
- data/modules/passive/form_spotter.rb +0 -9
- data/modules/passive/hidden_fields.rb +50 -59
- data/modules/passive/hotspots.rb +0 -9
- data/modules/passive/in_script_parameter.rb +0 -9
- data/modules/passive/json_web_token.rb +93 -0
- data/modules/passive/multiple_server_headers.rb +0 -9
- data/modules/passive/possible_login.rb +0 -9
- data/modules/passive/redirect_url.rb +0 -9
- data/modules/passive/redirectionz.rb +0 -9
- data/modules/passive/sap-headers.rb +56 -65
- data/modules/passive/xss_dom.rb +0 -9
- data/plugins/aem/aem.rb +11 -20
- data/plugins/aem/gui/main.rb +118 -127
- data/plugins/aem/gui/tree_view.rb +171 -180
- data/plugins/aem/lib/agent.rb +130 -138
- data/plugins/aem/lib/dispatcher.rb +45 -51
- data/plugins/aem/lib/engine.rb +177 -186
- data/plugins/catalog/catalog.rb +345 -355
- data/plugins/crawler/crawler.rb +4 -13
- data/plugins/crawler/gui.rb +5 -14
- data/plugins/crawler/gui/auth_frame.rb +270 -279
- data/plugins/crawler/gui/crawler_gui.rb +271 -276
- data/plugins/crawler/gui/general_settings_frame.rb +96 -105
- data/plugins/crawler/gui/hooks_frame.rb +80 -89
- data/plugins/crawler/gui/scope_frame.rb +50 -59
- data/plugins/crawler/gui/settings_tabbook.rb +38 -47
- data/plugins/crawler/gui/status_frame.rb +59 -68
- data/plugins/crawler/lib/bags.rb +18 -27
- data/plugins/crawler/lib/constants.rb +11 -20
- data/plugins/crawler/lib/engine.rb +488 -497
- data/plugins/crawler/lib/grabber.rb +68 -77
- data/plugins/crawler/lib/status.rb +71 -80
- data/plugins/crawler/lib/uri_mp.rb +12 -21
- data/plugins/filefinder/filefinder.rb +326 -333
- data/plugins/sqlmap/bin/test.rb +78 -87
- data/plugins/sqlmap/gui.rb +4 -13
- data/plugins/sqlmap/gui/main.rb +218 -227
- data/plugins/sqlmap/gui/options_frame.rb +97 -106
- data/plugins/sqlmap/lib/sqlmap_ctrl.rb +90 -100
- data/plugins/sqlmap/sqlmap.rb +2 -11
- data/plugins/sslchecker/cli/sslchecker_cli.rb +0 -9
- data/plugins/sslchecker/gui/cipher_table.rb +246 -254
- data/plugins/sslchecker/gui/gui.rb +258 -264
- data/plugins/sslchecker/gui/sslchecker.rb +4 -13
- data/plugins/sslchecker/lib/check.rb +127 -133
- data/plugins/wshell/gui/main.rb +119 -117
- data/plugins/wshell/lib/core.rb +38 -88
- data/plugins/wshell/wshell.rb +11 -20
- 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
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
#
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
Watobo
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
plugin
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
#
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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
|