Skip to content

Commit 0b2f806

Browse files
YXMEseboo
authored andcommitted
LUT-28558: Store file key and fileservice origin in Responses
1 parent 2f796d3 commit 0b2f806

14 files changed

+130
-84
lines changed

src/java/fr/paris/lutece/plugins/genericattributes/business/GenAttFileItem.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public class GenAttFileItem implements FileItem
5353
private byte [ ] _bValue;
5454
private String _strFileName;
5555
private String _strFieldName;
56+
private String _strOrigin;
5657
private int _nIdResponse;
5758
private FileItemHeaders _fileItemHeaders;
5859

@@ -80,11 +81,12 @@ public GenAttFileItem( byte [ ] bValue, String strFileName )
8081
* @param nIdResponse
8182
* The id of the response associated with this file item if any
8283
*/
83-
public GenAttFileItem( byte [ ] bValue, String strFileName, int nIdResponse )
84+
public GenAttFileItem( byte [ ] bValue, String strFileName, int nIdResponse, String strOrigin )
8485
{
8586
_bValue = bValue;
8687
_strFileName = strFileName;
8788
_nIdResponse = nIdResponse;
89+
_strOrigin = strOrigin;
8890
}
8991

9092
/**
@@ -99,12 +101,14 @@ public GenAttFileItem( byte [ ] bValue, String strFileName, int nIdResponse )
99101
* @param nIdResponse
100102
* The id of the response associated with this file item if any
101103
*/
102-
public GenAttFileItem( byte [ ] bValue, String strFileName, String strFieldName, int nIdResponse )
104+
public GenAttFileItem( byte [ ] bValue, String strFileName, String strFieldName, int nIdResponse, String strOrigin )
103105
{
104106
_bValue = bValue;
105107
_strFileName = strFileName;
106108
_strFieldName = strFieldName;
107109
_nIdResponse = nIdResponse;
110+
_strOrigin = strOrigin;
111+
108112
}
109113

110114
/**
@@ -179,6 +183,14 @@ public long getSize( )
179183
return _bValue.length;
180184
}
181185

186+
/**
187+
* {@inheritDoc}
188+
*/
189+
public String getOrigin( )
190+
{
191+
return _strOrigin;
192+
}
193+
182194
/**
183195
* {@inheritDoc}
184196
*/
@@ -254,6 +266,11 @@ public void setIdResponse( int nIdResponse )
254266
_nIdResponse = nIdResponse;
255267
}
256268

269+
public void setOrigin( String strOrigin )
270+
{
271+
_strOrigin = strOrigin;
272+
}
273+
257274
/**
258275
* {@inheritDoc}
259276
*/

src/java/fr/paris/lutece/plugins/genericattributes/business/Response.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public class Response implements Serializable
7373
private String _strResponseValue;
7474
private int _nStatus;
7575
private File _file;
76+
7677
private boolean _bIsImage;
7778
private int _nSortOrder;
7879

@@ -108,6 +109,7 @@ public Response( Response response )
108109
_file.setExtension( file.getExtension( ) );
109110
_file.setIdFile( file.getIdFile( ) );
110111
_file.setMimeType( file.getMimeType( ) );
112+
_file.setOrigin( file.getOrigin( ) );
111113
_file.setSize( file.getSize( ) );
112114
_file.setTitle( file.getTitle( ) );
113115

@@ -324,7 +326,8 @@ public int getSortOrder( )
324326
}
325327

