0

Wie kann man die Rails Umgebungsvariablen innerhalb der Anwendung verwenden?Admin-Benutzer: Rails Umgebungsvariable

Ich versuche, sie zu verwenden, um den Zugriff auf bestimmte Elemente auf der Seite zu beschränken. Z.B. die Benutzer sehen nicht die Informationen, die ein Administrator tut; aber der Rest der Seite ist gleich. Gibt es eine Best Practice für solche Benutzerberechtigungsimplementierungen?

Antwort

1

Ich verstehe nicht, warum Sie Umgebungsvariable dafür verwenden möchten. Wenn Sie den Zugriff auf bestimmte Elemente auf der Seite (oder/und Aktionen) einschränken möchten, können Sie Edelsteine ​​wie cancancan (https://github.com/CanCanCommunity/cancancan) oder pundit (https://github.com/elabs/pundit) verwenden, wenn die Autoregeln komplex sind. Aber wenn Ihre Regeln sehr einfach sind, können Sie einfach nicht smth wie:

if current_user.admin? 
... admin stuff... 
end 

in der Ansicht.

+0

Meine Benutzerinformationen kommen über Shibboleth (Single Sign On) und werden über Umgebungsvariablen an meine Anwendung übergeben. Ich muss diese überprüfen, um den Zugriff zu beschränken – newtojs

+0

Ich denke, Sie sollten Shibboleth spezifische Lösungen suchen/fragen. Benutzt du omniauth-shibboleth oder so etwas. – lightalloy

+0

Ich habe die Umgebungsvariablen, die von Shibboleth kommen, also denke ich nicht, dass das helfen würde. Ich versuche herauszufinden, ob ich Umgebungsvariablen verwenden kann, um Ansichten in RoR – newtojs

0

Sie können eine Umgebungsvariable wie folgt verwenden:

<%= ENV["Your_Username"] %> 

Dies ist ein Beispiel dafür, was in Ihrem database.yml sein würde. Wie der oben genannte Benutzer anmerkte, wäre es jedoch besser, die Logik in Ihre Ansicht zu stellen, als eine Umgebungsvariable zu verwenden.

+0

beeinflussen Ich möchte die Logik in der Ansicht, aber ich bin beschränkt auf Umgebungsvariablen oder die weniger sichere HttpHeaders – newtojs