Es gibt mehrere Grails-Menü-Plugins, zum Beispiel das Navigation-Plugin. Ich muss dem Benutzer nur die Menüpunkte zeigen, auf die er gemäß seinem Benutzerprofil zugreifen kann. Was ist der einfachste Weg, dies zu erreichen? Gibt es ein Menü-Plugin, das in einige Sicherheits-Plugins integriert werden kann?Grails-Menü mit Profiling
1
A
Antwort
2
Die navigation plugin hat ein Beispiel für die Verwendung von isVisible
, um Menüelemente bedingt auszublenden. Wenn Sie die Spring Security-Plugin verwenden, dann können Sie dies mit Methoden auf den SpringSecurityUtils kombinieren oder auf die injizierten SpringSecurityService Bohne:
def springSecurityService
// ...
static navigation = [
[group:'userOptions', action:'login', order: 0, isVisible: { SpringSecurityUtils.ifAllGranted('ROLE_ADMIN') }],
[action:'logout', order: 99, isVisible: { springSecurityService.isLoggedIn() }]
]
Alternativ Frühling Sicherheit kommt mit some tags, die den Tag Körper machen wird nur, wenn die Benutzer ist/ist nicht eingeloggt, mit welchen Rollen usw., so dass Sie Ihre Menüpunkte einfach wie folgt rollen lassen können:
<sec:ifAllGranted roles="ROLE_ADMIN">
// Render <g:link../> to an admin page here.
</sec:ifAllGranted>