mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Default committer name and e-mail from SU01 (#1310)
* Default committer name and e-mail from SU01 * Refactoring: introduce get_name and get_email meth
This commit is contained in:
parent
4125b7d119
commit
e4c1de4732
|
@ -44,7 +44,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -96,11 +96,19 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION.
|
|||
IF lv_user IS INITIAL.
|
||||
lv_user = lo_user->get_default_git_user_name( ).
|
||||
ENDIF.
|
||||
IF lv_user IS INITIAL.
|
||||
" get default from user master record
|
||||
lv_user = zcl_abapgit_user_master_record=>get_instance( sy-uname )->get_name( ).
|
||||
ENDIF.
|
||||
|
||||
lv_email = lo_user->get_repo_git_user_email( mo_repo->get_url( ) ).
|
||||
IF lv_email IS INITIAL.
|
||||
lv_email = lo_user->get_default_git_user_email( ).
|
||||
ENDIF.
|
||||
IF lv_email IS INITIAL.
|
||||
" get default from user master record
|
||||
lv_email = zcl_abapgit_user_master_record=>get_instance( sy-uname )->get_email( ).
|
||||
ENDIF.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
|
|
117
src/utils/zcl_abapgit_user_master_record.clas.abap
Normal file
117
src/utils/zcl_abapgit_user_master_record.clas.abap
Normal file
|
@ -0,0 +1,117 @@
|
|||
CLASS zcl_abapgit_user_master_record DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PRIVATE .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS:
|
||||
get_instance
|
||||
IMPORTING
|
||||
!iv_user TYPE uname
|
||||
RETURNING
|
||||
VALUE(ro_user) TYPE REF TO zcl_abapgit_user_master_record.
|
||||
|
||||
METHODS:
|
||||
constructor
|
||||
IMPORTING
|
||||
!iv_user TYPE uname,
|
||||
|
||||
get_name
|
||||
RETURNING
|
||||
VALUE(rv_name) TYPE zif_abapgit_definitions=>ty_git_user-name,
|
||||
|
||||
get_email
|
||||
RETURNING
|
||||
VALUE(rv_email) TYPE zif_abapgit_definitions=>ty_git_user-email.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_user,
|
||||
user TYPE uname,
|
||||
o_user TYPE REF TO zcl_abapgit_user_master_record,
|
||||
END OF ty_user.
|
||||
|
||||
CLASS-DATA:
|
||||
mt_user TYPE HASHED TABLE OF ty_user
|
||||
WITH UNIQUE KEY user.
|
||||
|
||||
DATA:
|
||||
ms_user TYPE zif_abapgit_definitions=>ty_git_user.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_user_master_record IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
DATA: lt_return TYPE TABLE OF bapiret2,
|
||||
ls_address TYPE bapiaddr3,
|
||||
lt_smtp TYPE TABLE OF bapiadsmtp,
|
||||
ls_smtp TYPE bapiadsmtp.
|
||||
|
||||
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
|
||||
EXPORTING
|
||||
username = iv_user
|
||||
IMPORTING
|
||||
address = ls_address
|
||||
TABLES
|
||||
return = lt_return
|
||||
addsmtp = lt_smtp.
|
||||
|
||||
* Choose the first email from SU01
|
||||
SORT lt_smtp BY consnumber ASCENDING.
|
||||
|
||||
LOOP AT lt_smtp INTO ls_smtp.
|
||||
ms_user-email = ls_smtp-e_mail.
|
||||
EXIT.
|
||||
ENDLOOP.
|
||||
|
||||
* Attempt to use the full name from SU01
|
||||
ms_user-name = ls_address-fullname.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_email.
|
||||
|
||||
rv_email = ms_user-email.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_instance.
|
||||
|
||||
DATA: ls_user TYPE ty_user.
|
||||
FIELD-SYMBOLS: <ls_user> TYPE ty_user.
|
||||
|
||||
READ TABLE mt_user ASSIGNING <ls_user>
|
||||
WITH KEY user = iv_user.
|
||||
IF sy-subrc <> 0.
|
||||
|
||||
ls_user-user = iv_user.
|
||||
CREATE OBJECT ls_user-o_user
|
||||
EXPORTING
|
||||
iv_user = iv_user.
|
||||
|
||||
INSERT ls_user
|
||||
INTO TABLE mt_user
|
||||
ASSIGNING <ls_user>.
|
||||
|
||||
ENDIF.
|
||||
|
||||
ro_user = <ls_user>-o_user.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_name.
|
||||
|
||||
rv_name = ms_user-name.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
18
src/utils/zcl_abapgit_user_master_record.clas.xml
Normal file
18
src/utils/zcl_abapgit_user_master_record.clas.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_USER_MASTER_RECORD</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ZCL_ABAPGIT_USER</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSFINAL>X</CLSFINAL>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -31,7 +31,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_background IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD build_comment.
|
||||
|
@ -64,33 +64,20 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
|||
|
||||
METHOD determine_user_details.
|
||||
|
||||
DATA: lt_return TYPE TABLE OF bapiret2,
|
||||
ls_address TYPE bapiaddr3,
|
||||
lt_smtp TYPE TABLE OF bapiadsmtp,
|
||||
ls_smtp TYPE bapiadsmtp.
|
||||
DATA: lt_return TYPE TABLE OF bapiret2,
|
||||
ls_address TYPE bapiaddr3,
|
||||
lt_smtp TYPE TABLE OF bapiadsmtp,
|
||||
ls_smtp TYPE bapiadsmtp,
|
||||
lo_user_master_record TYPE REF TO zcl_abapgit_user_master_record.
|
||||
|
||||
* IF the method is to use real user values, call the BAPI
|
||||
IF iv_method = zcl_abapgit_persist_background=>c_amethod-user.
|
||||
|
||||
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
|
||||
EXPORTING
|
||||
username = iv_changed_by
|
||||
IMPORTING
|
||||
address = ls_address
|
||||
TABLES
|
||||
return = lt_return
|
||||
addsmtp = lt_smtp.
|
||||
lo_user_master_record = zcl_abapgit_user_master_record=>get_instance( iv_changed_by ).
|
||||
|
||||
* Choose the first email from SU01
|
||||
SORT lt_smtp BY consnumber ASCENDING.
|
||||
rs_user-name = lo_user_master_record->get_name( ).
|
||||
rs_user-email = lo_user_master_record->get_email( ).
|
||||
|
||||
LOOP AT lt_smtp INTO ls_smtp.
|
||||
rs_user-email = ls_smtp-e_mail.
|
||||
EXIT.
|
||||
ENDLOOP.
|
||||
|
||||
* Attempt to use the full name from SU01
|
||||
rs_user-name = ls_address-fullname.
|
||||
ENDIF.
|
||||
|
||||
* If no email, fall back to localhost/default email
|
||||
|
|
Loading…
Reference in New Issue
Block a user