Mögliche Rechteeinstellungen

    • Offizieller Beitrag

    Hallo,


    dieses Thema soll einen Überblick über die möglichen Einstellungen für die Zugriffsrechte auf Pakete geben. Generell unterscheidet der Paketserver zwischen Benutzerrechten, Gruppenrechten und allgemeinen Rechten („Jeder“). Benutzer erben die Rechte aller Gruppen, in denen sie sich befinden. Sobald irgendeiner der Rechte den Zugriff auf ein Paket gestattet ist der Zugriff gestattet. Die Zugriffsrechte werden in der auth.json geregelt, welche sich im packages-Ordner befindet. Fehlt diese, so wird der Zugriff auf alle Pakete erlaubt, ist diese fehlerhaft, so wird der Zugriff auf den Paketserver gesperrt („Error 503“). Eine beispielhafte Konfiguration könnte wie folgt aussehen:



    Das passwd eines Benutzers ist hierbei ein „Double-Salted-BCrypt-Hash“ (das gleiche Verfahren, was auch Community Framework verwendet). Es ist möglich innerhalb des Paketnamens das Asterix * als Platzhalter zu verwenden. Innerhalb der Versionsbedingungen gibt es folgende mögliche Werte. VERSION steht hierbei für eine, vom WCF akzeptierte, Versionsnummer eines Paketes. Es müssen Klammern zur Gruppierung von && und || verwendet werden, andernfalls schlägt der Parse-Vorgang fehl.


    • *: Gestattet Zugriff auf alle Versionen (kann nicht kombiniert werden)
    • $v < VERSION: Die Paket-Version muss echt kleiner sein, als die Vergleichsversion.
    • $v > VERSION: Die Paket-Version muss echt größer sein, als die Vergleichsversion.
    • $v <= VERSION: Die Paket-Version muss kleiner – oder gleich – der Vergleichsversion sein.
    • $v >= VERSION: Die Paket-Version muss größer – oder gleich – der Vergleichsversion sein.
    • $v = VERSION / $v == VERSION: Die Paket-Version muss identisch zur Vergleichsversion sein.
    • $v != VERSION: Die Paket-Version darf nicht identisch zur Vergleichsversion sein.
    • $v ~ (beta|alpha|dev|rc|pl): Die Paket-Version muss den Vergleichswert enthalten.
    • $v !~ (beta|alpha|dev|rc|pl): Die Paket-Version darf den Vergleichswert nicht enthalten.
    • Bedingung1 && Bedingung2: Bedingung1 und Bedingung2 (eine der Möglichkeiten oben) müssen beide erfüllt sein.
    • Bedingung1 || Bedingung2: Es muss mindestens eine der beiden Bedingungen erfüllt sein.
    • VERSION1 (<|<=|>|>=) $v (<|<=|>|>=) VERSION2: Kurzform für VERSION1 (<|<=|>|>=) $v && $v (<|<=|>|>=) VERSION2


    Einige Beispiele:

    • 1.0.0 <= $v < 2.0.0: Gestattet Zugriff auf den kompletten Versionszweig 1.x.x, allerdings ohne die instabilen Versionen einzuschließen.
    • $v !~ alpha && $v !~ beta: Gestattet Zugriff auf alle Versionen, außer die Alpha- und Beta-Versionen
    • $v ~ beta: Gestattet Zugriff auf alle Beta-Versionen
    • $v = 2.0.0: Gestattet den Zugriff nur auf Version 2.0.0
    • Offizieller Beitrag

    Hallo,


    mit Beta 2 von Tims Paketserver (Beta 4 der Paketserveradministration) wird es eine Änderung an der Grammatik der Authentifizierungsregeln geben. Ab dann ist es erforderlich && und || explizit zu Klammern, wenn diese miteinander vermischt werden. Vorher wurde implizit von links nach rechts geklammert. Ich empfehle schon jetzt die explizite Klammerung, um die Regeln verständlich zu gestalten.


    Beispiel:


    $v = 1.0.0 || $v = 1.0.0 && $v = 1.0.0
    Alt: ($v = 1.0.0 || $v = 1.0.0) && $v = 1.0.0
    Neu: „Expecting 'EOF', '||', ')', got '&&'“


    $v = 1.0.0 && $v = 1.0.0 || $v = 1.0.0
    Alt: ($v = 1.0.0 && $v = 1.0.0) || $v = 1.0.0
    Neu: „Expecting 'EOF', '&&', ')', got '||'“


    $v = 1.0.0 && $v = 1.0.0 && $v = 1.0.0
    Alt: ($v = 1.0.0 && $v = 1.0.0) && $v = 1.0.0
    Neu: Identisch!