=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/preheat/Preheat.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/preheat/Preheat.java 2016-02-19 02:27:16 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/preheat/Preheat.java 2016-02-24 06:10:49 +0000 @@ -32,6 +32,7 @@ import org.hisp.dhis.dataelement.DataElementCategory; import org.hisp.dhis.dataelement.DataElementCategoryCombo; import org.hisp.dhis.dataelement.DataElementCategoryOption; +import org.hisp.dhis.user.UserCredentials; import java.util.ArrayList; import java.util.Collection; @@ -48,6 +49,8 @@ private Map, IdentifiableObject> defaults = new HashMap<>(); + private Map usernames = new HashMap<>(); + public Preheat() { } @@ -222,6 +225,16 @@ this.defaults = defaults; } + public Map getUsernames() + { + return usernames; + } + + public void setUsernames( Map usernames ) + { + this.usernames = usernames; + } + public static boolean isDefaultClass( IdentifiableObject object ) { return (DataElementCategory.class.isInstance( object ) || DataElementCategoryOption.class.isInstance( object ) === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/preheat/DefaultPreheatService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/preheat/DefaultPreheatService.java 2016-02-23 10:58:58 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/preheat/DefaultPreheatService.java 2016-02-24 06:10:49 +0000 @@ -75,6 +75,7 @@ { Preheat preheat = new Preheat(); preheat.setDefaults( manager.getDefaults() ); + preheat.setUsernames( getUsernames() ); if ( PreheatMode.ALL == params.getPreheatMode() ) { @@ -392,4 +393,19 @@ } } ); } + + @SuppressWarnings( "unchecked" ) + private Map getUsernames() + { + Map userCredentialsMap = new HashMap<>(); + Query query = Query.from( schemaService.getDynamicSchema( UserCredentials.class ) ); + List userCredentials = (List) queryService.query( query ); + + for ( UserCredentials uc : userCredentials ) + { + userCredentialsMap.put( uc.getUsername(), uc ); + } + + return userCredentialsMap; + } } === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata2/objectbundle/hooks/AbstractObjectBundleHook.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata2/objectbundle/hooks/AbstractObjectBundleHook.java 2016-02-23 10:32:50 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata2/objectbundle/hooks/AbstractObjectBundleHook.java 2016-02-24 06:10:49 +0000 @@ -29,13 +29,26 @@ */ import org.hisp.dhis.common.IdentifiableObject; +import org.hisp.dhis.common.IdentifiableObjectManager; import org.hisp.dhis.dxf2.metadata2.objectbundle.ObjectBundle; +import org.hisp.dhis.preheat.PreheatService; +import org.hisp.dhis.schema.validation.SchemaValidator; +import org.springframework.beans.factory.annotation.Autowired; /** * @author Morten Olav Hansen */ public class AbstractObjectBundleHook implements ObjectBundleHook { + @Autowired + protected IdentifiableObjectManager manager; + + @Autowired + protected PreheatService preheatService; + + @Autowired + protected SchemaValidator validator; + @Override public void preCreate( IdentifiableObject identifiableObject, ObjectBundle objectBundle ) { === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata2/objectbundle/hooks/UserObjectBundleHook.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata2/objectbundle/hooks/UserObjectBundleHook.java 2016-02-23 10:32:50 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata2/objectbundle/hooks/UserObjectBundleHook.java 2016-02-24 06:10:49 +0000 @@ -29,10 +29,9 @@ */ import org.hisp.dhis.common.IdentifiableObject; -import org.hisp.dhis.common.IdentifiableObjectManager; import org.hisp.dhis.dxf2.metadata2.objectbundle.ObjectBundle; import org.hisp.dhis.user.User; -import org.springframework.beans.factory.annotation.Autowired; +import org.hisp.dhis.user.UserCredentials; import org.springframework.stereotype.Component; /** @@ -41,9 +40,6 @@ @Component public class UserObjectBundleHook extends AbstractObjectBundleHook { - @Autowired - private IdentifiableObjectManager manager; - @Override public void preCreate( IdentifiableObject identifiableObject, ObjectBundle objectBundle ) { @@ -51,5 +47,13 @@ { return; } + + User user = (User) identifiableObject; + UserCredentials userCredentials = user.getUserCredentials(); + + preheatService.connectReferences( userCredentials, objectBundle.getPreheat(), objectBundle.getPreheatIdentifier() ); + manager.save( userCredentials ); + + user.setUserCredentials( userCredentials ); } }