Bug 11355 - Web-User-Daten nicht immer eindeutig
Summary: Web-User-Daten nicht immer eindeutig
Status: VERIFIED FIXED
Alias: None
Product: VMI
Classification: SCX/Suite
Component: Stammdatenpflege (show other bugs)
Version: 19.0
Hardware: All All
: P3 minor
Assignee: Hopmann, Peter
QA Contact: Tilli, Benedikt
URL:
Whiteboard: Überprüft 21.0
Keywords: Pegasus, Vorabkorrektur
Depends on:
Blocks:
 
Reported: 2020-01-24 07:42 CET by Hopmann, Peter
Modified: 2021-01-28 21:00 CET (History)
0 users

Kundennummer:
Bestellnummer:
PV Übergabe: ---
Phase Roadmap: ---
Erledigt mit: Pegasus
SAP Release: ---
Transport: E74K907301, FE0K903707, M50K900045, M60K900042, M39K901612, M49K901601
CRM-ID/Ticket:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hopmann, Peter intern 2020-01-24 07:42:02 CET
Die Anmeldung am Webfrontend kann mit der Kurz-ID (nur altes Webfrontend) mit der e-Mail-Adresse oder dem User-Namen (nur neues Webfrontend V2) durchgeführt werden. Am Webfrontend werden die möglichen Optionen nacheinander geprüft. Es besteht theoretisch die Möglichkeit, User-Daten nicht eindeutig anzulegen. 
Beispiel:
ID          User-name   E-Mail
4711        Horst1      horst@mail
4712        host@mail   hosrt2@mail
4713        4711        horst3@mail
Comment 1 Hopmann, Peter intern 2020-05-11 22:56:25 CEST
/GIB/CL_DCV_WEB_USER
  METHOD check_data.

    DATA: ls_double TYPE /gib/dcvt010,
          lf_dummy TYPE c,
          lr_msg TYPE REF TO /gib/cl_dcv_error_msg.
    DATA: lf_email TYPE /gib/dcvt010-email,                 "hw11355
          lf_objectid TYPE /gib/dcvt010-objectid.           "hw11355

    FIELD-SYMBOLS: <ls_data> TYPE /gib/dcvt010v_s.

    ASSIGN mr_data->* TO <ls_data>.
    er_result = super->check_data( ).
    CREATE OBJECT lr_msg.
*# email vorhanden?
    IF <ls_data>-email = space.
      MESSAGE w166 WITH <ls_data>-username INTO lf_dummy.
      lr_msg->sy_set( ).
      er_result->add_error( ir_msg = lr_msg
                            if_fieldname = 'EMAIL'  ).
    ENDIF.
*# doublette?
*#11355
*    SELECT SINGLE * FROM /gib/dcvt010 INTO ls_double    "#EC CI_NOORDER
*      WHERE email = <ls_data>-email
*        AND username <> <ls_data>-username.
    lf_email = <ls_data>-email.
    TRANSLATE lf_email TO UPPER CASE.
    SELECT SINGLE * FROM /gib/dcvt010 INTO ls_double    "#EC CI_NOORDER
      WHERE (    email = <ls_data>-email
              OR username = lf_email        "in upper case
              OR username = <ls_data>-objectid  )
          AND username <> <ls_data>-username .
    IF sy-subrc <> 0.
      lf_email = <ls_data>-username.        "existing email as new username
      TRANSLATE lf_email TO LOWER CASE.
      SELECT SINGLE * FROM /gib/dcvt010 INTO ls_double  "#EC CI_NOORDER
        WHERE email = lf_email
          AND username <> <ls_data>-username .
    ENDIF.
    IF sy-subrc <> 0
      AND <ls_data>-username CO '0123456789 '.    "existing ID as new username
      lf_objectid = <ls_data>-username.
      SELECT SINGLE * FROM /gib/dcvt010 INTO ls_double  "#EC CI_NOORDER
        WHERE objectid = lf_objectid
          AND username <> <ls_data>-username .
    ENDIF.
*##113555
    IF sy-subrc = 0.
      MESSAGE e165 WITH ls_double-email ls_double-username <ls_data>-username INTO lf_dummy.
      lr_msg->sy_set( ).
      er_result->add_error( ir_msg = lr_msg
                            if_fieldname = 'EMAIL'  ).
    ENDIF.

  ENDMETHOD.