mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +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,
|
||||
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.
|
||||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_proxy_config IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -44,7 +51,9 @@ CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
|
|||
|
||||
METHOD get_proxy_authentication.
|
||||
|
||||
IF bypass_proxy( iv_repo_url ) = abap_false.
|
||||
rv_auth = mo_settings->get_proxy_authentication( ).
|
||||
ENDIF.
|
||||
|
||||
mi_exit->change_proxy_authentication(
|
||||
EXPORTING
|
||||
|
@ -57,7 +66,9 @@ CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
|
|||
|
||||
METHOD get_proxy_port.
|
||||
|
||||
IF bypass_proxy( iv_repo_url ) = abap_false.
|
||||
rv_port = mo_settings->get_proxy_port( ).
|
||||
ENDIF.
|
||||
|
||||
mi_exit->change_proxy_port(
|
||||
EXPORTING
|
||||
|
@ -72,7 +83,9 @@ CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
|
|||
|
||||
METHOD get_proxy_url.
|
||||
|
||||
IF bypass_proxy( iv_repo_url ) = abap_false.
|
||||
rv_proxy_url = mo_settings->get_proxy_url( ).
|
||||
ENDIF.
|
||||
|
||||
mi_exit->change_proxy_url(
|
||||
EXPORTING
|
||||
|
@ -81,4 +94,19 @@ CLASS ZCL_ABAPGIT_PROXY_CONFIG IMPLEMENTATION.
|
|||
cv_proxy_url = rv_proxy_url ).
|
||||
|
||||
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.
|
||||
|
|
|
@ -9,6 +9,7 @@ CLASS zcl_abapgit_gui_page_settings DEFINITION
|
|||
CONSTANTS:
|
||||
BEGIN OF c_action,
|
||||
save_settings TYPE string VALUE 'save_settings',
|
||||
change_proxy_bypass TYPE string VALUE 'change_proxy_bypass',
|
||||
END OF c_action.
|
||||
|
||||
METHODS constructor.
|
||||
|
@ -22,6 +23,7 @@ CLASS zcl_abapgit_gui_page_settings DEFINITION
|
|||
DATA mo_settings TYPE REF TO zcl_abapgit_settings .
|
||||
DATA mv_error TYPE abap_bool .
|
||||
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_development_internals .
|
||||
|
@ -111,7 +113,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_gui_page_settings IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -359,6 +361,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
|
|||
mo_settings->set_proxy_authentication( abap_false ).
|
||||
ENDIF.
|
||||
|
||||
mo_settings->set_proxy_bypass( mt_proxy_bypass ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -669,6 +673,12 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
|
|||
ro_html->add( `<input name="proxy_auth" type="checkbox">` ).
|
||||
ENDIF.
|
||||
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>| ).
|
||||
|
||||
|
@ -781,6 +791,10 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETTINGS IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
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.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -24,7 +24,8 @@ CLASS zcl_abapgit_popups DEFINITION
|
|||
popup_to_select_from_list FOR zif_abapgit_popups~popup_to_select_from_list,
|
||||
branch_popup_callback FOR zif_abapgit_popups~branch_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.
|
||||
PRIVATE SECTION.
|
||||
|
@ -94,7 +95,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD add_field.
|
||||
|
@ -1198,6 +1199,32 @@ CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
DATA lv_answer TYPE c LENGTH 1.
|
||||
|
@ -1240,4 +1267,5 @@ CLASS ZCL_ABAPGIT_POPUPS IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -96,6 +96,10 @@ CLASS ltcl_abapgit_popups_mock IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_popups~popup_proxy_bypass.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_no_dependency_injection IMPLEMENTATION.
|
||||
|
|
|
@ -144,4 +144,11 @@ INTERFACE zif_abapgit_popups
|
|||
VALUE(rv_transport) TYPE trkorr
|
||||
RAISING
|
||||
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.
|
||||
|
|
|
@ -27,6 +27,9 @@ CLASS zcl_abapgit_settings DEFINITION PUBLIC CREATE PUBLIC.
|
|||
set_proxy_authentication
|
||||
IMPORTING
|
||||
iv_auth TYPE abap_bool,
|
||||
set_proxy_bypass
|
||||
IMPORTING
|
||||
it_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url OPTIONAL,
|
||||
get_proxy_url
|
||||
RETURNING
|
||||
VALUE(rv_proxy_url) TYPE string,
|
||||
|
@ -36,6 +39,8 @@ CLASS zcl_abapgit_settings DEFINITION PUBLIC CREATE PUBLIC.
|
|||
get_proxy_authentication
|
||||
RETURNING
|
||||
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
|
||||
IMPORTING
|
||||
iv_run TYPE abap_bool,
|
||||
|
@ -142,6 +147,7 @@ CLASS zcl_abapgit_settings DEFINITION PUBLIC CREATE PUBLIC.
|
|||
proxy_url TYPE string,
|
||||
proxy_port TYPE string,
|
||||
proxy_auth TYPE string,
|
||||
proxy_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url,
|
||||
run_critical_tests TYPE abap_bool,
|
||||
experimental_features TYPE abap_bool,
|
||||
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.
|
||||
|
@ -226,6 +232,11 @@ CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_proxy_bypass.
|
||||
rt_bypass = ms_settings-proxy_bypass.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_run_critical_tests.
|
||||
rv_run = ms_settings-run_critical_tests.
|
||||
ENDMETHOD.
|
||||
|
@ -352,6 +363,10 @@ CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD set_proxy_bypass.
|
||||
ms_settings-proxy_bypass = it_bypass.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_run_critical_tests.
|
||||
ms_settings-run_critical_tests = iv_run.
|
||||
ENDMETHOD.
|
||||
|
@ -398,4 +413,5 @@ CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION.
|
|||
cg_data = ms_settings ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -364,6 +364,10 @@ INTERFACE zif_abapgit_definitions
|
|||
tty_col_spec TYPE STANDARD TABLE OF ty_col_spec
|
||||
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:
|
||||
BEGIN OF c_git_branch_type,
|
||||
branch TYPE ty_git_branch_type VALUE 'HD',
|
||||
|
|
Loading…
Reference in New Issue
Block a user