UI-Komponenten lassen sich über die Property Rights mit einem oder mehreren Benutzerrechten verknüpfen. Dazu besitzt jede verrechtbare UI-Komponente die 3 Zustände (Strategy)
- ENABLED - Die UI-Komponente ist aktiviert.
- VISIBLE - Die UI-Komponente ist sichtbar.
- READ_ONLY - Die UI-Komponente kann Daten lediglich anzeigen. Eingaben oder Änderungen sind nicht möglich.
Hinweis:
- Um UI-Komponente verrechten zu können, müssen als Vorraussetzung Datenquellen für Authentifizierung und Autorisierung in Ihrem Projekt vorhanden sein.
- Klicken Sie eine UI-Komponente an, die Sie verrechten möchten, z.B. einen Save Button.
- Klicken Sie bei Properties > Authorization > Rights auf ....
- Klicken Sie im folgenden Dialog Rights auf + New, um ein neues Recht hinzuzufügen.
- Geben Sie bei Right die Bezeichnung für ein neues Recht ein oder wählen Sie ein bereits existierendes Recht aus, z.B. CustomerSave.
- Wählen Sie bei Strategy einen für diese UI-Komponente möglichen Zustand aus, z.B. ENABLED.
- Klicken Sie auf OK.
Ergebnis:
AuthorizationResources - Im Projekt Management > Business Objects wird diese Klasse angelegt, um die Rechte global zu verwalten.
package com.company.example.business; import com.xdev.security.authorization.Resource; import com.xdev.security.authorization.ResourceEnum; import com.xdev.security.authorization.ui.Authorization; /** * Central collection of all authorization resources used in the project. */ public enum AuthorizationResources implements ResourceEnum<AuthorizationResources> { CUSTOMERSAVE("CustomerSave") ; /** * Helper method to export all resource names. * <p> * Right click and select 'Run As' - 'Java Application' * </p> */ public static void main(String[] args) { for (AuthorizationResources value : AuthorizationResources.values()) { System.out.println(value.name); } } ///////////////////////////// // implementation details // /////////////////////////// private final String name; private Resource resource; private AuthorizationResources(final String name) { this.name = name; } @Override public String resourceName() { return this.name; } @Override public Resource resource() { if (this.resource == null) { this.resource = Authorization.resource(this.name); } return this.resource; } }
UI-Komponente - Die UI-Komponente wird mit dem Recht verknüpft.
/* * WARNING: Do NOT edit!<br>The content of this method is always regenerated * by the UI designer. */ // <generated-code name="initUI"> private void initUI() { this.button = new XdevButton(); this.button.setCaption("Save"); Authorization.setSubjectEvaluatingComponentExtension(this.button, SubjectEvaluatingComponentExtension.Builder .New().add(AuthorizationResources.CUSTOMERSAVE.resource(), SubjectEvaluationStrategy.ENABLED).build()); Authorization.evaluateComponents(this);