Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  1. Klicken Sie eine UI-Komponente an, die Sie verrechten möchten, z.B. einen Save Button.
  2. Klicken Sie bei Properties > Authorization > Rights auf ....
  3. Klicken Sie im folgenden Dialog Rights auf + New, um ein neues Recht hinzuzufügen.
  4. Geben Sie bei Right die Bezeichnung für ein neues Recht ein oder wählen Sie ein bereits existierendes Recht aus, z.B. CustomerSave.
  5. Wählen Sie bei Strategy einen für diese UI-Komponente möglichen Zustand aus, z.B. ENABLED.
  6. Klicken Sie auf OK.
Ergebnis:
  • AuthorizationResources - Im Projekt Management > Business Objects wird diese Klasse angelegt, um die Rechte global zu verwalten. 

    Code Block
    languagejava
    themeConfluence
    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.

    Code Block
    languagejava
    themeConfluence
    /*
     * 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);