Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion run.sh

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ public class ProgressFeed implements Serializable
private int _nNbItemSuccess = 0;

private int _nNbItemFailure = 0;

private boolean _isPublic = false;

private List<String> _report = new ArrayList<>( );

Expand Down Expand Up @@ -198,4 +200,23 @@ public void addReport( List<String> strReportList )
{
_report.addAll( strReportList );
}

/**
* set public
*
*/
public void setPublic( boolean isPublic )
{
_isPublic = isPublic;
}

/**
* check if feed is public
*
* @return true if public
*/
public boolean isPublic( )
{
return _isPublic;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,25 @@ public Map<String, ProgressFeed> getProgressFeeds( )
* @return the generated token
*/
public String registerFeed( String strProgressFeedName, int nTotalItems )
{
return registerFeed( strProgressFeedName, nTotalItems, false );
}

/**
* register new progress feed returns a generated token to identify the feed for rest webservice
*
* @param strProgressFeedName
* @param nTotalItems
* @param isPublic
* @return the generated token
*/
public String registerFeed( String strProgressFeedName, int nTotalItems, boolean isPublic )
{
ProgressFeed feed = new ProgressFeed( );
feed.setId( strProgressFeedName );
feed.setNbItemTotal( nTotalItems );

feed.setPublic( isPublic );

String strToken = UUID.randomUUID( ).toString( );
feed.setToken( strToken );

Expand All @@ -138,16 +152,28 @@ public void unRegisterFeed( String strFeedToken )
}

/**
* register new progress feed
* check if feed exists
*
* @param strFeedToken
* @return
* @return true if exists
*/
public boolean isRegistred( String strFeedToken )
{
return ( _progressFeeds.get( strFeedToken ) != null );
}

/**
* chek if feed is public
*
* @param strFeedToken
* @return
*/
public boolean isPublic( String strFeedToken )
{
return ( _progressFeeds.get( strFeedToken ) != null && _progressFeeds.get( strFeedToken ).isPublic( ) );
}


/**
* increment nb of success items
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
*/
package fr.paris.lutece.portal.web.progressmanager;

import fr.paris.lutece.portal.business.user.AdminUser;
import fr.paris.lutece.portal.service.admin.AdminAuthenticationService;
import fr.paris.lutece.portal.service.progressmanager.ProgressManagerService;
import fr.paris.lutece.util.json.ErrorJsonResponse;
import fr.paris.lutece.util.json.JsonResponse;
Expand Down Expand Up @@ -100,30 +102,38 @@ public void init( ServletConfig config ) throws ServletException
@Override
public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException
{
response.setContentType( CONTENT_TYPE );
PrintWriter out = response.getWriter( );


// token
String strToken = (String) request.getParameter( PARAMETER_TOKEN );

if ( strToken == null || strToken.isEmpty( ) )
{
out.println( JsonUtil.buildJsonResponse( new ErrorJsonResponse( STATUS_NOT_FOUND ) ) );
out.flush( );
out.close( );
return;
response.sendError( HttpServletResponse.SC_BAD_REQUEST );
return;
}

ProgressManagerService progressManagerService = CDI.current( ).select( ProgressManagerService.class ).get( );

// Authenticated Admin user only service
AdminUser adminUser = AdminAuthenticationService.getInstance( ).getRegisteredUser( request );

if ( adminUser == null && !progressManagerService.isPublic( strToken ) )
{
response.sendError( HttpServletResponse.SC_FORBIDDEN );
return;
}

if ( !progressManagerService.isRegistred( strToken ) )
{
out.println( JsonUtil.buildJsonResponse( new ErrorJsonResponse( STATUS_NOT_FOUND ) ) );
out.flush( );
out.close( );
return;
response.sendError( HttpServletResponse.SC_NOT_FOUND );
return;
}

// send infos
response.setContentType( CONTENT_TYPE );
PrintWriter out = response.getWriter( );

if ( request.getParameter( PARAMETER_PROGRESS ) != null )
{
out.println( JsonUtil.buildJsonResponse( new JsonResponse( progressManagerService.getProgressStatus( strToken ) ) ) );
Expand Down