326328
/**
327-
* @param nSortOrder the nSortOrder to set
329+
* @param nSortOrder
330+
* the nSortOrder to set
328331
*/
329332
public void setSortOrder( int nSortOrder )
330333
{

src/java/fr/paris/lutece/plugins/genericattributes/business/ResponseDAO.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import java.util.stream.Collectors;
4040

4141
import fr.paris.lutece.portal.business.file.File;
42+
import fr.paris.lutece.portal.service.file.FileService;
4243
import fr.paris.lutece.portal.service.plugin.Plugin;
4344
import fr.paris.lutece.util.sql.DAOUtil;
4445

@@ -49,14 +50,14 @@ public final class ResponseDAO implements IResponseDAO
4950
{
5051
// Constants
5152
private static final String SQL_QUERY_SELECT_RESPONSE = "SELECT resp.id_response, resp.response_value, type.class_name, ent.id_type, ent.id_entry, ent.title, ent.code, "
52-
+ " resp.iteration_number, resp.id_field, resp.id_file, resp.status, resp.sort_order FROM genatt_response resp";
53+
+ " resp.iteration_number, resp.id_field, resp.file_key, resp.file_store, resp.status, resp.sort_order FROM genatt_response resp";
5354
private static final String SQL_QUERY_FIND_BY_PRIMARY_KEY = SQL_QUERY_SELECT_RESPONSE + ", genatt_entry ent, genatt_entry_type type "
5455
+ " WHERE resp.id_response = ? and resp.id_entry = ent.id_entry and ent.id_type = type.id_type ";
5556
private static final String SQL_QUERY_SELECT_RESPONSE_BY_FILTER = SQL_QUERY_SELECT_RESPONSE + ", genatt_entry ent, genatt_entry_type type "
5657
+ " WHERE resp.id_entry = ent.id_entry and ent.id_type = type.id_type ";
5758
private static final String SQL_QUERY_INSERT = "INSERT INTO genatt_response ( "
58-
+ " response_value, id_entry, iteration_number, id_field, id_file, status,sort_order ) VALUES ( ?,?,?,?,?,?,?)";
59-
private static final String SQL_QUERY_UPDATE = "UPDATE genatt_response SET response_value = ?, id_entry = ?, iteration_number = ?, id_field = ?, id_file = ?, status = ?, sort_order = ? WHERE id_response = ?";
59+
+ " response_value, id_entry, iteration_number, id_field, file_key, file_store, status,sort_order ) VALUES ( ?,?,?,?,?,?,?,?)";
60+
private static final String SQL_QUERY_UPDATE = "UPDATE genatt_response SET response_value = ?, id_entry = ?, iteration_number = ?, id_field = ?,file_key = ?, file_store = ?, status = ?, sort_order = ? WHERE id_response = ?";
6061
private static final String SQL_QUERY_DELETE = "DELETE FROM genatt_response WHERE id_response = ? ";
6162
private static final String SQL_QUERY_SELECT_COUNT_RESPONSE_BY_ID_ENTRY = " SELECT field.title, COUNT( resp.id_response )"
6263
+ " FROM genatt_entry e LEFT JOIN genatt_field field ON ( e.id_entry = field.id_entry ) LEFT JOIN genatt_response resp on ( resp.id_field = field.id_field ) "
@@ -103,7 +104,9 @@ public synchronized void insert( Response response, Plugin plugin )
103104

104105
if ( response.getFile( ) != null )
105106
{
106-
daoUtil.setInt( nIndex++, response.getFile( ).getIdFile( ) );
107+
daoUtil.setString( nIndex++, response.getFile( ).getFileKey( ) );
108+
daoUtil.setString( nIndex++, response.getFile( ).getOrigin( ) == null ? FileService.getInstance( ).getFileStoreServiceProvider( ).getName( )
109+
: response.getFile( ).getOrigin( ) );
107110
}
108111
else
109112
{
@@ -183,7 +186,9 @@ public void store( Response response, Plugin plugin )
183186

184187
if ( response.getFile( ) != null )
185188
{
186-
daoUtil.setInt( nIndex++, response.getFile( ).getIdFile( ) );
189+
daoUtil.setString( nIndex++, response.getFile( ).getFileKey( ) );
190+
daoUtil.setString( nIndex++, response.getFile( ).getOrigin( ) == null ? FileService.getInstance( ).getFileStoreServiceProvider( ).getName( )
191+
: response.getFile( ).getOrigin( ) );
187192
}
188193
else
189194
{
@@ -192,7 +197,7 @@ public void store( Response response, Plugin plugin )
192197

193198
daoUtil.setInt( nIndex++, response.getStatus( ) );
194199
daoUtil.setInt( nIndex++, response.getSortOrder( ) );
195-
200+
196201
daoUtil.setInt( nIndex, response.getIdResponse( ) );
197202
daoUtil.executeUpdate( );
198203
}
@@ -240,7 +245,7 @@ public List<Response> selectListByFilter( ResponseFilter filter, Plugin plugin )
240245
sb.append( ")" );
241246
sbSQL.append( sb.toString( ) );
242247
}
243-
248+
244249
if ( filter.containsListIdEntry( ) )
245250
{
246251
StringBuilder sb = new StringBuilder( SQL_FILTER_MULTI_ID_ENTRY + " (" );
@@ -386,7 +391,8 @@ private Response getResponseFromDAOUtil( DAOUtil daoUtil )
386391
if ( daoUtil.getObject( nIndex ) != null )
387392
{
388393
File file = new File( );
389-
file.setIdFile( daoUtil.getInt( nIndex ) );
394+
file.setFileKey( daoUtil.getString( nIndex++ ) );
395+
file.setOrigin( daoUtil.getString( nIndex ) );
390396
response.setFile( file );
391397
}
392398

src/java/fr/paris/lutece/plugins/genericattributes/business/ResponseHome.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public static void create( Response response )
7474
{
7575
if ( response.getFile( ) != null )
7676
{
77-
GenericAttributeFileService.getInstance().save( response.getFile( ) );
77+
response.getFile( ).setFileKey( GenericAttributeFileService.getInstance( ).save( response.getFile( ) ) );
7878
}
7979

8080
_dao.insert( response, getPlugin( ) );
@@ -133,7 +133,7 @@ public static void remove( int nIdResponse )
133133
{
134134
if ( response.getFile( ) != null )
135135
{
136-
GenericAttributeFileService.getInstance().delete( response.getFile( ).getFileKey( ) );
136+
GenericAttributeFileService.getInstance( ).delete( response.getFile( ).getFileKey( ), response.getFile( ).getOrigin( ) );
137137
}
138138

139139
_dao.delete( nIdResponse, getPlugin( ) );

src/java/fr/paris/lutece/plugins/genericattributes/service/GenericAttributesPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public void init( )
6060
{
6161
ImageResourceManager.registerProvider( new ResponseImageResourceProvider( ) );
6262
}
63-
63+
6464
FileImagePublicService.init( );
6565
}
6666
}

src/java/fr/paris/lutece/plugins/genericattributes/service/anonymization/FileDeleteAnonymizationService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public void anonymizeResponse( Entry entry, Response response, boolean first )
5252
String pattern = getPattern( entry );
5353
if ( pattern.contains( _wildcard ) && response.getFile( ) != null )
5454
{
55-
GenericAttributeFileService.getInstance().delete( response.getFile( ).getFileKey( ) );
55+
GenericAttributeFileService.getInstance( ).delete( response.getFile( ).getFileKey( ), response.getFile( ).getOrigin( ) );
5656
response.setFile( null );
5757
}
5858
}

src/java/fr/paris/lutece/plugins/genericattributes/service/anonymization/FileReplaceAnonymizationService.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
import fr.paris.lutece.plugins.genericattributes.business.Response;
4545
import fr.paris.lutece.plugins.genericattributes.service.file.GenericAttributeFileService;
4646
import fr.paris.lutece.portal.business.file.File;
47-
import fr.paris.lutece.portal.business.file.FileHome;
4847
import fr.paris.lutece.portal.service.util.AppLogService;
4948
import fr.paris.lutece.portal.service.util.AppPathService;
5049

@@ -64,11 +63,11 @@ public void anonymizeResponse( Entry entry, Response response, boolean first )
6463
String pattern = getPattern( entry );
6564
if ( pattern.contains( _wildcard ) && response.getFile( ) != null )
6665
{
67-
File responseFile = GenericAttributeFileService.getInstance().load( response.getFile( ).getFileKey( ) );
68-
66+
File responseFile = GenericAttributeFileService.getInstance( ).load( response.getFile( ).getFileKey( ), response.getFile( ).getOrigin( ) );
67+
6968
if ( responseFile != null )
7069
{
71-
String fileType = FilenameUtils.getExtension( responseFile.getTitle( ) );
70+
String fileType = FilenameUtils.getExtension( responseFile.getTitle( ) );
7271

7372
try
7473
{
@@ -81,14 +80,14 @@ public void anonymizeResponse( Entry entry, Response response, boolean first )
8180
catch( IOException e )
8281
{
8382
AppLogService.error( "Error while replacing file", e );
84-
GenericAttributeFileService.getInstance().delete( response.getFile( ).getFileKey( ) );
83+
GenericAttributeFileService.getInstance( ).delete( response.getFile( ).getFileKey( ), response.getFile( ).getOrigin( ) );
8584
response.setFile( null );
8685
}
87-
}
88-
else
89-
{
90-
response.setFile( null );
91-
}
86+
}
87+
else
88+
{
89+
response.setFile( null );
90+
}
9291
}
9392
}
9493
}

