mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Proxy bypass (#3221)
* add proxy bypass option in settings * add proxy bypass popup and persist settings * add proxy bypass to proxy config class * Fix Proxy Bypass Button HTML * Fix indentation * Implement Method popup_proxy_bypass * Fix behaviour in case of empty range tab * Fix behaviour in case of empty range tab 2
This commit is contained in:
parent
36199a3166
commit
eb10fae8ef
|
@ -26,11 +26,18 @@ CLASS zcl_abapgit_proxy_config DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||||
DATA: mo_settings TYPE REF TO zcl_abapgit_settings,
|
DATA: mo_settings TYPE REF TO zcl_abapgit_settings,
|
||||||
mi_exit TYPE REF TO zif_abapgit_exit.
|
mi_exit TYPE REF TO zif_abapgit_exit.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
bypass_proxy
|
||||||
|
IMPORTING
|
||||||
|
iv_repo_url TYPE csequence OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_bypass_proxy) TYPE abap_bool.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
|
CLASS zcl_abapgit_proxy_config IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -44,7 +51,9 @@ CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_proxy_authentication.
|
METHOD get_proxy_authentication.
|
||||||
|
|
||||||
|
IF bypass_proxy( iv_repo_url ) = abap_false.
|
||||||
rv_auth = mo_settings->get_proxy_authentication( ).
|
rv_auth = mo_settings->get_proxy_authentication( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
mi_exit->change_proxy_authentication(
|
mi_exit->change_proxy_authentication(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -57,7 +66,9 @@ CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_proxy_port.
|
METHOD get_proxy_port.
|
||||||
|
|
||||||
|
IF bypass_proxy( iv_repo_url ) = abap_false.
|
||||||
rv_port = mo_settings->get_proxy_port( ).
|
rv_port = mo_settings->get_proxy_port( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
mi_exit->change_proxy_port(
|
mi_exit->change_proxy_port(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -72,7 +83,9 @@ CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_proxy_url.
|
METHOD get_proxy_url.
|
||||||
|
|
||||||
|
IF bypass_proxy( iv_repo_url ) = abap_false.
|
||||||
rv_proxy_url = mo_settings->get_proxy_url( ).
|
rv_proxy_url = mo_settings->get_proxy_url( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
mi_exit->change_proxy_url(
|
mi_exit->change_proxy_url(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -81,4 +94,19 @@ CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
|
||||||
cv_proxy_url = rv_proxy_url ).
|
cv_proxy_url = rv_proxy_url ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD bypass_proxy.
|
||||||
|
|
||||||
|
DATA lt_proxy_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url.
|
||||||
|
|
||||||
|
lt_proxy_bypass = mo_settings->get_proxy_bypass( ).
|
||||||
|
|
||||||
|
IF lt_proxy_bypass IS NOT INITIAL
|
||||||
|
AND iv_repo_url IN lt_proxy_bypass.
|
||||||
|
rv_bypass_proxy = abap_true.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -9,6 +9,7 @@ CLASS zcl_abapgit_gui_page_settings DEFINITION
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF c_action,
|
BEGIN OF c_action,
|
||||||
save_settings TYPE string VALUE 'save_settings',
|
save_settings TYPE string VALUE 'save_settings',
|
||||||
|
change_proxy_bypass TYPE string VALUE 'change_proxy_bypass',
|
||||||
END OF c_action.
|
END OF c_action.
|
||||||
|
|
||||||
METHODS constructor.
|
METHODS constructor.
|
||||||
|
@ -22,6 +23,7 @@ CLASS zcl_abapgit_gui_page_settings DEFINITION
|
||||||
DATA mo_settings TYPE REF TO zcl_abapgit_settings .
|
DATA mo_settings TYPE REF TO zcl_abapgit_settings .
|
||||||
DATA mv_error TYPE abap_bool .
|
DATA mv_error TYPE abap_bool .
|
||||||
DATA mt_post_fields TYPE tihttpnvp .
|
DATA mt_post_fields TYPE tihttpnvp .
|
||||||
|
DATA mt_proxy_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url.
|
||||||
|
|
||||||
METHODS post_commit_msg .
|
METHODS post_commit_msg .
|
||||||
METHODS post_development_internals .
|
METHODS post_development_internals .
|
||||||
|
@ -111,7 +113,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_page_settings IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -359,6 +361,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
|
||||||
mo_settings->set_proxy_authentication( abap_false ).
|
mo_settings->set_proxy_authentication( abap_false ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
mo_settings->set_proxy_bypass( mt_proxy_bypass ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -669,6 +673,12 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
|
||||||
ro_html->add( `<input name="proxy_auth" type="checkbox">` ).
|
ro_html->add( `<input name="proxy_auth" type="checkbox">` ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ro_html->add( |<br>| ).
|
ro_html->add( |<br>| ).
|
||||||
|
ro_html->add( |<br>| ).
|
||||||
|
ro_html->add( |<label for="proxy_bypass">Bypass proxy settings for these Hosts & Domains</label>| ).
|
||||||
|
ro_html->add( |<br>| ).
|
||||||
|
ro_html->add( |<button type="button" name="proxy_bypass" class="grey-set"|
|
||||||
|
& |onclick="location.href='sapevent:{ c_action-change_proxy_bypass }';">Maintain</button>| ).
|
||||||
|
ro_html->add( |<br>| ).
|
||||||
|
|
||||||
ro_html->add( |<br>| ).
|
ro_html->add( |<br>| ).
|
||||||
|
|
||||||
|
@ -781,6 +791,10 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ev_state = zcl_abapgit_gui=>c_event_state-go_back.
|
ev_state = zcl_abapgit_gui=>c_event_state-go_back.
|
||||||
|
WHEN c_action-change_proxy_bypass.
|
||||||
|
mt_proxy_bypass = zcl_abapgit_ui_factory=>get_popups( )->popup_proxy_bypass( mo_settings->get_proxy_bypass( ) ).
|
||||||
|
|
||||||
|
ev_state = zcl_abapgit_gui=>c_event_state-no_more_act.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -24,7 +24,8 @@ CLASS zcl_abapgit_popups DEFINITION
|
||||||
popup_to_select_from_list FOR zif_abapgit_popups~popup_to_select_from_list,
|
popup_to_select_from_list FOR zif_abapgit_popups~popup_to_select_from_list,
|
||||||
branch_popup_callback FOR zif_abapgit_popups~branch_popup_callback,
|
branch_popup_callback FOR zif_abapgit_popups~branch_popup_callback,
|
||||||
package_popup_callback FOR zif_abapgit_popups~package_popup_callback,
|
package_popup_callback FOR zif_abapgit_popups~package_popup_callback,
|
||||||
popup_transport_request FOR zif_abapgit_popups~popup_transport_request.
|
popup_transport_request FOR zif_abapgit_popups~popup_transport_request,
|
||||||
|
popup_proxy_bypass FOR zif_abapgit_popups~popup_proxy_bypass.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
@ -94,7 +95,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
|
CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add_field.
|
METHOD add_field.
|
||||||
|
@ -1198,6 +1199,32 @@ CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_popups~popup_proxy_bypass.
|
||||||
|
rt_proxy_bypass = it_proxy_bypass.
|
||||||
|
CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
|
||||||
|
EXPORTING
|
||||||
|
title = 'Bypass proxy settings for these Hosts & Domains'
|
||||||
|
signed = abap_false
|
||||||
|
lower_case = abap_true
|
||||||
|
no_interval_check = abap_true
|
||||||
|
TABLES
|
||||||
|
range = rt_proxy_bypass
|
||||||
|
EXCEPTIONS
|
||||||
|
no_range_tab = 1
|
||||||
|
cancelled = 2
|
||||||
|
internal_error = 3
|
||||||
|
invalid_fieldname = 4
|
||||||
|
OTHERS = 5.
|
||||||
|
CASE sy-subrc.
|
||||||
|
WHEN 0.
|
||||||
|
WHEN 2.
|
||||||
|
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
|
||||||
|
WHEN OTHERS.
|
||||||
|
zcx_abapgit_exception=>raise( 'Error from COMPLEX_SELECTIONS_DIALOG' ).
|
||||||
|
ENDCASE.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD _popup_3_get_values.
|
METHOD _popup_3_get_values.
|
||||||
|
|
||||||
DATA lv_answer TYPE c LENGTH 1.
|
DATA lv_answer TYPE c LENGTH 1.
|
||||||
|
@ -1240,4 +1267,5 @@ CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -96,6 +96,10 @@ CLASS ltcl_abapgit_popups_mock IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD zif_abapgit_popups~popup_proxy_bypass.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
CLASS ltcl_no_dependency_injection IMPLEMENTATION.
|
CLASS ltcl_no_dependency_injection IMPLEMENTATION.
|
||||||
|
|
|
@ -144,4 +144,11 @@ INTERFACE zif_abapgit_popups
|
||||||
VALUE(rv_transport) TYPE trkorr
|
VALUE(rv_transport) TYPE trkorr
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
METHODS popup_proxy_bypass
|
||||||
|
IMPORTING
|
||||||
|
!it_proxy_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_proxy_bypass) TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
ENDINTERFACE.
|
ENDINTERFACE.
|
||||||
|
|
|
@ -27,6 +27,9 @@ CLASS zcl_abapgit_settings DEFINITION PUBLIC CREATE PUBLIC.
|
||||||
set_proxy_authentication
|
set_proxy_authentication
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_auth TYPE abap_bool,
|
iv_auth TYPE abap_bool,
|
||||||
|
set_proxy_bypass
|
||||||
|
IMPORTING
|
||||||
|
it_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url OPTIONAL,
|
||||||
get_proxy_url
|
get_proxy_url
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_proxy_url) TYPE string,
|
VALUE(rv_proxy_url) TYPE string,
|
||||||
|
@ -36,6 +39,8 @@ CLASS zcl_abapgit_settings DEFINITION PUBLIC CREATE PUBLIC.
|
||||||
get_proxy_authentication
|
get_proxy_authentication
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_auth) TYPE abap_bool,
|
VALUE(rv_auth) TYPE abap_bool,
|
||||||
|
get_proxy_bypass
|
||||||
|
RETURNING VALUE(rt_bypass) TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url,
|
||||||
set_run_critical_tests
|
set_run_critical_tests
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_run TYPE abap_bool,
|
iv_run TYPE abap_bool,
|
||||||
|
@ -142,6 +147,7 @@ CLASS zcl_abapgit_settings DEFINITION PUBLIC CREATE PUBLIC.
|
||||||
proxy_url TYPE string,
|
proxy_url TYPE string,
|
||||||
proxy_port TYPE string,
|
proxy_port TYPE string,
|
||||||
proxy_auth TYPE string,
|
proxy_auth TYPE string,
|
||||||
|
proxy_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url,
|
||||||
run_critical_tests TYPE abap_bool,
|
run_critical_tests TYPE abap_bool,
|
||||||
experimental_features TYPE abap_bool,
|
experimental_features TYPE abap_bool,
|
||||||
commitmsg_comment_length TYPE i,
|
commitmsg_comment_length TYPE i,
|
||||||
|
@ -158,7 +164,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
|
CLASS zcl_abapgit_settings IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_adt_jump_enabled.
|
METHOD get_adt_jump_enabled.
|
||||||
|
@ -226,6 +232,11 @@ CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_proxy_bypass.
|
||||||
|
rt_bypass = ms_settings-proxy_bypass.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_run_critical_tests.
|
METHOD get_run_critical_tests.
|
||||||
rv_run = ms_settings-run_critical_tests.
|
rv_run = ms_settings-run_critical_tests.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -352,6 +363,10 @@ CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_proxy_bypass.
|
||||||
|
ms_settings-proxy_bypass = it_bypass.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD set_run_critical_tests.
|
METHOD set_run_critical_tests.
|
||||||
ms_settings-run_critical_tests = iv_run.
|
ms_settings-run_critical_tests = iv_run.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -398,4 +413,5 @@ CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
|
||||||
cg_data = ms_settings ).
|
cg_data = ms_settings ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -364,6 +364,10 @@ INTERFACE zif_abapgit_definitions
|
||||||
tty_col_spec TYPE STANDARD TABLE OF ty_col_spec
|
tty_col_spec TYPE STANDARD TABLE OF ty_col_spec
|
||||||
WITH NON-UNIQUE KEY tech_name.
|
WITH NON-UNIQUE KEY tech_name.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
ty_proxy_bypass_url TYPE c LENGTH 255,
|
||||||
|
ty_range_proxy_bypass_url TYPE RANGE OF ty_proxy_bypass_url.
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF c_git_branch_type,
|
BEGIN OF c_git_branch_type,
|
||||||
branch TYPE ty_git_branch_type VALUE 'HD',
|
branch TYPE ty_git_branch_type VALUE 'HD',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user