mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
W3xx remove path from filename #374
This commit is contained in:
parent
2080398f38
commit
96f805d50a
|
@ -38,6 +38,10 @@ CLASS lcl_object_w3super DEFINITION INHERITING FROM lcl_objects_super ABSTRACT.
|
||||||
CHANGING ct_params TYPE ty_wwwparams_tt
|
CHANGING ct_params TYPE ty_wwwparams_tt
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS patch_filename
|
||||||
|
CHANGING ct_params TYPE ty_wwwparams_tt
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
ENDCLASS. "lcl_object_W3SUPER DEFINITION
|
ENDCLASS. "lcl_object_W3SUPER DEFINITION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -144,6 +148,9 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
lv_size = ls_wwwparam-value.
|
lv_size = ls_wwwparam-value.
|
||||||
|
|
||||||
|
" Remove file path (for security concerns)
|
||||||
|
patch_filename( CHANGING ct_params = lt_w3params ).
|
||||||
|
|
||||||
CASE ms_key-relid.
|
CASE ms_key-relid.
|
||||||
WHEN 'MI'.
|
WHEN 'MI'.
|
||||||
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
||||||
|
@ -387,6 +394,21 @@ CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. " patch_size.
|
ENDMETHOD. " patch_size.
|
||||||
|
|
||||||
|
METHOD patch_filename.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <param> LIKE LINE OF ct_params.
|
||||||
|
|
||||||
|
READ TABLE ct_params ASSIGNING <param> WITH KEY name = 'filename'.
|
||||||
|
|
||||||
|
IF sy-subrc > 0.
|
||||||
|
lcx_exception=>raise( |W3xx: Cannot find file name for { ms_key-objid }| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
" Remove path
|
||||||
|
<param>-value = lcl_path=>get_filename_from_syspath( |{ <param>-value }| ).
|
||||||
|
|
||||||
|
ENDMETHOD. " patch_filename.
|
||||||
|
|
||||||
METHOD lif_object~compare_to_remote_version.
|
METHOD lif_object~compare_to_remote_version.
|
||||||
CREATE OBJECT ro_comparison_result TYPE lcl_null_comparison_result.
|
CREATE OBJECT ro_comparison_result TYPE lcl_null_comparison_result.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -1676,6 +1676,7 @@ CLASS ltcl_path DEFINITION
|
||||||
METHODS split_file_location FOR TESTING.
|
METHODS split_file_location FOR TESTING.
|
||||||
METHODS is_subdir FOR TESTING.
|
METHODS is_subdir FOR TESTING.
|
||||||
METHODS change_dir FOR TESTING.
|
METHODS change_dir FOR TESTING.
|
||||||
|
METHODS get_filename_from_syspath FOR TESTING.
|
||||||
|
|
||||||
ENDCLASS. "ltcl_path
|
ENDCLASS. "ltcl_path
|
||||||
|
|
||||||
|
@ -1794,6 +1795,30 @@ CLASS ltcl_path IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_filename_from_syspath.
|
||||||
|
|
||||||
|
DATA lv_filename TYPE string.
|
||||||
|
|
||||||
|
lv_filename = lcl_path=>get_filename_from_syspath( 'file.txt' ).
|
||||||
|
assert_equals( act = lv_filename exp = 'file.txt' ).
|
||||||
|
|
||||||
|
lv_filename = lcl_path=>get_filename_from_syspath( 'c:\dir\file.txt' ).
|
||||||
|
assert_equals( act = lv_filename exp = 'file.txt' ).
|
||||||
|
|
||||||
|
lv_filename = lcl_path=>get_filename_from_syspath( 'c:\file.txt' ).
|
||||||
|
assert_equals( act = lv_filename exp = 'file.txt' ).
|
||||||
|
|
||||||
|
lv_filename = lcl_path=>get_filename_from_syspath( '/dir/file.txt' ).
|
||||||
|
assert_equals( act = lv_filename exp = 'file.txt' ).
|
||||||
|
|
||||||
|
lv_filename = lcl_path=>get_filename_from_syspath( '/file.txt' ).
|
||||||
|
assert_equals( act = lv_filename exp = 'file.txt' ).
|
||||||
|
|
||||||
|
lv_filename = lcl_path=>get_filename_from_syspath( '\\server$\file.txt' ).
|
||||||
|
assert_equals( act = lv_filename exp = 'file.txt' ).
|
||||||
|
|
||||||
|
ENDMETHOD. " get_filename_from_syspath.
|
||||||
|
|
||||||
ENDCLASS. "ltcl_path
|
ENDCLASS. "ltcl_path
|
||||||
|
|
||||||
CLASS ltcl_file_status DEFINITION
|
CLASS ltcl_file_status DEFINITION
|
||||||
|
|
|
@ -360,6 +360,10 @@ CLASS lcl_path DEFINITION FINAL.
|
||||||
iv_cd TYPE string
|
iv_cd TYPE string
|
||||||
RETURNING VALUE(rv_path) TYPE string.
|
RETURNING VALUE(rv_path) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS get_filename_from_syspath
|
||||||
|
IMPORTING iv_path TYPE string
|
||||||
|
RETURNING VALUE(rv_filename) TYPE string.
|
||||||
|
|
||||||
ENDCLASS. "lcl_path
|
ENDCLASS. "lcl_path
|
||||||
|
|
||||||
CLASS lcl_path IMPLEMENTATION.
|
CLASS lcl_path IMPLEMENTATION.
|
||||||
|
@ -434,6 +438,15 @@ CLASS lcl_path IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "change_dir
|
ENDMETHOD. "change_dir
|
||||||
|
|
||||||
|
METHOD get_filename_from_syspath.
|
||||||
|
|
||||||
|
" filename | c:\filename | /dir/filename | \\server\filename
|
||||||
|
FIND FIRST OCCURRENCE OF REGEX '^(?:/(?:.+/)*|(?:\w:|\\)\\(?:.+\\)*)?([^\\/]+)$'
|
||||||
|
IN iv_path
|
||||||
|
SUBMATCHES rv_filename.
|
||||||
|
|
||||||
|
ENDMETHOD. " get_filename_from_syspath.
|
||||||
|
|
||||||
ENDCLASS. "lcl_path
|
ENDCLASS. "lcl_path
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
|
Loading…
Reference in New Issue
Block a user