Nutzer als Admin für Unterorganisationen hinzufügen

Um einen Nutzer als Admin für mehrere Organisationen anzulegen, können folgende Schritte in der Datenbank ausgeführt werden:
 

In die Mongo-Shell wechseln und in die richtige DB wechseln:

mongosh

use enginsight

Entsprechende Rolle finden (hier Admin, gilt analog auch für die anderen Rollen)

db.roles.findOne({name:'Administrator'}, {_id:1})

Die ID speichern

Im nächsten Schritt wird die ID des Nutzers gesucht:

db.users.findOne({email:"<MailfromUser>"},{_id:1})

Danach werden die IDs der Unterorganisation gefiltert

db.organisations.find({'cooperation.organisation':ObjectId("<OrgaID>")},{_id:1})

Sollte der Nutzer mit den neuen Berechtigungen schon in der Organisation sein, dann muss diese vorher gelöscht werden:

db.organisations.update({_id:ObjectId("<OrgaID>")},{$pull:{'members':{'user':ObjectId('<NutzerID>')}}})

Nun den Nutzer als Admin zu den Unterorganisationen hinzufügen, dafür gibt es zwei Möglichkeiten:

1. Möglichkeit: Alle IDs in ein Array schreiben


db.organisations.update({_id:{$in: [ObjectId("<Unterorga1>"), ObjectId("<Unterorga2>")]}}, {$push:{
'members':{
roles:[ObjectId("<AdminID>")],
blocked: false,
user: ObjectId("<NutzerID>"),
role: "admin"
}
}})

 

2. Möglichkeit: Den Nutzer pro Unterorganisation hinzufügen


db.organisations.update({_id:ObjectId("<Unterorga1>")}, {$push:{
'members':{
roles:[ObjectId("<AdminID>")],
blocked: false,
user: ObjectId("<NutzerID>"),
role: "admin"
}
}})