2017-02-22 4 views
0

Ist es möglich, ein sails.config Objekt dynamisch zu aktualisieren, ohne Segel zurücksetzen zu müssen, um diese Änderungen zu übernehmen?SailsJS - Dynamisches Laden der Konfiguration ohne Neustart

Ich suche dynamisch die ich gesetzt haben sails.config.policies

In meinem bootstrap.js zu aktualisieren

sails.config.policies = JSON.parse(myJSONString); 

, die die Werte in Ordnung setzt, aber sie nie angewendet bekommen.

Alternativ gibt es eine Möglichkeit, die sails.config files in eine db zu verschieben und sie von dort auf Lift laden?

UPDATE

Nach Vorschlag Andrea Rega folgenden zog ich meine Logik aus und erstellte Politik eine separate "allowedaccess". Ich fügte dann ein neues Modell hinzu, das eine Benutzerrolle einer Route zuordnet und diese innerhalb der Richtlinie abruft. Die Rolle des Benutzers wird dann mit der Rollen-> Berechtigungsliste in der Datenbank überprüft.

+0

meinst du während der Entwicklung Workflow oder in die Produktion? –

+0

Während die App in Produktion läuft. – Kiksy

+0

Also was ist der Zweck? Versuchen Sie, eine benutzerdefinierte Berechtigungs- und Rechteverwaltungsschicht hinzuzufügen? –

Antwort

1

meiner Meinung nach also ein besserer Ansatz könnte die Politik Schicht als Infrastrukturschicht und der Authorization Management-Schicht als Anwendungsschicht werden Putten.

Dies ist, weil Sie in der Lage sein, Ihre Berechtigung zur Laufzeit zu ändern oder zu konfigurieren, als Teil Ihrer Anwendung Funktionen, stattdessen sind die Segel-Richtlinien etwas statische.

Ein Beispiel einer Politik isFeature1UserEnabled sein, wo ein AuthorizationController verwendet wird, um die spezifische Berechtigung für die „feature1“ für den jeweiligen Benutzer

Dann zu holen in Ihrem sails.config.policies Sie, dass für die Methode method1 eine Reihe angeben werden von Richtlinien müssen erfüllt sein.

Mit diesem Ansatz können Sie alle Ihre Benutzerrechte dynamisch verwalten und dann an die Sails-Richtlinien delegieren, um sie zu überprüfen und alle damit verbundenen Autorisierungseinschränkungen zu überprüfen.

Ich hoffe, das könnte Ihnen helfen

+0

Danke. Dies ist eine weit vernünftigere Art, es zu lösen als meine ursprüngliche Idee. – Kiksy

Verwandte Themen