mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 03:36:32 +08:00
refactor zcl_abapgit_user_record
(#7211)
This commit is contained in:
parent
1fa75ebb47
commit
96a010614b
|
@ -72,9 +72,9 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
||||||
DATA: lo_user_record TYPE REF TO zcl_abapgit_user_record.
|
DATA: lo_user_record TYPE REF TO zcl_abapgit_user_record.
|
||||||
|
|
||||||
|
|
||||||
lo_user_record = zcl_abapgit_user_record=>get_instance( iv_changed_by ).
|
lo_user_record = zcl_abapgit_user_record=>get_instance( ).
|
||||||
rs_user-name = lo_user_record->get_name( ).
|
rs_user-name = lo_user_record->get_name( iv_changed_by ).
|
||||||
rs_user-email = lo_user_record->get_email( ).
|
rs_user-email = lo_user_record->get_email( iv_changed_by ).
|
||||||
|
|
||||||
* If no email, fall back to localhost/default email
|
* If no email, fall back to localhost/default email
|
||||||
IF rs_user-email IS INITIAL.
|
IF rs_user-email IS INITIAL.
|
||||||
|
|
86
src/env/zcl_abapgit_user_record.clas.abap
vendored
86
src/env/zcl_abapgit_user_record.clas.abap
vendored
|
@ -6,20 +6,20 @@ CLASS zcl_abapgit_user_record DEFINITION
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
CLASS-METHODS reset.
|
CLASS-METHODS reset.
|
||||||
CLASS-METHODS get_instance
|
CLASS-METHODS get_instance
|
||||||
IMPORTING
|
|
||||||
!iv_user TYPE sy-uname
|
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ro_user) TYPE REF TO zcl_abapgit_user_record.
|
VALUE(ro_user) TYPE REF TO zcl_abapgit_user_record.
|
||||||
METHODS constructor
|
|
||||||
IMPORTING
|
|
||||||
!iv_user TYPE sy-uname.
|
|
||||||
METHODS get_name
|
METHODS get_name
|
||||||
|
IMPORTING
|
||||||
|
iv_username TYPE sy-uname
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_name) TYPE string.
|
VALUE(rv_name) TYPE string.
|
||||||
METHODS get_email
|
METHODS get_email
|
||||||
|
IMPORTING
|
||||||
|
iv_username TYPE sy-uname
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_email) TYPE string.
|
VALUE(rv_email) TYPE string.
|
||||||
CLASS-METHODS get_title
|
METHODS get_title
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_username TYPE sy-uname
|
iv_username TYPE sy-uname
|
||||||
RETURNING
|
RETURNING
|
||||||
|
@ -28,18 +28,14 @@ CLASS zcl_abapgit_user_record DEFINITION
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_user,
|
BEGIN OF ty_user,
|
||||||
user TYPE sy-uname,
|
user TYPE sy-uname,
|
||||||
o_user TYPE REF TO zcl_abapgit_user_record,
|
name TYPE string,
|
||||||
|
email TYPE string,
|
||||||
END OF ty_user.
|
END OF ty_user.
|
||||||
|
|
||||||
CLASS-DATA gt_user TYPE HASHED TABLE OF ty_user WITH UNIQUE KEY user.
|
CLASS-DATA gt_user TYPE HASHED TABLE OF ty_user WITH UNIQUE KEY user.
|
||||||
|
|
||||||
DATA: BEGIN OF ms_user,
|
CLASS-METHODS check_user_exists
|
||||||
name TYPE string,
|
|
||||||
email TYPE string,
|
|
||||||
END OF ms_user .
|
|
||||||
|
|
||||||
METHODS check_user_exists
|
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_user TYPE sy-uname
|
iv_user TYPE sy-uname
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -48,19 +44,35 @@ CLASS zcl_abapgit_user_record DEFINITION
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS get_user_dtls_from_other_clnt
|
CLASS-METHODS get_user_dtls_from_other_clnt
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_user TYPE sy-uname.
|
iv_user TYPE sy-uname
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_user) TYPE ty_user.
|
||||||
|
|
||||||
|
CLASS-METHODS build_cache
|
||||||
|
IMPORTING
|
||||||
|
iv_user TYPE sy-uname
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_user) TYPE ty_user.
|
||||||
|
|
||||||
|
CLASS-METHODS read_cache
|
||||||
|
IMPORTING
|
||||||
|
iv_user TYPE sy-uname
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_user) TYPE ty_user.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
||||||
|
METHOD get_instance.
|
||||||
|
CREATE OBJECT ro_user.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_title.
|
METHOD get_title.
|
||||||
* the queried username might not exist, so this method is static
|
* the queried username might not exist, refactored for open-abap compatibility
|
||||||
* refactored for open-abap compatibility
|
|
||||||
|
|
||||||
DATA lr_addr3 TYPE REF TO data.
|
DATA lr_addr3 TYPE REF TO data.
|
||||||
FIELD-SYMBOLS <ls_addr3> TYPE any.
|
FIELD-SYMBOLS <ls_addr3> TYPE any.
|
||||||
|
@ -120,9 +132,7 @@ CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD build_cache.
|
||||||
|
|
||||||
DATA ls_user TYPE ty_user.
|
|
||||||
|
|
||||||
" Get user details
|
" Get user details
|
||||||
TRY.
|
TRY.
|
||||||
|
@ -130,41 +140,31 @@ CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
||||||
EXPORTING
|
EXPORTING
|
||||||
iv_user = iv_user
|
iv_user = iv_user
|
||||||
IMPORTING
|
IMPORTING
|
||||||
ev_fullname = ms_user-name
|
ev_fullname = rs_user-name
|
||||||
ev_email = ms_user-email ).
|
ev_email = rs_user-email ).
|
||||||
CATCH zcx_abapgit_exception.
|
CATCH zcx_abapgit_exception.
|
||||||
" Could not find user, try to get from other clients
|
" Could not find user, try to get from other clients
|
||||||
get_user_dtls_from_other_clnt( iv_user ).
|
rs_user = get_user_dtls_from_other_clnt( iv_user ).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
" If the user has been found add it to the list
|
rs_user-user = iv_user.
|
||||||
IF ms_user-name IS NOT INITIAL AND ms_user-email IS NOT INITIAL.
|
INSERT rs_user INTO TABLE gt_user.
|
||||||
ls_user-user = iv_user.
|
|
||||||
ls_user-o_user = me.
|
|
||||||
INSERT ls_user INTO TABLE gt_user.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_email.
|
METHOD get_email.
|
||||||
|
|
||||||
rv_email = ms_user-email.
|
rv_email = read_cache( iv_username )-email.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_instance.
|
METHOD read_cache.
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_user> TYPE ty_user.
|
READ TABLE gt_user INTO rs_user WITH TABLE KEY user = iv_user.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
READ TABLE gt_user ASSIGNING <ls_user> WITH TABLE KEY user = iv_user.
|
rs_user = build_cache( iv_user ).
|
||||||
IF sy-subrc = 0.
|
|
||||||
ro_user = <ls_user>-o_user.
|
|
||||||
ELSE.
|
|
||||||
CREATE OBJECT ro_user
|
|
||||||
EXPORTING
|
|
||||||
iv_user = iv_user.
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -172,7 +172,7 @@ CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_name.
|
METHOD get_name.
|
||||||
|
|
||||||
rv_name = ms_user-name.
|
rv_name = read_cache( iv_username )-name.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ CLASS zcl_abapgit_user_record IMPLEMENTATION.
|
||||||
ORDER BY PRIMARY KEY.
|
ORDER BY PRIMARY KEY.
|
||||||
|
|
||||||
LOOP AT lt_dev_clients ASSIGNING <lv_dev_client>.
|
LOOP AT lt_dev_clients ASSIGNING <lv_dev_client>.
|
||||||
SELECT SINGLE p~name_text a~smtp_addr INTO (ms_user-name, ms_user-email)
|
SELECT SINGLE u~bname p~name_text a~smtp_addr INTO (rs_user-user, rs_user-name, rs_user-email)
|
||||||
FROM usr21 AS u
|
FROM usr21 AS u
|
||||||
INNER JOIN adrp AS p ON p~persnumber = u~persnumber
|
INNER JOIN adrp AS p ON p~persnumber = u~persnumber
|
||||||
AND p~client = u~mandt
|
AND p~client = u~mandt
|
||||||
|
|
|
@ -19,7 +19,7 @@ CLASS ltcl_user_record IMPLEMENTATION.
|
||||||
DATA: lo_user_record TYPE REF TO zcl_abapgit_user_record.
|
DATA: lo_user_record TYPE REF TO zcl_abapgit_user_record.
|
||||||
|
|
||||||
zcl_abapgit_user_record=>reset( ).
|
zcl_abapgit_user_record=>reset( ).
|
||||||
lo_user_record = zcl_abapgit_user_record=>get_instance( c_wrong_user ).
|
lo_user_record = zcl_abapgit_user_record=>get_instance( ).
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
exp = 0
|
exp = 0
|
||||||
|
|
|
@ -1323,7 +1323,7 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF iv_username <> zcl_abapgit_objects_super=>c_user_unknown AND iv_suppress_title = abap_false.
|
IF iv_username <> zcl_abapgit_objects_super=>c_user_unknown AND iv_suppress_title = abap_false.
|
||||||
lv_title = zcl_abapgit_user_record=>get_title( iv_username ).
|
lv_title = zcl_abapgit_user_record=>get_instance( )->get_title( iv_username ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
lv_jump = |{ zif_abapgit_definitions=>c_action-jump_user }?user={ iv_username }|.
|
lv_jump = |{ zif_abapgit_definitions=>c_action-jump_user }?user={ iv_username }|.
|
||||||
|
|
|
@ -367,7 +367,7 @@ CLASS zcl_abapgit_gui_page_db IMPLEMENTATION.
|
||||||
|
|
||||||
WHEN zcl_abapgit_persistence_db=>c_type_user.
|
WHEN zcl_abapgit_persistence_db=>c_type_user.
|
||||||
lv_descr = 'Personal Settings'.
|
lv_descr = 'Personal Settings'.
|
||||||
ls_explanation-value = zcl_abapgit_user_record=>get_instance( is_data-value )->get_name( ).
|
ls_explanation-value = zcl_abapgit_user_record=>get_instance( )->get_name( is_data-value ).
|
||||||
|
|
||||||
WHEN zcl_abapgit_persistence_db=>c_type_settings.
|
WHEN zcl_abapgit_persistence_db=>c_type_settings.
|
||||||
lv_descr = 'Global Settings'.
|
lv_descr = 'Global Settings'.
|
||||||
|
|
|
@ -194,7 +194,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF iv_username <> zcl_abapgit_objects_super=>c_user_unknown.
|
IF iv_username <> zcl_abapgit_objects_super=>c_user_unknown.
|
||||||
lv_title = zcl_abapgit_user_record=>get_title( iv_username ).
|
lv_title = zcl_abapgit_user_record=>get_instance( )->get_title( iv_username ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
rv_user = iv_username.
|
rv_user = iv_username.
|
||||||
|
|
|
@ -241,7 +241,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
IF rv_email IS INITIAL.
|
IF rv_email IS INITIAL.
|
||||||
" get default from user record
|
" get default from user record
|
||||||
rv_email = zcl_abapgit_user_record=>get_instance( sy-uname )->get_email( ).
|
rv_email = zcl_abapgit_user_record=>get_instance( )->get_email( sy-uname ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -259,7 +259,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
IF rv_user IS INITIAL.
|
IF rv_user IS INITIAL.
|
||||||
" get default from user record
|
" get default from user record
|
||||||
rv_user = zcl_abapgit_user_record=>get_instance( sy-uname )->get_name( ).
|
rv_user = zcl_abapgit_user_record=>get_instance( )->get_name( sy-uname ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -237,7 +237,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
IF rv_email IS INITIAL.
|
IF rv_email IS INITIAL.
|
||||||
" get default from user record
|
" get default from user record
|
||||||
rv_email = zcl_abapgit_user_record=>get_instance( sy-uname )->get_email( ).
|
rv_email = zcl_abapgit_user_record=>get_instance( )->get_email( sy-uname ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -255,7 +255,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
IF rv_user IS INITIAL.
|
IF rv_user IS INITIAL.
|
||||||
" get default from user record
|
" get default from user record
|
||||||
rv_user = zcl_abapgit_user_record=>get_instance( sy-uname )->get_name( ).
|
rv_user = zcl_abapgit_user_record=>get_instance( )->get_name( sy-uname ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user