Rocket.Chat: Nutzersuche einschränken

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

Hi, das würde ein Problem was ich habe richtig toll lösen - aber ich sehe den Unterschied nicht. Wo genau wurde das “p” ergänzt?

Dank und Gruß
Karo

In der zweiten Zeile des Codes am Ende der Klammer hinter dem Parameter 10.

ich hatte die “erweitern”-Funktion im Code-Ausschnitt übersehen :see_no_evil_monkey: Danke dir!

Genau. Dort muss ein “p” ergänzt werden.

Achte nur darauf, dass die Änderung bei jedem Update überschrieben wird und danach wieder hinzugefügt werden muss.