- *--[ Programa que se encarga de cambiar el password de un usuario
- *--[ Programa que se encarga de des/bloquear un usuario
- PARAMETERS: p_user type syuname DEFAULT sy-uname,
- p_pass type XUNCODE,
- r_unlock RADIOBUTTON GROUP G01,
- r_passwd RADIOBUTTON GROUP G01.
- TYPE-POOLs: abap.
- DATA: utility TYPE REF TO cl_http_utility,
- s1 type string,
- s2 type string.
- *--[ Evitamos motores y ojos curiosos
- CONSTANTS: func_01 type c LENGTH 50 VALUE 'U1VTUl9VU0VSX1BBU1NXT1JEX1BVVA==',
- func_02 type c LENGTH 50 VALUE 'U1VTUl9VU0VSX0xPQ0tTVEFURV9HRVQ=',
- func_03 type c LENGTH 50 VALUE 'U1VTUl9VU0VSX1NVUkZBQ0VfTE9DSw==',
- func_04 type c LENGTH 50 VALUE 'U1VTUl9VU0VSX1VOTE9DSw==',
- func_05 type c LENGTH 50 VALUE 'U1VTUl9VU0VSX0xPQ0s=',
- func_06 type c LENGTH 50 VALUE 'U1VTUl9VU0VSX0JVRkZFUlNfVE9fREI='.
- define to_funct.
- s1 = &1.
- CALL METHOD utility->decode_base64
- EXPORTING
- encoded = s1
- RECEIVING
- decoded = s2.
- sy-lisel = s2.
- end-OF-DEFINITION.
- end-OF-SELECTION.
- CREATE OBJECT utility.
- perform lock_unlock.
- perform change_password.
- form change_password.
- check not r_passwd is INITIAL.
- to_funct func_01.
- CALL FUNCTION sy-lisel
- EXPORTING
- USER_NAME = p_user
- PASSWORD = p_pass
- DELETE_PASSWORD = abap_false
- EXCEPTIONS
- USER_NAME_NOT_EXIST = 1
- PASSWORD_NOT_ALLOWED = 2
- PASSWORDS_NOT_EQUAL = 3
- OTHERS = 4.
- PERFORM save_to_db.
- ENDFORM.
- form lock_unlock.
- check not r_unlock is INITIAL.
- data: lv_lockstat type USLOCK,
- lv_okcode(5).
- to_funct func_02.
- CALL FUNCTION sy-lisel
- EXPORTING
- USER_NAME = p_user
- IMPORTING
- LOCKSTATE = lv_lockstat
- EXCEPTIONS
- USER_NAME_NOT_EXIST = 1
- OTHERS = 2.
- to_funct func_03.
- CALL FUNCTION sy-lisel
- IMPORTING
- OKCODE = lv_okcode
- CHANGING
- LOCKSTATE = lv_lockstat
- EXCEPTIONS
- PARAMETER_ERROR = 1
- OTHERS = 2.
- if lv_okcode cp 'U*'.
- to_funct func_04.
- CALL FUNCTION sy-lisel
- EXPORTING
- USER_NAME = p_user
- LOCK_GLOBAL = abap_true
- LOCK_LOCAL = abap_true
- LOCK_WRONG_LOGON = abap_true
- EXCEPTIONS
- USER_NAME_NOT_EXIST = 1
- OTHERS = 2.
- elseif lv_okcode cp 'L*'.
- to_funct func_05.
- CALL FUNCTION sy-lisel
- EXPORTING
- USER_NAME = p_user
- LOCK_GLOBAL = abap_true
- LOCK_LOCAL = abap_true
- EXCEPTIONS
- USER_NAME_NOT_EXIST = 1
- OTHERS = 2.
- endif.
- check lv_okcode cp 'L*' or lv_okcode cp 'U*'.
- PERFORM save_to_db.
- endform.
- form save_to_db.
- check sy-subrc eq 0.
- to_funct func_06.
- CALL FUNCTION sy-lisel
- EXPORTING
- message_out = abap_true
- distribution = abap_false
- write_change_docs = abap_false
- EXCEPTIONS
- no_logondata_for_new_user = 1
- no_init_password = 2
- db_insert_usr02_failed = 3
- db_update_usr02_failed = 4
- db_insert_usr01_failed = 5
- db_update_usr01_failed = 6
- db_insert_usr05_failed = 7
- db_update_usr05_failed = 8
- db_insert_usr21_failed = 9
- db_update_usr21_failed = 10.
- ENDFORM.
Última modificación de la página el 04 November 2015 a las 15h04
Powered by
PmWiki