Deaktivierte Benutzergruppen Einstellungen werden ausgewertet

  • App
    WoltLab Suite Core

    Ich habe gerade testweise einmal die Maximale Anzahl von Teilnehmern von allen Benutzergruppen auf 1 heruntergesetzt. Trotzdem konnte ich weiterhin mehr als einen Teilnehmer hinzufügen.
    Dann ist mir aufgefallen, dass in der Benutzergruppe "Jeder" die Maximale Teilnehmeranzahl auf 10 steht, aber deaktiviert ist, da "Kann Konversationen benutzen" nicht markiert ist. Trotzdem gilt für alle Benutzergruppen die 10.
    Erst wenn ich "Kann Konversationen benutzen" kurz aktiviere, die Maximale Teilnehmeranzahl auf 0 setze und die "Kann Konversationen benutzen" wieder deaktivieren funktioniert es wie gewünscht.

  • Das ist ein bekanntes Phänomen, welches schon seit Jahren immer wieder mal für Verwirrung sorgt. Es entspricht der Funktionsweise des Berechtigungssystems, dass stets der "beste" Wert aus allen Gruppen genommen wird, auch wenn die eigentliche Funktion der Gruppe nicht zugänglich ist.

    Welchen Vorschlag wolltest Du nun eigentlich machen?


    Gruß norse

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

  • Oh, falsches Board, sollte eigentlich in Fehler rein. Vorschlag wäre aber auch der, dass das berücksichtigt wird.
    Aber wenn das bereits mehrmals diskutiert wurde, kann der Thread auch gleich in den Papierkorb ;)

  • Hier wären noch einige Vorschläge, vielleicht findet sich ja der ein oder andere Interessierte:

    • Deaktivierte Option beim speichern auf den Minimalwert setzen, so würden immer andere Rechte gewinnen
    • In der wcf1_user_group_option_value Tabelle eine Spalte isDisabled hinzufügen und die dann bei der Rechtebestimmung herausfiltern
    • (nicht getestet ob das möglich ist). Deaktivierte Werte aus der Tabelle wcf1_user_group_option_value löschen, auch so werden sie zur Rechtebestimmung nicht mit einbezogen.
  • 1 & 3) sind im Prinzip ja das Selbe und beide nicht gewollt, da damit die ursprünglichen Einstellungen verloren gehen. Nehmen wir mal an, du hast z.B. eingestellt, welche BBCodes benutzt werden dürfen, und deaktivierst nun vorübergehend das Recht, überhaupt BBCodes verwenden zu dürfen - in dem Falle würden dir die Einstellungen über die erlaubten BBCodes verloren gehen, und beim erneuten aktivieren der BBcodes müsstest du das erneut einstellen.

    2.) ist möglich, aber unnötig.

    Am einfachsten wäre es, wenn beim Auflösen der Rechte deaktvierte Optionen einfach nicht berücksichtigt werden. Das ist ein einfacher rekursiver Check, der anders als alle Manipulationen an der Db weder invasiv ist, noch viel zusätzliche Rechenzeit benötigt, noch eine neue Spalte benötigt.

    "A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP" — Leonard Nimoy

  • Am einfachsten wäre es, wenn beim Auflösen der Rechte deaktvierte Optionen einfach nicht berücksichtigt werden. Das ist ein einfacher rekursiver Check, der anders als alle Manipulationen an der Db weder invasiv ist, noch viel zusätzliche Rechenzeit benötigt, noch eine neue Spalte benötigt.

    Wenn das so ist, frage ich mich, warum das nicht bereits passiert. Die Optionen mit denen aus wcf1_user_group_option.enableOptions abzugleichen und bei Treffer checken ob die Option deaktiviert ist, sollte unproblematisch sein. Da hast du recht.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!