Search in sources :

Example 21 with PropertyAccessor

use of com.manydesigns.elements.reflection.PropertyAccessor in project Portofino by ManyDesigns.

the class DateSearchFieldTest method setupFields.

private void setupFields() {
    ClassAccessor classAccessor = JavaClassAccessor.getClassAccessor(this.getClass());
    try {
        PropertyAccessor myPropertyAccessor = classAccessor.getProperty("date");
        dateField = new DateSearchField(myPropertyAccessor);
    } catch (NoSuchFieldException e) {
        fail(e.getMessage(), e);
    }
}
Also used : PropertyAccessor(com.manydesigns.elements.reflection.PropertyAccessor) DateSearchField(com.manydesigns.elements.fields.search.DateSearchField) JavaClassAccessor(com.manydesigns.elements.reflection.JavaClassAccessor) ClassAccessor(com.manydesigns.elements.reflection.ClassAccessor)

Example 22 with PropertyAccessor

use of com.manydesigns.elements.reflection.PropertyAccessor in project Portofino by ManyDesigns.

the class JodaTimeFieldTest method setupFields.

private void setupFields(Mode mode) throws NoSuchFieldException {
    ClassAccessor classAccessor = JavaClassAccessor.getClassAccessor(this.getClass());
    PropertyAccessor myPropertyAccessor = classAccessor.getProperty("date");
    dateField = new JodaTimeField(myPropertyAccessor, mode, null);
}
Also used : PropertyAccessor(com.manydesigns.elements.reflection.PropertyAccessor) JavaClassAccessor(com.manydesigns.elements.reflection.JavaClassAccessor) ClassAccessor(com.manydesigns.elements.reflection.ClassAccessor)

Example 23 with PropertyAccessor

use of com.manydesigns.elements.reflection.PropertyAccessor in project Portofino by ManyDesigns.

the class AbstractResourceAction method getConfiguration.

/**
 * Returns the configuration of this action, filtered using permissions.
 * @return the configuration.
 */
@io.swagger.v3.oas.annotations.Operation(operationId = "com.manydesigns.portofino.resourceactions.AbstractResourceAction#getConfiguration", description = "Returns the configuration of this action. " + "The actual type of the configuration object depends on the action class.")
@ApiResponses({ @ApiResponse(responseCode = "200", description = "The configuration object.") })
@Path(":configuration")
@GET
@Produces(MimeTypes.APPLICATION_JSON_UTF8)
public Object getConfiguration() {
    Object configuration = actionInstance.getConfiguration();
    if (getConfigurationClass() == null) {
        return configuration;
    }
    ClassAccessor classAccessor = getConfigurationClassAccessor();
    ClassAccessor filteredClassAccessor = filterAccordingToPermissions(classAccessor);
    ResourceActionConfiguration filtered = (ResourceActionConfiguration) classAccessor.newInstance();
    for (PropertyAccessor propertyAccessor : filteredClassAccessor.getProperties()) {
        if (propertyAccessor.isWritable()) {
            propertyAccessor.set(filtered, propertyAccessor.get(configuration));
        }
    }
    filtered.init();
    return filtered;
}
Also used : PropertyAccessor(com.manydesigns.elements.reflection.PropertyAccessor) ClassAccessor(com.manydesigns.elements.reflection.ClassAccessor) JavaClassAccessor(com.manydesigns.elements.reflection.JavaClassAccessor) FilteredClassAccessor(com.manydesigns.elements.reflection.FilteredClassAccessor) FileObject(org.apache.commons.vfs2.FileObject) ApiResponses(io.swagger.v3.oas.annotations.responses.ApiResponses)

Example 24 with PropertyAccessor

use of com.manydesigns.elements.reflection.PropertyAccessor in project Portofino by ManyDesigns.

the class SelectFieldTest method setupSelectFields.

private void setupSelectFields(Mode mode) {
    ClassAccessor classAccessor = JavaClassAccessor.getClassAccessor(this.getClass());
    PropertyAccessor myPropertyAccessor = null;
    try {
        myPropertyAccessor = classAccessor.getProperty("myText");
    } catch (NoSuchFieldException e) {
        fail(e.getMessage(), e);
    }
    // impostiamo selectField1
    selectField = new SelectField(myPropertyAccessor, mode, null);
    selectField.setSelectionModel(selectionModel);
    // impostiamo selectField2
    selectField2 = new SelectField(myPropertyAccessor, mode, null);
    selectField2.setSelectionModel(selectionModel2);
    // impostiamo selectField3
    selectField3 = new SelectField(myPropertyAccessor, mode, null);
    selectField3.setSelectionModel(selectionModel3);
}
Also used : PropertyAccessor(com.manydesigns.elements.reflection.PropertyAccessor) JavaClassAccessor(com.manydesigns.elements.reflection.JavaClassAccessor) ClassAccessor(com.manydesigns.elements.reflection.ClassAccessor)

Example 25 with PropertyAccessor

use of com.manydesigns.elements.reflection.PropertyAccessor in project Portofino by ManyDesigns.

the class AbstractResourceAction method filterAccordingToPermissions.

@NotNull
protected ClassAccessor filterAccordingToPermissions(ClassAccessor classAccessor) {
    Permissions permissions = SecurityLogic.calculateActualPermissions(actionInstance);
    List<String> excluded = new ArrayList<>();
    for (PropertyAccessor property : classAccessor.getProperties()) {
        RequiresPermissions requiresPermissions = property.getAnnotation(RequiresPermissions.class);
        boolean permitted = requiresPermissions == null || security.hasPermissions(getPortofinoConfiguration(), permissions, requiresPermissions);
        if (!permitted) {
            logger.debug("Property not permitted, filtering: {}", property.getName());
            excluded.add(property.getName());
        }
    }
    if (!excluded.isEmpty()) {
        return FilteredClassAccessor.exclude(classAccessor, excluded.toArray(new String[0]));
    } else {
        return classAccessor;
    }
}
Also used : PropertyAccessor(com.manydesigns.elements.reflection.PropertyAccessor) NotNull(org.jetbrains.annotations.NotNull)

Aggregations

PropertyAccessor (com.manydesigns.elements.reflection.PropertyAccessor)46 ClassAccessor (com.manydesigns.elements.reflection.ClassAccessor)13 JavaClassAccessor (com.manydesigns.elements.reflection.JavaClassAccessor)12 JSONObject (org.json.JSONObject)5 SelectionProvider (com.manydesigns.elements.options.SelectionProvider)4 Field (com.manydesigns.elements.fields.Field)3 SelectField (com.manydesigns.elements.fields.SelectField)3 OgnlTextFormat (com.manydesigns.elements.text.OgnlTextFormat)3 TableAccessor (com.manydesigns.portofino.reflection.TableAccessor)3 Session (org.hibernate.Session)3 FieldSet (com.manydesigns.elements.annotations.FieldSet)2 SelectionModel (com.manydesigns.elements.options.SelectionModel)2 QueryStringWithParameters (com.manydesigns.elements.text.QueryStringWithParameters)2 TableCriteria (com.manydesigns.portofino.persistence.TableCriteria)2 SelectionProviderReference (com.manydesigns.portofino.resourceactions.m2m.configuration.SelectionProviderReference)2 Serializable (java.io.Serializable)2 Annotation (java.lang.annotation.Annotation)2 BigDecimal (java.math.BigDecimal)2 URISyntaxException (java.net.URISyntaxException)2 HashMap (java.util.HashMap)2