Hallo zusammen!
wir nutzen Rocket.Chat seit jetzt fast 5 Jahren und sind damit insgesamt sehr zufrieden. Ich möchte hier einen Work-Around zeigen, mit dem man für die Schule sinnvoll festlegen kann, welche anderen Nutzenden in der Suche auftauchen.
Wir haben pro Lerngruppe einen privaten Raum (SuS und Lehrkraft) sowie einen öffentlichen Broadcast-Kanal, in dem alle Mitglieder der Schulgemeinde sind. Folgende Berechtigungen haben wir für Schüler rausgenommen:
- Die Liste der Mitglieder in Broadcast-Rooms anzeigen:
Damit können die SuS nicht die Mitglieder-Liste im öffentlichen Raum einsehen. - Room außerhalb anzeigen (view-outside-room):
Damit können die SuS nur Mitglieder finden, mit denen sie in einem Raum sind.
Das Problem war nun, dass SuS beim Erstellen von Direkt-Nachrichten alle Nutzer finden konnten, weil sie im öffentlichen Raum drin waren.
Dazu habe ich angepasst:
Rocket.Chat/programs/server/app/app.js
Dort habe ich folgenden Block geändert (bei mir Zeile 85371):
if (!(await hasPermissionAsync(uid, 'view-outside-room'))) {
const users = await Subscriptions.findConnectedUsersExcept(uid, selector.term, exceptions, searchFields, conditions, 10);
return {
items: contacts.concat(users)
};
}
zu (ein „p“ ergänzt)
if (!(await hasPermissionAsync(uid, 'view-outside-room'))) {
const users = await Subscriptions.findConnectedUsersExcept(uid, selector.term, exceptions, searchFields, conditions, 10, "p");
return {
items: contacts.concat(users)
};
}
Damit werden bei der Nutzersuche öffentliche Räume ausgenommen. Schülerinnen und Schüler finden dann nur noch die Nutzer, mit denen sie in einem privaten Raum gemeinsam sind (im Regelfall ihre Klassenkameraden).
Vielleicht hilft es ja jemandem von euch.
Viele Grüße
Dominik