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"
}
}})