src/java/fr/paris/lutece/plugins/genericattributes/service/entrytype/AbstractEntryTypeFile.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
import fr.paris.lutece.plugins.genericattributes.service.file.GenericAttributeFileService;
4343
import fr.paris.lutece.plugins.genericattributes.service.upload.AbstractGenAttUploadHandler;
4444
import fr.paris.lutece.portal.business.file.File;
45-
import fr.paris.lutece.portal.business.file.FileHome;
4645
import fr.paris.lutece.portal.business.physicalfile.PhysicalFile;
4746
import fr.paris.lutece.portal.web.upload.MultipartHttpServletRequest;
4847
import fr.paris.lutece.util.filesystem.FileSystemUtil;
@@ -79,7 +78,7 @@ public GenericAttributeError getResponseData( Entry entry, HttpServletRequest re
7978
}
8079

8180
String strAttributeName = getAttributeName( entry, request );
82-
81+
8382
if ( strAttributeName == null )
8483
{
8584
return null;
@@ -202,7 +201,7 @@ private Response getResponseFromFile( FileItem fileItem, Entry entry, boolean bC
202201
{
203202
Response response = ResponseHome.findByPrimaryKey( genAttFileItem.getIdResponse( ) );
204203
response.setEntry( entry );
205-
response.setFile( GenericAttributeFileService.getInstance().load( response.getFile( ).getFileKey( ) ) );
204+
response.setFile( GenericAttributeFileService.getInstance( ).load( response.getFile( ).getFileKey( ), response.getFile( ).getOrigin( ) ) );
206205

207206
if ( bCreatePhysicalFile )
208207
{
@@ -218,6 +217,7 @@ private Response getResponseFromFile( FileItem fileItem, Entry entry, boolean bC
218217

219218
File file = new File( );
220219
file.setTitle( fileItem.getName( ) );
220+
file.setOrigin( GenericAttributeFileService.getInstance( ).getName( ) );
221221
file.setSize( ( fileItem.getSize( ) < Integer.MAX_VALUE ) ? (int) fileItem.getSize( ) : Integer.MAX_VALUE );
222222

223223
if ( bCreatePhysicalFile )

src/java/fr/paris/lutece/plugins/genericattributes/service/entrytype/AbstractEntryTypeGalleryImage.java

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@
6363
public abstract class AbstractEntryTypeGalleryImage extends EntryTypeService
6464
{
6565
// PARAMETERS
66-
protected static final String PARAMETER_ID_RESPONSE = "id_response";
67-
protected static final String PARAMETER_CODE_GALLERY = "code_gallery";
66+
protected static final String PARAMETER_ID_RESPONSE = "id_response";
67+
protected static final String PARAMETER_CODE_GALLERY = "code_gallery";
6868

6969
// MESSAGES
7070
protected static final String ERROR_FIELD_CODE_GALLERY = "genericattributes.createEntry.labelChooseGalleryImage";
@@ -108,12 +108,12 @@ public GenericAttributeError getResponseData( Entry entry, HttpServletRequest re
108108

109109
// Upload file from gallery
110110
String strFileGallery = request.getParameter( strAttributeName );
111-
111+
112112
if ( StringUtils.isNotEmpty( strFileGallery ) )
113113
{
114114
FileImagePublicService.init( );
115115

116-
File file = GenericAttributeFileService.getInstance().load( strFileGallery );
116+
File file = GenericAttributeFileService.getInstance( ).load( strFileGallery, GenericAttributeFileService.getInstance( ).getName( ) );
117117

118118
Response response = new Response( );
119119
response.setEntry( entry );
@@ -123,22 +123,25 @@ public GenericAttributeError getResponseData( Entry entry, HttpServletRequest re
123123
listResponse.add( response );
124124

125125
return null;
126-
} else if ( StringUtils.isEmpty( strFileGallery ) && entry.isMandatory( ) )
127-
{
128-
GenericAttributeError genAttError = new MandatoryError( entry, locale );
126+
}
127+
else
128+
if ( StringUtils.isEmpty( strFileGallery ) && entry.isMandatory( ) )
129+
{
130+
GenericAttributeError genAttError = new MandatoryError( entry, locale );
129131

130-
Response response = new Response( );
131-
response.setEntry( entry );
132-
listResponse.add( response );
133-
return genAttError;
134-
} else
135-
{
136-
Response response = new Response( );
137-
response.setEntry( entry );
138-
listResponse.add( response );
132+
Response response = new Response( );
133+
response.setEntry( entry );
134+
listResponse.add( response );
135+
return genAttError;
136+
}
137+
else
138+
{
139+
Response response = new Response( );
140+
response.setEntry( entry );
141+
listResponse.add( response );
139142

140-
return null;
141-
}
143+
return null;
144+
}
142145

143146
}
144147

@@ -190,7 +193,8 @@ public String getRequestData( Entry entry, HttpServletRequest request, Locale lo
190193
GenericAttributesUtils.createOrUpdateField( entry, PARAMETER_CODE_GALLERY, null, strCodeGallery );
191194

192195
String strExportBinary = request.getParameter( IEntryTypeService.PARAMETER_EXPORT_BINARY );
193-
GenericAttributesUtils.createOrUpdateField( entry, IEntryTypeService.FIELD_FILE_BINARY, null, Boolean.toString( StringUtils.isNotBlank( strExportBinary ) ) );
196+
GenericAttributesUtils.createOrUpdateField( entry, IEntryTypeService.FIELD_FILE_BINARY, null,
197+
Boolean.toString( StringUtils.isNotBlank( strExportBinary ) ) );
194198

195199
entry.setMandatory( strMandatory != null );
196200
entry.setOnlyDisplayInBack( strOnlyDisplayInBack != null );
@@ -238,7 +242,9 @@ private static String checkEntryData( HttpServletRequest request, Locale locale
238242

239243
if ( StringUtils.isNotBlank( strFieldError ) )
240244
{
241-
Object[] tabRequiredFields = { I18nService.getLocalizedString( strFieldError, locale ) };
245+
Object [ ] tabRequiredFields = {
246+
I18nService.getLocalizedString( strFieldError, locale )
247+
};
242248

243249
return AdminMessageService.getMessageUrl( request, IEntryTypeService.MESSAGE_MANDATORY_FIELD, tabRequiredFields, AdminMessage.TYPE_STOP );
244250
}

src/java/fr/paris/lutece/plugins/genericattributes/service/entrytype/AbstractEntryTypeImage.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ public GenericAttributeError getResponseData( Entry entry, HttpServletRequest re
6363

6464
if ( sourceBase != null )
6565
{
66-
Response response = getResponseFromImage( sourceBase, entry, false );
67-
response.setIterationNumber( getResponseIterationValue( request ) );
68-
69-
listResponse.add( response );
66+
Response response = getResponseFromImage( sourceBase, entry, false );
67+
response.setIterationNumber( getResponseIterationValue( request ) );
68+
69+
listResponse.add( response );
7070
}
71-
71+
7272
return genAttError;
7373
}
7474

src/java/fr/paris/lutece/plugins/genericattributes/service/entrytype/AbstractEntryTypeUpload.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ public String getResponseValueForExport( Entry entry, HttpServletRequest request
191191
{
192192
if ( response.getFile( ) != null )
193193
{
194-
File file = GenericAttributeFileService.getInstance().load( response.getFile( ).getFileKey( ) );
194+
File file = GenericAttributeFileService.getInstance( ).load( response.getFile( ).getFileKey( ), response.getFile( ).getOrigin( ) );
195195

196196
if ( ( file != null ) && ( file.getPhysicalFile( ) != null ) && ( file.getPhysicalFile( ).getValue( ) != null ) )
197197
{

0 commit comments

Comments
 (0)