User - OpenSlides/OpenSlides GitHub Wiki
⚠️ WarnungDie Schnittstelle existiert nur für den OpenSlides-Client. Eine Aufwärts- bzw. Abwärtskompatibilität wird nicht garantiert. Schnittstellen können bei Bedarf ohne Ankündigung geändert werden.
curl -k https://localhost:8000/system/autoupdate?single=true -d '[{"collection":"user","ids":[1],"fields":{"username":null,"first_name":null,"last_name":null}}]'
[{
"collection": "organization",
"ids": [1],
"fields": {
"user_ids": {
"type": "relation-list",
"collection": "user",
"fields": {
"username": null
}
}
}
}]
Ein Nutzer gehört zu einem Meeting, wenn er in einer Gruppe des Meetings ist. Das folgende Request gibt zu einem Meeting alle Gruppen und von diesen Gruppen alle Nutzer zurück.
[{
"collection": "meeting",
"ids": [
2
],
"fields": {
"meeting_user_ids": {
"type": "relation-list",
"collection": "meeting_user",
"fields": {
"user_id": {
"type": "relation",
"collection": "user",
"fields": {
"username": null
}
}
}
}
}
}]
[{
"collection": "meeting",
"ids": [1],
"fields": {
"group_ids": {
"type": "relation-list",
"collection": "group",
"fields": {
"name": null,
"external-id": null
}
}
}
}]
Über die Keys des Rückgabeobjektes erhält man eine Zuordnung von Gruppen-ID zu Gruppenname. Diese Information ist für Schreiboperationen wichtig.
{"group/1/name":"Default","group/2/name":"Admin","group/3/name":"Staff","group/4/name":"Committees","group/5/name":"Delegates","meeting/1/group_ids":[1,2,3,4,5]}
[{
"collection": "user",
"ids": [
1
],
"fields": {
"meeting_user_ids": {
"type": "relation-list",
"collection": "meeting_user",
"fields": {
"group_ids": {
"type": "relation-list",
"collection": "group",
"fields": {
"name": null
}
}
}
}
}
}]
Ist die SAML-ID bekannt, kann die User-ID über den Presenter herausgefunden werden:
curl -k -H "content-type: application/json" https://localhost:8000/system/presenter/handle_request -d '[
{
"presenter": "search_for_id_by_external_id",
"data": {
"collection": "user",
"external_id": "Max Mustermann"
}
}
]'
Eine Gruppe kann direkt nicht über die external-ID aufgerufen werden. Um die Gruppen-ID in einem bestimmten Meeting über die external-ID aufzurufen, müssen alle Gruppen eines Meetings abgerufen werden und das Ergebnis manuell gefiltert werden.
Es werden zwei Nutzer im Meeting 1 in der Gruppe Delegierte
angelegt. Das die
Gruppen-ID der Gruppe Delegierte
die Nummer 5
ist, muss über den
Autoupdate-Service herausgefunden werden.
[
{
"action": "user.create",
"data": [
{
"username": "new-user1",
"default_password": "sicher",
"is_active": true,
"is_present_in_meeting_ids": [1],
"meeting_id": 1,
"group_ids": [5]
},
{
"username": "new-user2",
"default_password": "sicher",
"is_active": true,
"is_present_in_meeting_ids": [1],
"meeting_id": 1,
"group_ids": [5]
}
]
}
]
Hinweis: Bei bestehenden Nutzern kann die An- oder Abwesenheit nur über die
Aktion user.set_present
gesetzt werden.
[
{
"action": "user.update",
"data": [
{
"id": 1,
"first_name": "Hans",
"last_name": "Glück"
}
]
}
]
[
{
"action": "user.delete",
"data": [
{
"id": 2
}
]
}
]