Anlegen neuer Benutzer 
Eine spezielle Seite create.htm dient zum Anlegen neuer Benutzer. Eine entsprechende Prüfung in der Initialisierung der Seite kann sicherstellen, dass nur ein Administrator diese Seite aufrufen kann. Auf dieser Seite werden die benötigten Daten des neuen Benutzers abgefragt.
Hinweis
Die Berechtigungsprüfung beim Funktionsaufruf stellt grundsätzlich sicher, dass keine unberechtigen Personen neue Internet-Benutzer anlegen können. Sinnvollerweise sollte die Seite für diesen Personenkreis jedoch auch gar nicht erst zugänglich sein.
Im OnInputProcessing der Seite wird der Funktionsbaustein SUSR_USER_INTERNET_CREATE aufgerufen, der den neuen Internet-Benutzer anlegt. Hierbei wird der INT_USER als Referenz- Benutzer verwendet, so dass der neu angelegte Internet- Benutzer dessen Berechtigungen erhält. Der abgefragte Benutzername wird als Alias verwendet, ein SU01- Benutzer wird von dem Baustein generiert.
Attributname |
Auto |
Typisierungsart |
Bezugstyp |
Beschreibung |
err_msg |
TYPE |
STRING |
Error message |
Syntax
<%@ page language="abap" %>
<html>
<body>
<h3> Create new user </h3>
<form>
<table>
<tr>
<td> User Name </td>
<td> <input type=text name="username"></td>
</tr>
<tr>
<td> Password </td>
<td> <input type=password name="pwd1"> </td>
</tr>
<tr>
<td> verify Pwd</td>
<td> <input type=password name="pwd2"> </td>
</tr>
<tr>
<td> First Name </td>
<td> <input type=test name="firstname"> </td>
</tr>
<tr>
<td> Last Name </td>
<td> <input type=test name="lastname"> </td>
</tr>
<tr>
<td> Email </td>
<td> <input type=test name="email"> </td>
</tr>
<tr>
<td></td>
<td> <input type=submit name="OnInputProcessing(create)" value="logon">
<input type=submit name="OnInputProcessing(reset)" value="reset">
</td>
</tr>
</table>
</form>
</body>
</html>
Syntax
data: newuser type bapialias, pwd1 type bapipwd, pwd2 type bapipwd, refuser type bapibname, address type bapiaddr3, newuserid type bapibname. data: return type table of bapiret2, wa_return type bapiret2. newuser = request->get_form_field( 'newuser' ). pwd1 = request->get_form_field( 'pwd1' ). pwd2 = request->get_form_field( 'pwd2' ). address-firstname = request->get_form_field( 'firstname' ). address-lastname = request->get_form_field( 'lastname' ). address-e_mail = request->get_form_field( 'email' ). refuser = 'INT_USER'. CALL FUNCTION 'SUSR_USER_INTERNET_CREATE' EXPORTING ALIAS = newuser PASSWORD = pwd1 PASSWORD2 = pwd2 ADDRESS = address REF_USER = refuser IMPORTING GENERATED_BNAME = newuserid TABLES RETURN = return loop at return into wa_return. concatenate err_msg ' <br> ' wa_return-message into err_msg. endloop.
Je nach Einsatzzweck können natürlich auch verschiedene Referenz- Benutzer verwendet werden. Damit ist es möglich, Szenarien zu erstellen, bei denen bevorzugte Internet- Benutzer das Recht haben, weitere Internet- Benutzer anzulegen.
Denkbar sind auch Anwendungen, in denen sich neue User selber anlegen und registrieren können. In diesem Fall müsste der Gast- Benutzer mit dem die öffentlichen Seiten angezeigt werden, die Berechtigung zum Anlegen von Internet-Usern besitzen.