=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/User.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/User.java 2014-05-12 16:37:39 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/User.java 2014-06-17 12:45:03 +0000 @@ -28,12 +28,12 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.util.ArrayList; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonView; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import org.apache.commons.collections.CollectionUtils; import org.hisp.dhis.attribute.AttributeValue; import org.hisp.dhis.common.BaseIdentifiableObject; @@ -45,17 +45,16 @@ import org.hisp.dhis.common.view.ExportView; import org.hisp.dhis.organisationunit.OrganisationUnit; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonView; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** * @author Nguyen Hong Duc */ -@JacksonXmlRootElement( localName = "user", namespace = DxfNamespaces.DXF_2_0 ) +@JacksonXmlRootElement(localName = "user", namespace = DxfNamespaces.DXF_2_0) public class User extends BaseIdentifiableObject { @@ -108,7 +107,7 @@ */ @Scanned private Set organisationUnits = new HashSet(); - + /** * Organisation units for data output and data analysis / read operations. */ @@ -124,7 +123,7 @@ * Ordered favorite apps. */ private List apps = new ArrayList(); - + // ------------------------------------------------------------------------- // Logic // ------------------------------------------------------------------------- @@ -156,7 +155,7 @@ addOrganisationUnit( unit ); } } - + /** * Returns the concatenated first name and surname. */ @@ -200,7 +199,7 @@ { return !CollectionUtils.isEmpty( organisationUnits ); } - + public boolean hasDataViewOrganisationUnit() { return !CollectionUtils.isEmpty( dataViewOrganisationUnits ); @@ -210,12 +209,12 @@ { return CollectionUtils.isEmpty( dataViewOrganisationUnits ) ? null : dataViewOrganisationUnits.iterator().next(); } - + public boolean hasDataViewOrganisationUnitWithFallback() { return hasDataViewOrganisationUnit() || hasOrganisationUnit(); } - + /** * Returns the first of the data view organisation units associated with the * user. If none, returns the first of the data capture organisation units. @@ -226,7 +225,7 @@ OrganisationUnit dataViewOrgUnit = getDataViewOrganisationUnit(); return dataViewOrgUnit != null ? dataViewOrgUnit : getOrganisationUnit(); } - + public String getOrganisationUnitsName() { return IdentifiableObjectUtils.join( organisationUnits ); @@ -236,7 +235,7 @@ { return userCredentials != null ? userCredentials.getUsername() : null; } - + public boolean isSuper() { return userCredentials != null && userCredentials.isSuper(); @@ -253,8 +252,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getFirstName() { return firstName; @@ -266,8 +265,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getSurname() { return surname; @@ -279,8 +278,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getEmail() { return email; @@ -292,8 +291,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getJobTitle() { return jobTitle; @@ -305,8 +304,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getPhoneNumber() { return phoneNumber; @@ -318,8 +317,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getIntroduction() { return introduction; @@ -331,8 +330,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getGender() { return gender; @@ -344,8 +343,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public Date getBirthday() { return birthday; @@ -357,8 +356,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getNationality() { return nationality; @@ -370,8 +369,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getEmployer() { return employer; @@ -383,8 +382,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getEducation() { return education; @@ -396,8 +395,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getInterests() { return interests; @@ -409,8 +408,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public String getLanguages() { return languages; @@ -422,8 +421,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public Date getLastCheckedInterpretations() { return lastCheckedInterpretations; @@ -435,8 +434,8 @@ } @JsonProperty - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 ) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlProperty(namespace = DxfNamespaces.DXF_2_0) public UserCredentials getUserCredentials() { return userCredentials; @@ -448,10 +447,10 @@ } @JsonProperty - @JsonSerialize( contentAs = BaseIdentifiableObject.class ) - @JsonView( { DetailedView.class } ) - @JacksonXmlElementWrapper( localName = "userGroups", namespace = DxfNamespaces.DXF_2_0 ) - @JacksonXmlProperty( localName = "userGroup", namespace = DxfNamespaces.DXF_2_0 ) + @JsonSerialize(contentAs = BaseIdentifiableObject.class) + @JsonView({ DetailedView.class }) + @JacksonXmlElementWrapper(localName = "userGroups", namespace = DxfNamespaces.DXF_2_0) + @JacksonXmlProperty(localName = "userGroup", namespace = DxfNamespaces.DXF_2_0) public Set getGroups() { return groups; @@ -463,10 +462,10 @@ } @JsonProperty - @JsonSerialize( contentAs = BaseIdentifiableObject.class ) - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlElementWrapper( localName = "organisationUnits", namespace = DxfNamespaces.DXF_2_0 ) - @JacksonXmlProperty( localName = "organisationUnit", namespace = DxfNamespaces.DXF_2_0 ) + @JsonSerialize(contentAs = BaseIdentifiableObject.class) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlElementWrapper(localName = "organisationUnits", namespace = DxfNamespaces.DXF_2_0) + @JacksonXmlProperty(localName = "organisationUnit", namespace = DxfNamespaces.DXF_2_0) public Set getOrganisationUnits() { return organisationUnits; @@ -478,10 +477,10 @@ } @JsonProperty - @JsonSerialize( contentAs = BaseIdentifiableObject.class ) - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlElementWrapper( localName = "dataViewOrganisationUnits", namespace = DxfNamespaces.DXF_2_0 ) - @JacksonXmlProperty( localName = "dataViewOrganisationUnit", namespace = DxfNamespaces.DXF_2_0 ) + @JsonSerialize(contentAs = BaseIdentifiableObject.class) + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlElementWrapper(localName = "dataViewOrganisationUnits", namespace = DxfNamespaces.DXF_2_0) + @JacksonXmlProperty(localName = "dataViewOrganisationUnit", namespace = DxfNamespaces.DXF_2_0) public Set getDataViewOrganisationUnits() { return dataViewOrganisationUnits; @@ -492,10 +491,10 @@ this.dataViewOrganisationUnits = dataViewOrganisationUnits; } - @JsonProperty( value = "attributeValues" ) - @JsonView( { DetailedView.class, ExportView.class } ) - @JacksonXmlElementWrapper( localName = "attributeValues", namespace = DxfNamespaces.DXF_2_0) - @JacksonXmlProperty( localName = "attributeValue", namespace = DxfNamespaces.DXF_2_0) + @JsonProperty(value = "attributeValues") + @JsonView({ DetailedView.class, ExportView.class }) + @JacksonXmlElementWrapper(localName = "attributeValues", namespace = DxfNamespaces.DXF_2_0) + @JacksonXmlProperty(localName = "attributeValue", namespace = DxfNamespaces.DXF_2_0) public Set getAttributeValues() { return attributeValues; @@ -525,10 +524,19 @@ { User user = (User) other; - surname = user.getSurname() == null ? surname : user.getSurname(); - firstName = user.getFirstName() == null ? firstName : user.getFirstName(); - email = user.getEmail() == null ? email : user.getEmail(); - phoneNumber = user.getPhoneNumber() == null ? phoneNumber : user.getPhoneNumber(); + email = user.getEmail(); + phoneNumber = user.getPhoneNumber(); + jobTitle = user.getJobTitle(); + introduction = user.getIntroduction(); + gender = user.getGender(); + birthday = user.getBirthday(); + nationality = user.getNationality(); + employer = user.getEmployer(); + education = user.getEducation(); + interests = user.getInterests(); + languages = user.getLanguages(); + lastCheckedInterpretations = user.getLastCheckedInterpretations(); + userCredentials = user.getUserCredentials() == null ? userCredentials : user.getUserCredentials(); attributeValues.clear(); === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java 2014-06-12 13:35:43 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java 2014-06-17 12:45:03 +0000 @@ -707,18 +707,18 @@ objectBridge.updateObject( persistedObject ); - if ( object instanceof User && !options.isDryRun() ) - { - Map> collectionFieldsUserCredentials = detachCollectionFields( userCredentials ); - - ((User) persistedObject).getUserCredentials().mergeWith( userCredentials ); - reattachCollectionFields( ((User) persistedObject).getUserCredentials(), collectionFieldsUserCredentials ); - - sessionFactory.getCurrentSession().saveOrUpdate( ((User) persistedObject).getUserCredentials() ); - } - if ( !options.isDryRun() ) { + if ( object instanceof User ) + { + Map> collectionFieldsUserCredentials = detachCollectionFields( userCredentials ); + + ((User) persistedObject).getUserCredentials().mergeWith( userCredentials ); + reattachCollectionFields( ((User) persistedObject).getUserCredentials(), collectionFieldsUserCredentials ); + + sessionFactory.getCurrentSession().saveOrUpdate( ((User) persistedObject).getUserCredentials() ); + } + nonIdentifiableObjects.save( persistedObject ); }