Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

RechtErklärungFälleStrategyStatusAuswirkungZustand
ProductEditBenutzer darf Kunden-Datensätze speichern.Recht vorhanden.ENABLEDTRUE UI Komponente ist aktiviert
VISIBLETRUE UI Komponente ist sichtbar
READ_ONLY FALSEUI Komponente zeigt Wert an. Werte eingeben oder editieren ist jedoch nicht möglich.
Recht nicht vorhanden.
ENABLEDFALSE UI Komponente ist deaktiviert.
VISIBLEFALSE UI Komponente ist unsichtbar.
READ_ONLY
TRUEWerte eingeben oder editieren ist möglich.

...

  • ProductNone - Benutzer auf keinen Zugriff auf den Produkt-Datensatz.
  • ProductCreate - Benutzer darf einen neuen Produkt-Datensatz anlegen.
  • ProductRead - Benutzer darf einen Produkt-Datensatz lesen.
  • ProductEdit - Benutzer darf einen Produkt-Datensatz ändern.
  • ProductDelete - Benutzer darf einen Produkt-Datensatz löschen.

Dadurch können sich für ene eine größere Anwendung sehr viele verschiedene Rechte ergeben. 

...

  • Um UI-Komponente verrechten zu können, müssen als Vorraussetzung Voraussetzung Datenquellen für Authentifizierung und Autorisierung in Ihrem Projekt vorhanden sein.
  • Eine UI-Komponente kann auch mit mehreren Rechten verknüpft werden.

...

  • AuthorizationResources - Im Projekt Management > Business Objectsmain-java wird diese Klasse angelegt, um die Rechte global zu verwalten. 

    Code Block
    languagejava
    themeConfluence
    package com.company.example.business.demoproject;
    
    import java.util.MissingResourceException;
    
    import com.rapidclipse.xdevframework.security.authorization.Resource;
    import com.rapidclipse.xdevframework.security.authorization.ResourceEnum;
    import com.rapidclipse.framework.server.resources.Caption;
    import com.rapidclipse.framework.server.resources.StringResourceUtils;
    import com.rapidclipse.framework.xdevserver.security.authorization.ui.Authorization;
    
    
    /**
     * Central collection of all authorization resources used in the project.
     */
    @Caption("{%description}")
    public enum AuthorizationResources implements ResourceEnum<AuthorizationResources>
    {
    	CUSTOMERCREATECREATE("create"), READ("CustomerCreateread")
    	;
    	
    	/**
    	 * 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 String       description;
    	
    	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;
    	}
    	
    	public String getDescription()
    	{
    		if(this.description == null)
    		{
    			try
    			{
    				this.description = StringResourceUtils.getResourceString(name(), this);
    			}
    			catch(final MissingResourceException e)
    			{
    				this.description = this.name;
    			}
    		}
    		
    		return this.description;
    	}
    }
    
    }


  • 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 XdevButtonButton();
    	this.button.setCaptionsetText("Save");
    
    	Authorization.setSubjectEvaluatingComponentExtension(this.button, SubjectEvaluatingComponentExtension.Builder.New()
    			.New().add(AuthorizationResources.CUSTOMERSAVECREATE.resource(), SubjectEvaluationStrategy.ENABLED).build());
        Authorization.evaluateComponents(this);


...