@Override public <T extends IdentifiableObject> void clearSharing( T object, User user ) { if ( object == null || !isShareable( object.getClass() ) || user == null ) { return; } BaseIdentifiableObject baseIdentifiableObject = (BaseIdentifiableObject) object; baseIdentifiableObject.setUser( user ); baseIdentifiableObject.setPublicAccess( AccessStringHelper.DEFAULT ); baseIdentifiableObject.setExternalAccess( false ); object.getUserAccesses().clear(); object.getUserGroupAccesses().clear(); }
private void prepareObject( BaseIdentifiableObject object, ObjectBundle bundle, ObjectBundleParams params ) { if ( StringUtils.isEmpty( object.getPublicAccess() ) ) { aclService.resetSharing( object, bundle.getUser() ); } if ( object.getUser() == null || bundle.getPreheat().get( params.getPreheatIdentifier(), User.class, object.getUser().getUid() ) == null ) { object.setUser( bundle.getUser() ); } if ( object.getUserAccesses() == null ) { object.setUserAccesses( new HashSet<>() ); } if ( object.getUserGroupAccesses() == null ) { object.setUserGroupAccesses( new HashSet<>() ); } object.setLastUpdatedBy( bundle.getUser() ); } }
@Override public <T extends IdentifiableObject> void resetSharing( T object, User user ) { if ( object == null || !isShareable( object.getClass() ) || user == null ) { return; } BaseIdentifiableObject baseIdentifiableObject = (BaseIdentifiableObject) object; baseIdentifiableObject.setPublicAccess( AccessStringHelper.DEFAULT ); baseIdentifiableObject.setExternalAccess( false ); if ( object.getUser() == null ) { baseIdentifiableObject.setUser( user ); } if ( canMakePublic( user, object.getClass() ) ) { if ( defaultPublic( object.getClass() ) ) { baseIdentifiableObject.setPublicAccess( AccessStringHelper.READ_WRITE ); } } object.getUserAccesses().clear(); object.getUserGroupAccesses().clear(); }
identifiableObject.setUser( user );
@Override public void update( T object, User user ) { String username = user != null ? user.getUsername() : "system-process"; if ( IdentifiableObject.class.isInstance( object ) ) { object.setAutoFields(); BaseIdentifiableObject identifiableObject = object; identifiableObject.setAutoFields(); identifiableObject.setLastUpdatedBy( user ); if ( identifiableObject.getUser() == null ) { identifiableObject.setUser( user ); } } if ( !isUpdateAllowed( object, user ) ) { AuditLogUtil.infoWrapper( log, username, object, AuditLogUtil.ACTION_UPDATE_DENIED ); throw new UpdateAccessDeniedException( object.toString() ); } AuditLogUtil.infoWrapper( log, username, object, AuditLogUtil.ACTION_UPDATE ); if ( object != null ) { getSession().update( object ); } if ( MetadataObject.class.isInstance( object ) ) { deletedObjectService.deleteDeletedObjects( new DeletedObjectQuery( object ) ); } }
((BaseIdentifiableObject) object).setUser( bundle.getOverrideUser() );
((BaseIdentifiableObject) persistedObject).setUser( bundle.getOverrideUser() );