UserManipulation/de

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Created page with "__TOC__ =Introduction= Normally, users are created in OpenSimulator via the "create user" command on the region console (in standalone configuration) or on the ROBUST service...")
 
 
(18 intermediate revisions by one user not shown)
Line 1: Line 1:
__TOC__
+
{{Quicklinks|UserManipulation}}
=Introduction=
+
  
Normally, users are created in OpenSimulator via the "create user" command on the region console (in standalone configuration) or on the ROBUST service console (in grid configuration).  However, users can also be created by making an XMLRPC call directly to the ROBUST service. 
+
=Einleitung=
  
This facility has been available since OpenSimulator 0.7.3.  It can currently only be used in grid configuration. On standalone, users can be created via the different create user call on the [[RemoteAdmin]] module.
+
Normalerweise werden Benutzer in OpenSimulator über den Befehl "create user" auf der Regionskonsole (in Standalone-Konfiguration) oder auf der ROBUST-Service-Konsole (in Grid-Konfiguration) erstellt. Benutzer können jedoch auch erstellt werden, indem ein XMLRPC-Aufruf direkt an den ROBUST-Service gemacht wird.
 +
 
 +
Diese Funktion ist seit OpenSimulator 0.7.3 verfügbar und kann derzeit nur in der Grid-Konfiguration verwendet werden. In Standalone-Konfiguration können Benutzer über den speziellen "create user"-Aufruf im Modul [[RemoteAdmin]] erstellt werden.
  
 
=Setup=
 
=Setup=
  
The listeners for some of the XMLRPC calls on ROBUST has to be explicitly enabled. In the [UserAccountService] section of Robust.ini, set
+
Die Listener für einige der XMLRPC-Aufrufe auf ROBUST müssen explizit aktiviert werden. In der [UserAccountService]-Sektion der Robust.ini setzen Sie:
  
[UserAccountService]
+
[UserAccountService]
AllowCreateUser = true
+
AllowCreateUser = true
AllowSetAccount = true
+
AllowSetAccount = true
  
and in [AuthenicationService]
+
und in der [AuthenicationService]-Sektion:
  
[AuthenticationService]
+
[AuthenticationService]
AllowSetPassword = true
+
AllowSetPassword = true
  
'''Please be aware that this will expose the call on the UserAccountServiceConnector and AuthenticationServiceConnector as listed in the ServiceConnectiors parameter in the [Startup] section at the top of the file. The default port used (8003) is one that should not be exposed to other users. For logging into OpenSimulator you only need to expose the port that is running the LLLoginServiceInConnector (8002 by default).
+
'''Bitte beachten Sie, dass dadurch der Aufruf auf den UserAccountServiceConnector und AuthenticationServiceConnector freigelegt wird, wie im ServiceConnectors-Parameter in der [Startup]-Sektion oben in der Datei aufgelistet. Der Standardport (8003) ist einer, der nicht für andere Benutzer freigegeben werden sollte. Für die Anmeldung an OpenSimulator müssen Sie nur den Port freigeben, auf dem der LLLoginServiceInConnector läuft (standardmäßig 8002).
  
This also means that these facilities should not be enabled on an open grid (one where untrusted third parties can connect simulators) at this time.
+
Dies bedeutet auch, dass diese Funktionen derzeit nicht auf einem offenen Grid aktiviert werden sollten (einem Grid, auf dem nicht vertrauenswürdige Dritte Simulator verbinden können).
  
==Default avatar entries==
+
==Standard-Avatareinträge==
  
If you want a new user to have the initial minimal body-part/clothing set (skin, shape, eyes, hair, pants, shirt) required for them to appear as anything other than a gas-cloud then make sure
+
Wenn Sie möchten, dass ein neuer Benutzer den initialen minimalen Körperteil-/Kleidungssatz (Haut, Form, Augen, Haare, Hose, Hemd) erhält, der erforderlich ist, damit er nicht nur als Gaswolke erscheint, stellen Sie sicher, dass
  
[UserAccountService]  
+
[UserAccountService]
CreateDefaultAvatarEntries = true  
+
CreateDefaultAvatarEntries = true
  
