Eine spezielle Seite
create.htm dient zum Anlegen neuer User. Eine entsprechende Prüfung in der Initialisierung der Seite kann sicherstellen, dass nur ein Administrator diese Seite aufrufen kann.
Dass ein unberechtiger Benutzer keine neuen Internet-User anlegen kann, stellt zwar die Berechtigungsprüfung beim Funktionsaufruf ohnehin sicher, aber es ist sinnvoll, diesen Usern die Seite zum Anlegen erst gar nicht anzuzeigen.
Auf dieser Seite werden die benötigten Daten eines neuen Users abgefragt.
Die folgende Abbildung zeigt die Seite zum Anlegen neuer Internet-User:

Im OnInputProcessing der Seite wird der Funktionsbaustein
SUSR_USER_INTERNET_CREATE aufgerufen, der den neuen Internet-User anlegt. Hierbei wird der INT_USER als Referenzuser verwendet, so dass der neu angelegte Internet-User dessen Berechtigungen erhält. Der abgefragte Benutzername wird als Alias verwendet, ein SU01-Username wird von dem Baustein generiert.Seitenattribute
Attributname |
Auto |
Typisierungsart |
Bezugstyp |
Beschreibung |
err_msg |
TYPE |
STRING |
Error message |
Layout
<%@ 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>
Eventhandler OnInputProcessing
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 Referenzuser benutzt werden. Damit ist es möglich, Szenarien zu erstellen, bei denen bevorzugte Internet-User das Recht haben, weitere Internetuser anzulegen.
Denkbar sind auch Anwendungen, in denen sich neue User selber anlegen und registrieren können. In diesem Fall müßte der Gast-User mit dem die öffentlichen Seiten angezeigt werden, die Berechtigung zum Anlegen von Internet-Usern besitzen.