2017-09-04 3 views
1

Ich bin auf der Suche nach einer Möglichkeit, bestimmte Rollen in einem Dialogfeld Seiteneigenschaften auszuwählen. Einige Teile der Seite sollten nur für bestimmte Rollen sichtbar sein.Magnolia CMS 5.5.5 Wählen Sie aus Rollen

Was habe ich ist

- name: allowedRoles 
    class: info.magnolia.ui.form.field.definition.MultiValueFieldDefinition 
    label: Select Roles 
    field: 
    name: roleLinkField 
    class: info.magnolia.ui.form.field.definition.LinkFieldDefinition 
    targetWorkspace: userroles 
    appName: security 
    identifierToPathConverter: 
     class: info.magnolia.ui.form.field.converter.BaseIdentifierToPathConverter 

Auf diese Weise können Sie mich wählen, nur Benutzer nicht Userroles .. Was muss ich aus der SubApp „Sicherheit“ wählen, tun, als „Rollen“?

+1

Hmm. Ich würde erwarten, dass so funktioniert wie es ist. Ich kann den Code gerade nicht überprüfen. Als Workaround können Sie eine benutzerdefinierte App erstellen (kopieren Sie einfach die Sicherheits-App) und die Rollen dort als erste Workbench/Subapp dorthin verschieben und auf diese verweisen. Schau, ob dich das weiterbringt. – Jan

+0

Das ist eine Idee, aber ich würde lieber nicht so gehen .. Bitte lassen Sie es mich wissen, wenn Sie eine andere Möglichkeit sehen. – reencode

Antwort

2

Ok, nahm dies eine Weile, um herauszufinden, aber dreht sich am Ende relativ einfach aus:

  • definieren chooseDialog in der App, von dem Sie aus verschiedenen SubApp explizit in security-app (in Ihrem Fall wählen möchten)
  • in der chooseDialog, definieren Workbench-Feld auf Workbench in Unteranwendung von Interesse (Rollen in Ihrem Fall). Die Klassendefinition für das Feld muss hier explizit angegeben werden. auch
  • in chooseDialog definieren contentConnector zu Anschluss von Interesse zeigt (in Rollen SubApp in Ihrem Fall)
  • im Dialog, in dem Sie auf den Link Feld hinzufügen, in der Definition des Link-Feldes, setzte appName an die App (security in Ihrem Fall) und setzen Sie targetWorkspace auf den Arbeitsbereich des Connectors, den Sie im obigen Schritt von chooseDialog verknüpft haben (in Ihrem Fall).

Alle sollten dann funktionieren. Die Einschränkung besteht darin, dass Sie nur eine solche Dialogdefinition pro App auswählen können, sodass Sie auswählen müssen, von welcher Subanwendung Sie Elemente verknüpfen möchten.

Konfigurationsbeispiel für das, was Sie wollen: https://gist.github.com/rah003/29910e92067effaebed9156d6bdc293a

enter image description here

HTH,
Jan

Verwandte Themen