2017-08-31 1 views
1

Ich versuche zu verstehen, wie die Wolkekit-Auth-Ebene zu erweitern.Wolkenkit: ACLs für Autorisierung und Benutzerrollen

Angenommen, ich möchte Benutzer mit verschiedenen Rollen: normal, Moderator und Admin.

  • normale Benutzer können ihre eigenen Inhalte sehen und ändern, sind aber nicht Inhalt von anderen Nutzern zu ändern erlaubt.

  • Moderator Benutzer dürfen alle Einträge ändern, haben aber keine Berechtigung, nur ihren eigenen Inhalt zu löschen.

  • admin Benutzer können alles ändern und löschen.

  • Es gibt auch nicht authentifizierte Gäste Benutzer, die alles lesen können, aber nichts ändern.

die Dokumentation für Write model: Configuring authorization Lesen kann ich modellieren die Gast/normalen Anwendungsfall durch etwas entlang der Linien des Schreibens:

const initialState = { 
    isAuthorized: { 
    commands: { 
     issue: { forAuthenticated: false, forPublic: false } 
    }, 
    events: { 
     issued: { forAuthenticated: true, forPublic: true } 
    } 
    } 
}; 

Für meine Anforderungen i zusätzliche Rollen definiert brauchen würde in dieses Objekt. So etwas wie { forModerator: true, forAdmin: true }.

Es gibt auch Granting access from a command, um Berechtigungen zur Laufzeit zu ändern, aber ich bin mir nicht sicher, ob das funktionieren würde. Auch wenn es so ist, fühlt sich das ziemlich hacky an.

Ist das irgendwie möglich?

Antwort

1

Haftungsausschluss: Ich bin einer der Entwickler von Wolkenkit.

Um es kurz zu machen: Nein, momentan ist das leider nicht möglich, aber diese Funktion steht auf unserer Roadmap. Zumindest heute kann ich dir nicht sagen, wann das verfügbar sein wird.

Ihre beste Option wäre es, es auf eigene Faust zu tun. Eine Möglichkeit, dies zu tun, könnte darin bestehen, Ihren Identity-Provider zu verwenden, um in den JWTs der Moderatoren einen -Anspruch aufzunehmen und diesen dann im Command-Handler entsprechend zu behandeln.

Im Befehls-Handler haben Sie Zugriff auf das Token von

command.user.token 

so können Sie die Ansprüche erhalten je nach Bedarf. Es tut mir leid, dass es im Moment keine bessere Antwort gibt :-(

+1

Ist Ihre Roadmap öffentlich sichtbar? Ich würde mich sehr dafür interessieren. – Alp

+1

Noch nicht, aber wir werden das ändern. Ich werde Sie lassen wissen, sobald wir es veröffentlicht haben. –

Verwandte Themen