Verwarnbutton wird auch bei "immunen" Benutzern angezeigt

  • Affected App
    WoltLab Suite Core

    Ich schreibe das jetzt hier mal bewusst in den Fehlerbereich, um auf jeden Fall eine werksseitige Stellungnahme zu "provozieren". Wenn das Phänomen nicht als Fehler angesehen wird, bitte einen Vorschlag draus machen.

    Wenn jemand über das moderative Recht "Kann nicht verwarnt werden" verfügt, wird dennoch bei seinen Inhalten ein Verwarnbutton angezeigt, dessen Verwendung dann natürlich in eine Fehlermeldung mit dem Hinweis auf fehlende Rechte mündet. (Früher kam hier übrigens die aussagekräftigere Meldung, dass dieser Benutzer nicht verwarnt werden kann.)

    Da für die Anzeige des Buttons ohnehin in den Templates eine Prüfung auf ein aktives Verwarnmodul und die Berechtigung zu verwarnen stattfindet, wäre es ein Leichtes, an dieser Stelle zusätzlich auf die Immunität des Autors/Profilinhabers zu prüfen.


    Gruß norse

    Zugang zu meinen Arbeiten und dem dazugehörigen Support bekommt Ihr bei Interesse hier.

  • Hallo,

    es handelt sich dabei um eine Design-Entscheidung auf Basis von Performance-Erwägungen. Die Feststellung, ob ein Benutzer verwarnt werden kann, erfordert das Laden zusätzlicher Daten, die normalerweise an solchen Stellen nicht zur Verfügung stellen. Diese Daten zusätzlich zu laden hat nicht unerhebliche Performance-Auswirkungen und der einzige Zweck läge darin, in sehr seltenen Fällen den Verwarnen-Button nicht anzuzeigen. Es müssten also Daten geladen werden, bei denen in der Realität bereits feststeht, dass diese zu über 99% nutzlos sind, weil die Ausnahme nicht zutreffen wird.

    Dieselbe Überlegung steckt auch hinter dem Button für Konversationen: Auch dort erfolgt keine Detailprüfung des möglichen Empfängers, es ist das identische Grundproblem.

    In solchen Fällen beschränkt sich die Prüfung für die Anzeige des Buttons auf Daten, die so oder so bereits vorliegen und damit praktisch "ohne Zusatzkosten" berücksichtigt werden können.

  • Erklärst Du mir dann bitte den Unterschied bezüglich des Aufwands zwischen der Prüfung auf das moderative Recht des Betrachters und die Immunität des Inhaltserstellers? Bezüglich der Konversationen erscheint mir Deine Argumentation angesichts der gewählten Privatsphäreeinstellungen und möglicher Blockierung absolut plausibel, in Hinsicht auf den Verwarnbutton bräuchte ich da eine gewisse Erleuchtung.


    Gruß norse

    Zugang zu meinen Arbeiten und dem dazugehörigen Support bekommt Ihr bei Interesse hier.

  • Der Verwarn-Button wird an jedem Beitrag angezeigt. Dabei muss dann individuell geprüft werden, ob der Benutzer nicht das von dir oben genannte Recht hat. Aktuell geschieht das ja erst bei einem Klick auf den Verwarnen-Button. Nehmen wir als Beispiel ein Thema mit 20 Beiträgen auf einer Seite, die zufällig alle von unterschiedlichen Benutzern stammen, dort müsste 20 Mal eine solche Überprüfung durchgeführt werden. Es ist jedoch sehr unwahrscheinlich dass man 20 verschiedene Benutzer auf einmal verwarnen möchte und diese zusätzlich eben auch noch nach moderativem Recht nicht verwarnt werden können, somit ist es schlicht "zu teuer" diese Prüfung laufen zu lassen, der Effekt wäre einfach zu klein (es wird davon ausgegangen, dass Verwarnungen nicht häufig vorkommen und die Verwarnung von Benutzern mit diesem Recht noch seltener sind, weil dies meist Team-Mitglieder sind) - Performance-Probleme wären die Folge, insbesonder bei Shared Hosting.

  • Das ist mir klar. Es wird aber auch für jeden einzelnen Beitrag geprüft, ob das Verwarnmodul aktiv ist und ob der Betrachter verwarnen darf, deshalb ja meine Frage. Am Beispiel des Forenbeitrags steht die Information für mein Verständnis über $userProfile->getPermission () ohne großen Aufwand zur Verfügung, während beispielsweise für den Konversationsbutton zusätzlich der userProfileHandler aufgerufen werden müsste.


    Gruß norse

    Zugang zu meinen Arbeiten und dem dazugehörigen Support bekommt Ihr bei Interesse hier.

  • Die Prüfung der Berechtigungen des aktuellen Nutzers sind kein Problem, denn diese Daten liegen immer vor. Egal was der Seitenaufruf macht, die Berechtigungen des aktuellen Nutzers (äquivalent auch bei Gästen) werden stets geladen. Daher ist die Prüfung einer Berechtigung des aktiven Nutzers ohne nennenswerte Zusatzkosten, es verschwindet im Messfehler.

    Die Berechtigungen eines beliebigen anderen Benutzers sind nicht bekannt und müssten im Einzelfall geladen werden. Das ist aber potentiell teuer, denn um die Berechtigungen eines Benutzers zu ermitteln, entsteht ein ziemlicher Aufwand:

    1. Abfrage der Gruppenmitgliedschaften des Zielbenutzers.
    2. Ermittlung der Berechtigungen für jede Gruppe, in denen der Benutzer Mitglied ist.
    3. Berechnung der effektiven Berechtigungen des Zielbenutzers auf Basis der Daten von Schritt 2.

    Der Aufwand wird dadurch unverhältnismäßig hoch. Natürlich ist es möglich, gewisse Dinge zu gruppieren und damit effizienter zu gestalten und auch bei den Schritten 2 und 3 gibt es "Abkürzungen" um es abzumildern, aber im worst case ist der Aufwand enorm.

    Unterm Strich müssen wir halt auch abwägen, ob sich der ganze Aufwand am Ende lohnt, nur damit bei einem Moderator bzw. Administrator der Button nicht angezeigt wird.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!