=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/SharingUtils.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/SharingUtils.java 2013-03-13 14:19:05 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/SharingUtils.java 2013-03-14 05:10:11 +0000 @@ -273,7 +273,22 @@ */ public static boolean canManage( User user, IdentifiableObject object ) { - return sharingOverrideAuthority( user ) || canWrite( user, object ); + if ( sharingOverrideAuthority( user ) || user.equals( object.getUser() ) || + AccessStringHelper.canWrite( object.getPublicAccess() ) ) + { + return true; + } + + for ( UserGroupAccess userGroupAccess : object.getUserGroupAccesses() ) + { + if ( AccessStringHelper.canWrite( userGroupAccess.getAccess() ) + && userGroupAccess.getUserGroup().getMembers().contains( user ) ) + { + return true; + } + } + + return false; } private static boolean sharingOverrideAuthority( User user )