abapGit/src/zabapgit_authorizations.prog.abap
2017-06-07 18:32:29 +00:00

53 lines
1.5 KiB
ABAP

*&---------------------------------------------------------------------*
*& Include ZABAPGIT_AUTHORIZATIONS
*&---------------------------------------------------------------------*
INTERFACE lif_auth.
TYPES: ty_authorization TYPE string.
CONSTANTS: BEGIN OF gc_authorization,
uninstall TYPE ty_authorization VALUE 'UNINSTALL',
END OF gc_authorization.
METHODS:
is_allowed
IMPORTING iv_authorization TYPE ty_authorization
iv_param TYPE string OPTIONAL
RETURNING VALUE(rv_allowed) TYPE abap_bool.
ENDINTERFACE.
* implement class LCL_AUTH_EXIT implementing LIF_AUTH in following include,
* place the include in a different package than ZABAPGIT
INCLUDE zabapgit_authorizations_exit IF FOUND.
*******************
CLASS lcl_auth DEFINITION FINAL.
PUBLIC SECTION.
CLASS-METHODS:
is_allowed
IMPORTING iv_authorization TYPE lif_auth=>ty_authorization
iv_param TYPE string OPTIONAL
RETURNING VALUE(rv_allowed) TYPE abap_bool.
ENDCLASS.
CLASS lcl_auth IMPLEMENTATION.
METHOD is_allowed.
DATA: li_auth TYPE REF TO lif_auth.
TRY.
CREATE OBJECT li_auth TYPE ('LCL_AUTH_EXIT').
rv_allowed = li_auth->is_allowed( iv_authorization = iv_authorization
iv_param = iv_param ).
CATCH cx_sy_create_object_error.
rv_allowed = abap_true.
ENDTRY.
ENDMETHOD.
ENDCLASS.