mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Merge pull request #315 from sbcgua/master
Repo specific cfg for user, deafult username for login
This commit is contained in:
commit
342ccf67b7
|
@ -307,8 +307,12 @@ CLASS lcl_git_transport IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD acquire_login_details.
|
METHOD acquire_login_details.
|
||||||
DATA:
|
DATA:
|
||||||
lv_user TYPE string,
|
lv_default_user TYPE string,
|
||||||
lv_pass TYPE string.
|
lv_user TYPE string,
|
||||||
|
lv_pass TYPE string.
|
||||||
|
|
||||||
|
lv_default_user = lcl_app=>user( )->get_repo_username( iv_url = iv_url ).
|
||||||
|
lv_user = lv_default_user.
|
||||||
|
|
||||||
lcl_password_dialog=>popup(
|
lcl_password_dialog=>popup(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -321,6 +325,10 @@ CLASS lcl_git_transport IMPLEMENTATION.
|
||||||
lcx_exception=>raise( 'HTTP 401, unauthorized' ).
|
lcx_exception=>raise( 'HTTP 401, unauthorized' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
IF lv_user <> lv_default_user.
|
||||||
|
lcl_app=>user( )->set_repo_username( iv_url = iv_url iv_username = lv_user ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ii_client->authenticate(
|
ii_client->authenticate(
|
||||||
username = lv_user
|
username = lv_user
|
||||||
password = lv_pass ).
|
password = lv_pass ).
|
||||||
|
|
|
@ -80,7 +80,7 @@ CLASS lcl_gui_page_commit IMPLEMENTATION.
|
||||||
|
|
||||||
DATA: lo_user TYPE REF TO lcl_persistence_user,
|
DATA: lo_user TYPE REF TO lcl_persistence_user,
|
||||||
lv_user TYPE string,
|
lv_user TYPE string,
|
||||||
lv_key TYPE string,
|
lv_key TYPE lcl_persistence_db=>ty_value,
|
||||||
lv_email TYPE string.
|
lv_email TYPE string.
|
||||||
|
|
||||||
* see https://git-scm.com/book/ch5-2.html
|
* see https://git-scm.com/book/ch5-2.html
|
||||||
|
@ -88,10 +88,18 @@ CLASS lcl_gui_page_commit IMPLEMENTATION.
|
||||||
* body should wrap at 72 characters
|
* body should wrap at 72 characters
|
||||||
|
|
||||||
lo_user = lcl_app=>user( ).
|
lo_user = lcl_app=>user( ).
|
||||||
lv_user = lo_user->get_username( ).
|
|
||||||
lv_email = lo_user->get_email( ).
|
|
||||||
lv_key = mo_repo->get_key( ).
|
lv_key = mo_repo->get_key( ).
|
||||||
|
|
||||||
|
lv_user = lo_user->get_repo_username( mo_repo->get_url( ) ).
|
||||||
|
IF lv_user IS INITIAL.
|
||||||
|
lv_user = lo_user->get_username( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
lv_email = lo_user->get_repo_email( mo_repo->get_url( ) ).
|
||||||
|
IF lv_email IS INITIAL.
|
||||||
|
lv_email = lo_user->get_email( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
|
|
||||||
ro_html->add( '<div class="form_div">' ).
|
ro_html->add( '<div class="form_div">' ).
|
||||||
|
@ -245,8 +253,8 @@ CLASS lcl_gui_page_commit IMPLEMENTATION.
|
||||||
ls_fields = lcl_html_action_utils=>parse_commit_request( it_postdata ).
|
ls_fields = lcl_html_action_utils=>parse_commit_request( it_postdata ).
|
||||||
|
|
||||||
lo_user = lcl_app=>user( ).
|
lo_user = lcl_app=>user( ).
|
||||||
lo_user->set_username( ls_fields-username ).
|
lo_user->set_repo_username( iv_url = mo_repo->get_url( ) iv_username = ls_fields-username ).
|
||||||
lo_user->set_email( ls_fields-email ).
|
lo_user->set_repo_email( iv_url = mo_repo->get_url( ) iv_email = ls_fields-email ).
|
||||||
|
|
||||||
IF ls_fields-username IS INITIAL.
|
IF ls_fields-username IS INITIAL.
|
||||||
lcx_exception=>raise( 'empty username' ).
|
lcx_exception=>raise( 'empty username' ).
|
||||||
|
|
|
@ -100,6 +100,10 @@ CLASS lcl_password_dialog IMPLEMENTATION.
|
||||||
EXPORTING p_status = sy-pfkey
|
EXPORTING p_status = sy-pfkey
|
||||||
TABLES p_exclude = lt_ucomm.
|
TABLES p_exclude = lt_ucomm.
|
||||||
|
|
||||||
|
IF p_user IS NOT INITIAL.
|
||||||
|
SET CURSOR FIELD 'P_PASS'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD. "on_screen_output
|
ENDMETHOD. "on_screen_output
|
||||||
|
|
||||||
METHOD on_screen_event.
|
METHOD on_screen_event.
|
||||||
|
|
|
@ -706,6 +706,26 @@ CLASS lcl_persistence_user DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
||||||
RETURNING VALUE(rv_key) TYPE lcl_persistence_repo=>ty_repo-key
|
RETURNING VALUE(rv_key) TYPE lcl_persistence_repo=>ty_repo-key
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS set_repo_username
|
||||||
|
IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url
|
||||||
|
iv_username TYPE string
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS get_repo_username
|
||||||
|
IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url
|
||||||
|
RETURNING VALUE(rv_username) TYPE string
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS set_repo_email
|
||||||
|
IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url
|
||||||
|
iv_email TYPE string
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS get_repo_email
|
||||||
|
IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url
|
||||||
|
RETURNING VALUE(rv_email) TYPE string
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
CONSTANTS c_type_user TYPE lcl_persistence_db=>ty_type VALUE 'USER'.
|
CONSTANTS c_type_user TYPE lcl_persistence_db=>ty_type VALUE 'USER'.
|
||||||
|
|
||||||
|
@ -716,10 +736,18 @@ CLASS lcl_persistence_user DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
||||||
TYPE STANDARD TABLE OF lcl_persistence_repo=>ty_repo-key
|
TYPE STANDARD TABLE OF lcl_persistence_repo=>ty_repo-key
|
||||||
WITH DEFAULT KEY.
|
WITH DEFAULT KEY.
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_user,
|
TYPES: BEGIN OF ty_repo_config,
|
||||||
|
url TYPE lcl_persistence_repo=>ty_repo-url,
|
||||||
username TYPE string,
|
username TYPE string,
|
||||||
email TYPE string,
|
email TYPE string,
|
||||||
repo_show TYPE lcl_persistence_repo=>ty_repo-key,
|
END OF ty_repo_config.
|
||||||
|
TYPES: ty_repo_config_tt TYPE STANDARD TABLE OF ty_repo_config WITH DEFAULT KEY.
|
||||||
|
|
||||||
|
TYPES: BEGIN OF ty_user,
|
||||||
|
username TYPE string,
|
||||||
|
email TYPE string,
|
||||||
|
repo_show TYPE lcl_persistence_repo=>ty_repo-key,
|
||||||
|
repo_config TYPE ty_repo_config_tt,
|
||||||
END OF ty_user.
|
END OF ty_user.
|
||||||
|
|
||||||
METHODS constructor
|
METHODS constructor
|
||||||
|
@ -742,6 +770,16 @@ CLASS lcl_persistence_user DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
||||||
IMPORTING is_user TYPE ty_user
|
IMPORTING is_user TYPE ty_user
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS read_repo_config
|
||||||
|
IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url
|
||||||
|
RETURNING VALUE(rs_repo_config) TYPE ty_repo_config
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS update_repo_config
|
||||||
|
IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url
|
||||||
|
is_repo_config TYPE ty_repo_config
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
ENDCLASS. "lcl_persistence_user DEFINITION
|
ENDCLASS. "lcl_persistence_user DEFINITION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -1059,6 +1097,67 @@ CLASS lcl_persistence_user IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD read_repo_config.
|
||||||
|
DATA: lt_repo_config TYPE ty_repo_config_tt,
|
||||||
|
lv_key TYPE string.
|
||||||
|
|
||||||
|
lv_key = to_lower( iv_url ).
|
||||||
|
lt_repo_config = read( )-repo_config.
|
||||||
|
READ TABLE lt_repo_config INTO rs_repo_config WITH KEY url = lv_key.
|
||||||
|
|
||||||
|
ENDMETHOD. "read_repo_config
|
||||||
|
|
||||||
|
METHOD update_repo_config.
|
||||||
|
DATA: ls_user TYPE ty_user,
|
||||||
|
lv_key TYPE string.
|
||||||
|
FIELD-SYMBOLS <repo_config> TYPE ty_repo_config.
|
||||||
|
|
||||||
|
ls_user = read( ).
|
||||||
|
lv_key = to_lower( iv_url ).
|
||||||
|
|
||||||
|
READ TABLE ls_user-repo_config ASSIGNING <repo_config> WITH KEY url = lv_key.
|
||||||
|
IF sy-subrc IS NOT INITIAL.
|
||||||
|
APPEND INITIAL LINE TO ls_user-repo_config ASSIGNING <repo_config>.
|
||||||
|
ENDIF.
|
||||||
|
<repo_config> = is_repo_config.
|
||||||
|
<repo_config>-url = lv_key.
|
||||||
|
|
||||||
|
update( ls_user ).
|
||||||
|
|
||||||
|
ENDMETHOD. "update_repo_config
|
||||||
|
|
||||||
|
METHOD set_repo_username.
|
||||||
|
|
||||||
|
DATA: ls_repo_config TYPE ty_repo_config.
|
||||||
|
|
||||||
|
ls_repo_config = read_repo_config( iv_url ).
|
||||||
|
ls_repo_config-username = iv_username.
|
||||||
|
update_repo_config( iv_url = iv_url is_repo_config = ls_repo_config ).
|
||||||
|
|
||||||
|
ENDMETHOD. "set_repo_username
|
||||||
|
|
||||||
|
METHOD get_repo_username.
|
||||||
|
|
||||||
|
rv_username = read_repo_config( iv_url )-username.
|
||||||
|
|
||||||
|
ENDMETHOD. "get_repo_username
|
||||||
|
|
||||||
|
METHOD set_repo_email.
|
||||||
|
|
||||||
|
DATA: ls_repo_config TYPE ty_repo_config.
|
||||||
|
|
||||||
|
ls_repo_config = read_repo_config( iv_url ).
|
||||||
|
ls_repo_config-email = iv_email.
|
||||||
|
update_repo_config( iv_url = iv_url is_repo_config = ls_repo_config ).
|
||||||
|
|
||||||
|
ENDMETHOD. "set_repo_email
|
||||||
|
|
||||||
|
METHOD get_repo_email.
|
||||||
|
|
||||||
|
rv_email = read_repo_config( iv_url )-email.
|
||||||
|
|
||||||
|
ENDMETHOD. "get_repo_email
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
CLASS lcl_persistence_db IMPLEMENTATION.
|
CLASS lcl_persistence_db IMPLEMENTATION.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user