=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java 2013-03-19 12:53:04 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java 2013-03-22 09:48:50 +0000 @@ -56,6 +56,14 @@ T getByUidNoAcl( String uid ); /** + * Update object. Bypasses the ACL system. + * + * @param object Object update + * @return the object with the given uid. + */ + void updateNoAcl( T object ); + + /** * Retrieves the object with the given name. * * @param name the name. === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdentifiableObjectManager.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdentifiableObjectManager.java 2013-03-19 16:20:36 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdentifiableObjectManager.java 2013-03-22 09:48:50 +0000 @@ -27,14 +27,14 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import org.hisp.dhis.common.IdentifiableObject.IdentifiableProperty; +import org.hisp.dhis.common.NameableObject.NameableProperty; + import java.util.Collection; import java.util.Date; import java.util.Map; import java.util.Set; -import org.hisp.dhis.common.IdentifiableObject.IdentifiableProperty; -import org.hisp.dhis.common.NameableObject.NameableProperty; - /** * @author Lars Helge Overland */ @@ -45,8 +45,6 @@ void update( IdentifiableObject object ); T get( Class clazz, String uid ); - - T getNoAcl( Class clazz, String uid ); T getByCode( Class clazz, String code ); @@ -57,21 +55,21 @@ Collection getAll( Class clazz ); Collection getAllSorted( Class clazz ); - + Collection getLikeName( Class clazz, String name ); - + Collection getBetween( Class clazz, int first, int max ); Collection getBetweenByName( Class clazz, String name, int first, int max ); - + Collection getByLastUpdated( Class clazz, Date lastUpdated ); Collection getByLastUpdatedSorted( Class clazz, Date lastUpdated ); - + void delete( IdentifiableObject object ); Set convertToId( Class clazz, Collection uids ); - + Map getIdMap( Class clazz, IdentifiableProperty property ); Map getIdMap( Class clazz, NameableProperty property ); @@ -83,4 +81,12 @@ IdentifiableObject getObject( int id, String simpleClassName ); int getCount( Class clazz ); + + // ------------------------------------------------------------------------- + // NO ACL + // ------------------------------------------------------------------------- + + T getNoAcl( Class clazz, String uid ); + + void updateNoAcl( T object ); } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/DefaultIdentifiableObjectManager.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/DefaultIdentifiableObjectManager.java 2013-03-19 16:21:49 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/DefaultIdentifiableObjectManager.java 2013-03-22 09:48:50 +0000 @@ -137,20 +137,6 @@ @Override @SuppressWarnings("unchecked") - public T getNoAcl( Class clazz, String uid ) - { - GenericIdentifiableObjectStore store = getIdentifiableObjectStore( clazz ); - - if ( store == null ) - { - return null; - } - - return (T) store.getByUidNoAcl( uid ); - } - - @Override - @SuppressWarnings("unchecked") public T getByCode( Class clazz, String code ) { GenericIdentifiableObjectStore store = getIdentifiableObjectStore( clazz ); @@ -280,7 +266,7 @@ } @Override - @SuppressWarnings("unchecked") + @SuppressWarnings( "unchecked" ) public Collection getByLastUpdatedSorted( Class clazz, Date lastUpdated ) { GenericIdentifiableObjectStore store = getIdentifiableObjectStore( clazz ); @@ -460,6 +446,31 @@ return 0; } + @Override + @SuppressWarnings( "unchecked" ) + public T getNoAcl( Class clazz, String uid ) + { + GenericIdentifiableObjectStore store = getIdentifiableObjectStore( clazz ); + + if ( store == null ) + { + return null; + } + + return (T) store.getByUidNoAcl( uid ); + } + + @Override + public void updateNoAcl( T object ) + { + GenericIdentifiableObjectStore store = getIdentifiableObjectStore( object.getClass() ); + + if ( store != null ) + { + store.updateNoAcl( object ); + } + } + private GenericIdentifiableObjectStore getIdentifiableObjectStore( Class clazz ) { GenericIdentifiableObjectStore store = identifiableObjectStoreMap.get( clazz ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserGroupService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserGroupService.java 2013-03-21 15:39:39 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserGroupService.java 2013-03-22 09:48:50 +0000 @@ -34,7 +34,7 @@ import java.util.List; @Transactional -public class DefaultUserGroupService +public class DefaultUserGroupService implements UserGroupService { // ------------------------------------------------------------------------- @@ -70,7 +70,6 @@ userGroupStore.update( userGroup ); } - @Override public Collection getAllUserGroups() { === modified file 'dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java' --- dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java 2013-03-21 13:53:37 +0000 +++ dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java 2013-03-22 09:48:50 +0000 @@ -189,7 +189,7 @@ * @param expressions the Criterions for the Criteria. * @return an object of the implementation Class type. */ - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") protected final T getObject( Criterion... expressions ) { return (T) getCriteria( expressions ).uniqueResult(); @@ -201,7 +201,7 @@ * @param expressions the Criterions for the Criteria. * @return a List with objects of the implementation Class type. */ - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") protected final List getList( Criterion... expressions ) { return getCriteria( expressions ).list(); @@ -265,7 +265,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public final T get( int id ) { T object = (T) sessionFactory.getCurrentSession().get( getClazz(), id ); @@ -280,7 +280,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public final T load( int id ) { T object = (T) sessionFactory.getCurrentSession().load( getClazz(), id ); @@ -315,6 +315,12 @@ } @Override + public final void updateNoAcl( T object ) + { + sessionFactory.getCurrentSession().update( object ); + } + + @Override @Deprecated public final T getByName( String name ) { @@ -372,7 +378,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public final List getAll() { Query query = sharingEnabled() ? getQueryAllAcl() : getQueryAll(); @@ -399,7 +405,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllEqName( String name ) { Query query = sharingEnabled() ? getQueryAllEqNameAcl( name ) : getQueryAllEqName( name ); @@ -431,7 +437,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllEqNameIgnoreCase( String name ) { Query query = sharingEnabled() ? getQueryAllEqNameAclIgnoreCase( name ) : getQueryAllEqNameIgnoreCase( name ); @@ -463,7 +469,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllEqShortName( String shortName ) { Query query = sharingEnabled() ? getQueryAllEqShortNameAcl( shortName ) : getQueryAllEqShortName( shortName ); @@ -495,7 +501,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllEqShortNameIgnoreCase( String shortName ) { Query query = sharingEnabled() ? getQueryAllEqShortNameAclIgnoreCase( shortName ) : getQueryAllEqShortNameIgnoreCase( shortName ); @@ -527,7 +533,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllLikeName( String name ) { Query query = sharingEnabled() ? getQueryAllLikeNameAcl( name ) : getQueryAllLikeName( name ); @@ -559,7 +565,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public final List getAllOrderedName() { Query query = sharingEnabled() ? getQueryAllOrderedNameAcl() : getQueryAllOrderedName(); @@ -587,7 +593,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllOrderedName( int first, int max ) { Query query = sharingEnabled() ? getQueryAllOrderedNameAcl() : getQueryAllOrderedName(); @@ -599,7 +605,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllOrderedLastUpdated( int first, int max ) { Query query = sharingEnabled() ? getQueryAllOrderedLastUpdatedAcl() : getQueryAllOrderedLastUpdated(); @@ -630,7 +636,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllLikeNameOrderedName( String name, int first, int max ) { Query query = sharingEnabled() ? getQueryAllLikeNameOrderedNameAcl( name ) : getQueryAllLikeNameOrderedName( name ); @@ -753,7 +759,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllGeLastUpdated( Date lastUpdated ) { Query query = sharingEnabled() ? getQueryAllGeLastUpdatedAcl( lastUpdated ) : getQueryAllGeLastUpdated( lastUpdated ); @@ -785,7 +791,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllGeCreated( Date created ) { Query query = sharingEnabled() ? getQueryAllGeCreatedAcl( created ) : getQueryAllGeCreated( created ); @@ -817,7 +823,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getAllGeLastUpdatedOrderedName( Date lastUpdated ) { Query query = sharingEnabled() ? getQueryAllGeLastUpdatedOrderedNameAcl( lastUpdated ) : getQueryAllGeLastUpdatedOrderedName( lastUpdated ); @@ -849,7 +855,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public List getByUser( User user ) { Query query = getQuery( "from " + clazz.getName() + " c where user = :user" ); === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/SharingController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/SharingController.java 2013-03-22 05:16:10 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/SharingController.java 2013-03-22 09:48:50 +0000 @@ -207,7 +207,7 @@ } } - manager.update( object ); + manager.updateNoAcl( object ); StringBuilder builder = new StringBuilder();