package com.constellio.app.modules.rm.extensions; import static java.util.Arrays.asList; import com.constellio.app.modules.rm.constants.RMRoles; import com.constellio.app.modules.rm.services.RMSchemasRecordsServices; import com.constellio.model.entities.records.Record; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.extensions.behaviors.RecordExtension; import com.constellio.model.extensions.events.records.RecordInCreationBeforeValidationAndAutomaticValuesCalculationEvent; import com.constellio.model.extensions.events.records.RecordInModificationBeforeValidationAndAutomaticValuesCalculationEvent; import com.constellio.model.services.factories.ModelLayerFactory; import com.constellio.model.services.search.SearchServices; public class RMUserRecordExtension extends RecordExtension { String collection; ModelLayerFactory modelLayerFactory; RMSchemasRecordsServices rm; SearchServices searchServices; public RMUserRecordExtension(String collection, ModelLayerFactory modelLayerFactory) { this.modelLayerFactory = modelLayerFactory; this.collection = collection; this.rm = new RMSchemasRecordsServices(collection, modelLayerFactory); } @Override public void recordInModificationBeforeValidationAndAutomaticValuesCalculation( RecordInModificationBeforeValidationAndAutomaticValuesCalculationEvent event) { if (event.isSchemaType(User.SCHEMA_TYPE)) { handle(event.getRecord()); } } @Override public void recordInCreationBeforeValidationAndAutomaticValuesCalculation( RecordInCreationBeforeValidationAndAutomaticValuesCalculationEvent event) { if (event.isSchemaType(User.SCHEMA_TYPE)) { handle(event.getRecord()); } } private void handle(Record record) { User user = rm.wrapUser(record); if (user.getUserRoles() == null || user.getUserRoles().isEmpty()) { user.setUserRoles(asList(RMRoles.USER)); } } }