in Robust.ini. This setting will already be true in the Robust.ini.example of OpenSimulator 0.7.4 and later.
+
in Robust.ini gesetzt ist. Diese Einstellung ist in der Robust.ini.example von OpenSimulator 0.7.4 und später bereits auf true gesetzt.
  
=Use=
+
=Nutzung=
  
 
==createuser==
 
==createuser==
  
Here's an example python program to call this. It assumes that your ROBUST services are running on localhost.
+
Hier ist ein Beispiel für ein Python-Programm, um diesen Aufruf zu machen. Es wird angenommen, dass Ihre ROBUST-Services auf localhost laufen.
  
 
<source lang="python">
 
<source lang="python">
#!/usr/bin/python
+
#!/usr/bin/python3
  
import httplib
+
import http.client
import urllib
+
import urllib.parse
  
params = urllib.urlencode({'METHOD':'createuser', 'FirstName':'Jon', 'LastName':'Snow', 'Password':'test', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'})
+
params = urllib.parse.urlencode({
conn = httplib.HTTPConnection("localhost", 8003);
+
    'METHOD': 'createuser',  
conn.request("POST", "/accounts", params)
+
    'FirstName': 'Jon',  
 +
    'LastName': 'Snow',  
 +
    'Password': 'test',  
 +
    'PrincipalID': '3a1c8128-908f-4455-8157-66c96a46f75e'
 +
})
 +
headers = {"Content-type": "application/x-www-form-urlencoded"}
 +
conn = http.client.HTTPConnection("localhost", 8003)
 +
conn.request("POST", "/accounts", params, headers)
 
response = conn.getresponse()
 
response = conn.getresponse()
print response.read();
+
print(response.read().decode())
 
</source>
 
</source>
  
PrincipalID is the unique ID of the user.
+
PrincipalID ist die eindeutige ID des Benutzers.
  
If everything goes well, you should get back
+
Wenn alles gut läuft, erhalten Sie
  
 
<source lang="xml">
 
<source lang="xml">
Line 69: Line 77:
 
     <ServiceURLs>HomeURI*;GatekeeperURI*;InventoryServerURI*;AssetServerURI*;</ServiceURLs>
 
     <ServiceURLs>HomeURI*;GatekeeperURI*;InventoryServerURI*;AssetServerURI*;</ServiceURLs>
 
   </result>
 
   </result>
</ServerResponse>
 
</source>
 
 
Don't worry about ScopeID, this is used for allow multiple grids to co-exist inside a single database.  Created is a unix timestamp of the time the user was created.  UserLevel determines whether the user is a god (>= 200) or can log in at all (<0).  ServiceURLs are HyperGrid related and do not concern us here.
 
 
If the call fails you will get the response
 
 
<source lang="xml">
 
<?xml version="1.0"?>
 
<ServerResponse>
 
  <result>Failure</result>
 
 
</ServerResponse>
 
</ServerResponse>
 
</source>
 
</source>
Line 85: Line 82:
 
==setaccount==
 
==setaccount==
  
Here's an example python program to call this. It assumes that your ROBUST services are running on localhost.
+
Hier ist ein Beispiel für ein Python-Programm, um diesen Aufruf zu machen. Es wird angenommen, dass Ihre ROBUST-Services auf localhost laufen.
  
 
<source lang="python">
 
<source lang="python">
#!/usr/bin/python
+
#!/usr/bin/python3
  
import httplib
+
import http.client
import urllib
+
import urllib.parse
  
params = urllib.urlencode({'METHOD':'setaccount', 'FirstName':'Tyrion', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'})
+
params = urllib.parse.urlencode({
conn = httplib.HTTPConnection("localhost", 8003);
+
    'METHOD': 'setaccount',  
conn.request("POST", "/accounts", params)
+
    'FirstName': 'Tyrion',  
 +
    'PrincipalID': '3a1c8128-908f-4455-8157-66c96a46f75e'
 +
})
 +
headers = {"Content-type": "application/x-www-form-urlencoded"}
 +
conn = http.client.HTTPConnection("localhost", 8003)
 +
conn.request("POST", "/accounts", params, headers)
 
response = conn.getresponse()
 
response = conn.getresponse()
print response.read();
+
print(response.read().decode())
 +
 
 
</source>
 
</source>
  
PrincipalID is the unique ID of the user. Here, it is used to identify the user that we set up earlier.
+
PrincipalID ist die eindeutige ID des Benutzers. Hier wird sie verwendet, um den Benutzer zu identifizieren, den wir zuvor eingerichtet haben.
  
If everything goes well, you should get back
+
Wenn alles gut läuft, erhalten Sie
  
 
<source lang="xml">
 
<source lang="xml">
Line 121: Line 124:
 
</source>
 
</source>
  
Note that the first name has now changed from Jon to Tyrion.
+
Beachten Sie, dass sich der Vorname jetzt von Jon zu Tyrion geändert hat.
  
If the call fails you will get the response
+
==setpassword==
  
<source lang="xml">
+
Eine Passwortänderung erfolgt über den Authentifizierungsservice und nicht über den Benutzerkontoservice. Die erforderlichen Parameter sind leider etwas anders als die des Benutzerkontoservices. In diesem Fall müssen wir einen Aufruf an http://<robust-services-adresse>/auth/plain mit METHOD = setpassword, PRINCIPAL = <principalID> und PASSWORD = <neues-passwort> machen. Hier ist ein Beispiel
<?xml version="1.0"?>
+
<ServerResponse>
+
  <result>Failure</result>
+
</ServerResponse>
+
</source>
+
 
+
==setpassword==
+
Changing a password is done through the authentication service rather than the user account service.  Unfortunately, the parameters required are slightly different from those used by the user account service.  In this case we need to make a call to http://<robust-services-address>/auth/plain with METHOD = setpassword, PRINCIPAL = <principalID> and PASSWORD = <new-password>. Here's an example
+
  
 
<source lang="python">
 
<source lang="python">
#!/usr/bin/python
+
#!/usr/bin/python3
  
import httplib
+
import http.client
import urllib
+
import urllib.parse
  
params = urllib.urlencode({'METHOD':'setpassword', 'PRINCIPAL' : '3a1c8128-908f-4455-8157-66c96a46f75e', 'PASSWORD':'bing'})
+
params = urllib.parse.urlencode({
conn = httplib.HTTPConnection("localhost", 8003);
+
    'METHOD': 'setpassword',  
conn.request("POST", "/auth/plain", params)
+
    'PRINCIPAL': '3a1c8128-908f-4455-8157-66c96a46f75e',  
 +
    'PASSWORD': 'bing'
 +
})
 +
headers = {"Content-type": "application/x-www-form-urlencoded"}
 +
conn = http.client.HTTPConnection("localhost", 8003)
 +
conn.request("POST", "/auth/plain", params, headers)
 
response = conn.getresponse()
 
response = conn.getresponse()
print response.read();
+
print(response.read().decode())
 +
 
 
</source>
 
</source>
  
This aims to set Wilma Flintstone's password to bing, identifying her with the PrincipalID we received before. If successful, the call will return
+
Dies soll das Passwort von Wilma Flintstone auf "bing" setzen, wobei sie mit der PrincipalID identifiziert wird, die wir zuvor erhalten haben.
 +
 
 +
Wenn erfolgreich, liefert der Aufruf
  
 
<source lang="xml">
 
<source lang="xml">
Line 157: Line 160:
 
</source>
 
</source>
  
On failure,
+
Bei einem Fehler erhalten Sie
  
 
<source lang="xml">
 
<source lang="xml">
Line 166: Line 169:
 
</source>
 
</source>
  
==Delete a user==
+
==Benutzer löschen==
This is probably not currently possible. Or rather, nobody has done it and reported back whether everything still works or whether there are lots of issues.
+
 
 +
Dies ist derzeit wahrscheinlich nicht möglich. Oder besser gesagt, es wurde noch nicht getan und zurückgemeldet, ob alles noch funktioniert oder ob es viele Probleme gibt.
 +
 
 +
Die normale Methode, einen Benutzer zu "löschen", besteht darin, seinen UserLevel auf -1 zu setzen. Dadurch wird verhindert, dass er sich anmelden kann.
  
The normal way to 'delete' a user is to set their UserLevel to -1. This will prevent them from logging in.
+
Wenn Sie einen Benutzer mit demselben Namen erstellen müssen, benennen Sie den gelöschten Benutzer zuerst um (z.B. in Wilma Flintstone_<RANDOM-UUID>), bevor Sie einen mit dem alten Namen erstellen.
  
If you need to create a user with the same name, then first rename the deleted user (e.g. to Wilma Flintstone_<RANDOM-UUID>) before creating one with the old name.
+
[[Category:German Translations]]

Latest revision as of 03:15, 3 September 2024

Contents

[edit] Einleitung

Normalerweise werden Benutzer in OpenSimulator über den Befehl "create user" auf der Regionskonsole (in Standalone-Konfiguration) oder auf der ROBUST-Service-Konsole (in Grid-Konfiguration) erstellt. Benutzer können jedoch auch erstellt werden, indem ein XMLRPC-Aufruf direkt an den ROBUST-Service gemacht wird.

Diese Funktion ist seit OpenSimulator 0.7.3 verfügbar und kann derzeit nur in der Grid-Konfiguration verwendet werden. In Standalone-Konfiguration können Benutzer über den speziellen "create user"-Aufruf im Modul RemoteAdmin erstellt werden.

[edit] Setup

Die Listener für einige der XMLRPC-Aufrufe auf ROBUST müssen explizit aktiviert werden. In der [UserAccountService]-Sektion der Robust.ini setzen Sie:

[UserAccountService] AllowCreateUser = true AllowSetAccount = true

und in der [AuthenicationService]-Sektion:

[AuthenticationService] AllowSetPassword = true

Bitte beachten Sie, dass dadurch der Aufruf auf den UserAccountServiceConnector und AuthenticationServiceConnector freigelegt wird, wie im ServiceConnectors-Parameter in der [Startup]-Sektion oben in der Datei aufgelistet. Der Standardport (8003) ist einer, der nicht für andere Benutzer freigegeben werden sollte. Für die Anmeldung an OpenSimulator müssen Sie nur den Port freigeben, auf dem der LLLoginServiceInConnector läuft (standardmäßig 8002).

Dies bedeutet auch, dass diese Funktionen derzeit nicht auf einem offenen Grid aktiviert werden sollten (einem Grid, auf dem nicht vertrauenswürdige Dritte Simulator verbinden können).

[edit] Standard-Avatareinträge

Wenn Sie möchten, dass ein neuer Benutzer den initialen minimalen Körperteil-/Kleidungssatz (Haut, Form, Augen, Haare, Hose, Hemd) erhält, der erforderlich ist, damit er nicht nur als Gaswolke erscheint, stellen Sie sicher, dass

[UserAccountService] CreateDefaultAvatarEntries = true

in Robust.ini gesetzt ist. Diese Einstellung ist in der Robust.ini.example von OpenSimulator 0.7.4 und später bereits auf true gesetzt.

[edit] Nutzung

[edit] createuser

Hier ist ein Beispiel für ein Python-Programm, um diesen Aufruf zu machen. Es wird angenommen, dass Ihre ROBUST-Services auf localhost laufen.

#!/usr/bin/python3
 
import http.client
import urllib.parse
 
params = urllib.parse.urlencode({
    'METHOD': 'createuser', 
    'FirstName': 'Jon', 
    'LastName': 'Snow', 
    'Password': 'test', 
    'PrincipalID': '3a1c8128-908f-4455-8157-66c96a46f75e'
})
headers = {"Content-type": "application/x-www-form-urlencoded"}
conn = http.client.HTTPConnection("localhost", 8003)
conn.request("POST", "/accounts", params, headers)
response = conn.getresponse()
print(response.read().decode())

PrincipalID ist die eindeutige ID des Benutzers.

Wenn alles gut läuft, erhalten Sie

<?xml version="1.0"?>
<ServerResponse>
  <result type="List">
    <FirstName>Jon</FirstName>
    <LastName>Snow</LastName>
    <Email/>
    <PrincipalID>3a1c8128-908f-4455-8157-66c96a46f75e</PrincipalID>
    <ScopeID>00000000-0000-0000-0000-000000000000</ScopeID>
    <Created>1318974501</Created>
    <UserLevel>0</UserLevel>
    <UserFlags>0</UserFlags>
    <ServiceURLs>HomeURI*;GatekeeperURI*;InventoryServerURI*;AssetServerURI*;</ServiceURLs>
  </result>
</ServerResponse>

[edit] setaccount

Hier ist ein Beispiel für ein Python-Programm, um diesen Aufruf zu machen. Es wird angenommen, dass Ihre ROBUST-Services auf localhost laufen.

#!/usr/bin/python3
 
import http.client
import urllib.parse
 
params = urllib.parse.urlencode({
    'METHOD': 'setaccount', 
    'FirstName': 'Tyrion', 
    'PrincipalID': '3a1c8128-908f-4455-8157-66c96a46f75e'
})
headers = {"Content-type": "application/x-www-form-urlencoded"}
conn = http.client.HTTPConnection("localhost", 8003)
conn.request("POST", "/accounts", params, headers)
response = conn.getresponse()
print(response.read().decode())

PrincipalID ist die eindeutige ID des Benutzers. Hier wird sie verwendet, um den Benutzer zu identifizieren, den wir zuvor eingerichtet haben.

Wenn alles gut läuft, erhalten Sie

<?xml version="1.0"?>
<ServerResponse>
  <result type="List">
    <FirstName>Tyrion</FirstName>
    <LastName>Snow</LastName>
    <Email/>
    <PrincipalID>3a1c8128-908f-4455-8157-66c96a46f75e</PrincipalID>
    <ScopeID>00000000-0000-0000-0000-000000000000</ScopeID>
    <Created>1318974501</Created>
    <UserLevel>0</UserLevel>
    <UserFlags>0</UserFlags>
    <ServiceURLs>HomeURI*;GatekeeperURI*;InventoryServerURI*;AssetServerURI*;</ServiceURLs>
  </result>
</ServerResponse>

Beachten Sie, dass sich der Vorname jetzt von Jon zu Tyrion geändert hat.

[edit] setpassword

Eine Passwortänderung erfolgt über den Authentifizierungsservice und nicht über den Benutzerkontoservice. Die erforderlichen Parameter sind leider etwas anders als die des Benutzerkontoservices. In diesem Fall müssen wir einen Aufruf an http://<robust-services-adresse>/auth/plain mit METHOD = setpassword, PRINCIPAL = <principalID> und PASSWORD = <neues-passwort> machen. Hier ist ein Beispiel

#!/usr/bin/python3
 
import http.client
import urllib.parse
 
params = urllib.parse.urlencode({
    'METHOD': 'setpassword', 
    'PRINCIPAL': '3a1c8128-908f-4455-8157-66c96a46f75e', 
    'PASSWORD': 'bing'
})
headers = {"Content-type": "application/x-www-form-urlencoded"}
conn = http.client.HTTPConnection("localhost", 8003)
conn.request("POST", "/auth/plain", params, headers)
response = conn.getresponse()
print(response.read().decode())

Dies soll das Passwort von Wilma Flintstone auf "bing" setzen, wobei sie mit der PrincipalID identifiziert wird, die wir zuvor erhalten haben.

Wenn erfolgreich, liefert der Aufruf

<?xml version="1.0"?>
<ServerResponse>
  <Result>Success</Result>
</ServerResponse>

Bei einem Fehler erhalten Sie

<?xml version="1.0"?>
<ServerResponse>
  <Result>Failure</Result>
</ServerResponse>

[edit] Benutzer löschen

Dies ist derzeit wahrscheinlich nicht möglich. Oder besser gesagt, es wurde noch nicht getan und zurückgemeldet, ob alles noch funktioniert oder ob es viele Probleme gibt.

Die normale Methode, einen Benutzer zu "löschen", besteht darin, seinen UserLevel auf -1 zu setzen. Dadurch wird verhindert, dass er sich anmelden kann.

Wenn Sie einen Benutzer mit demselben Namen erstellen müssen, benennen Sie den gelöschten Benutzer zuerst um (z.B. in Wilma Flintstone_<RANDOM-UUID>), bevor Sie einen mit dem alten Namen erstellen.

Personal tools
General
About This Wiki