mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +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.
|
METHOD constructor.
|
||||||
|
@ -96,11 +96,19 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION.
|
||||||
IF lv_user IS INITIAL.
|
IF lv_user IS INITIAL.
|
||||||
lv_user = lo_user->get_default_git_user_name( ).
|
lv_user = lo_user->get_default_git_user_name( ).
|
||||||
ENDIF.
|
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( ) ).
|
lv_email = lo_user->get_repo_git_user_email( mo_repo->get_url( ) ).
|
||||||
IF lv_email IS INITIAL.
|
IF lv_email IS INITIAL.
|
||||||
lv_email = lo_user->get_default_git_user_email( ).
|
lv_email = lo_user->get_default_git_user_email( ).
|
||||||
ENDIF.
|
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.
|
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.
|
METHOD build_comment.
|
||||||
|
@ -64,33 +64,20 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD determine_user_details.
|
METHOD determine_user_details.
|
||||||
|
|
||||||
DATA: lt_return TYPE TABLE OF bapiret2,
|
DATA: lt_return TYPE TABLE OF bapiret2,
|
||||||
ls_address TYPE bapiaddr3,
|
ls_address TYPE bapiaddr3,
|
||||||
lt_smtp TYPE TABLE OF bapiadsmtp,
|
lt_smtp TYPE TABLE OF bapiadsmtp,
|
||||||
ls_smtp TYPE 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 the method is to use real user values, call the BAPI
|
||||||
IF iv_method = zcl_abapgit_persist_background=>c_amethod-user.
|
IF iv_method = zcl_abapgit_persist_background=>c_amethod-user.
|
||||||
|
|
||||||
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
|
lo_user_master_record = zcl_abapgit_user_master_record=>get_instance( iv_changed_by ).
|
||||||
EXPORTING
|
|
||||||
username = iv_changed_by
|
|
||||||
IMPORTING
|
|
||||||
address = ls_address
|
|
||||||
TABLES
|
|
||||||
return = lt_return
|
|
||||||
addsmtp = lt_smtp.
|
|
||||||
|
|
||||||
* Choose the first email from SU01
|
rs_user-name = lo_user_master_record->get_name( ).
|
||||||
SORT lt_smtp BY consnumber ASCENDING.
|
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.
|
ENDIF.
|
||||||
|
|
||||||
* If no email, fall back to localhost/default email
|
* If no email, fall back to localhost/default email
|
||||||
|
|
Loading…
Reference in New Issue
Block a user