1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.web.action;
35
36 import fr.paris.lutece.plugins.directory.business.Directory;
37 import fr.paris.lutece.plugins.directory.modules.pdfproducerarchive.service.DirectoryPDFProducerArchiveResourceIdService;
38 import fr.paris.lutece.plugins.directory.utils.DirectoryUtils;
39 import fr.paris.lutece.plugins.directory.web.action.DirectoryAdminSearchFields;
40 import fr.paris.lutece.plugins.directory.web.action.IDirectoryAction;
41 import fr.paris.lutece.portal.business.rbac.RBAC;
42 import fr.paris.lutece.portal.business.user.AdminUser;
43 import fr.paris.lutece.portal.service.admin.AccessDeniedException;
44 import fr.paris.lutece.portal.service.rbac.RBACService;
45 import fr.paris.lutece.portal.service.util.AppPathService;
46 import fr.paris.lutece.portal.web.pluginaction.AbstractPluginAction;
47 import fr.paris.lutece.portal.web.pluginaction.DefaultPluginActionResult;
48 import fr.paris.lutece.portal.web.pluginaction.IPluginActionResult;
49 import fr.paris.lutece.util.url.UrlItem;
50
51 import org.apache.commons.lang.StringUtils;
52
53 import java.util.Map;
54
55 import javax.servlet.http.HttpServletRequest;
56 import javax.servlet.http.HttpServletResponse;
57
58
59
60
61
62
63 public class ZipBasketAction extends AbstractPluginAction<DirectoryAdminSearchFields> implements IDirectoryAction
64 {
65
66 private static final String ACTION_NAME = "Panier ZIP";
67
68
69 private static final String TEMPLATE_BUTTON = "../directory/modules/pdfproducer/archive/actions/zip_basket.html";
70
71
72 private static final String JSP_MANAGE_ZIP_BASKET = "jsp/admin/plugins/directory/modules/pdfproducer/archive/basket/ManageZipBasket.jsp";
73
74
75 private static final String PARAMETER_ID_DIRECTORY = "id_directory";
76 private static final String PARAMETER_ZIP_BASKET_ACTION = "zip_basket";
77
78
79 private static final String MARK_PERMISSION_GENERATE_ZIP = "permission_generate_zip";
80
81
82
83
84 public void fillModel( HttpServletRequest request, AdminUser adminUser, Map<String, Object> model )
85 {
86 String strIdDirectory = request.getParameter( DirectoryUtils.PARAMETER_ID_DIRECTORY );
87 String strIdResource = StringUtils.isNotBlank( strIdDirectory ) ? strIdDirectory : RBAC.WILDCARD_RESOURCES_ID;
88 model.put( MARK_PERMISSION_GENERATE_ZIP,
89 RBACService.isAuthorized( Directory.RESOURCE_TYPE, strIdResource,
90 DirectoryPDFProducerArchiveResourceIdService.PERMISSION_GENERATE_ZIP, adminUser ) );
91 }
92
93
94
95
96 public String getButtonTemplate( )
97 {
98 return TEMPLATE_BUTTON;
99 }
100
101
102
103
104 public String getName( )
105 {
106 return ACTION_NAME;
107 }
108
109
110
111
112 public boolean isInvoked( HttpServletRequest request )
113 {
114 String strZipBasket = request.getParameter( PARAMETER_ZIP_BASKET_ACTION );
115
116 if ( StringUtils.isNotBlank( strZipBasket ) )
117 {
118 return true;
119 }
120
121 return false;
122 }
123
124
125
126
127 public IPluginActionResult process( HttpServletRequest request, HttpServletResponse response, AdminUser adminUser,
128 DirectoryAdminSearchFields sessionFields ) throws AccessDeniedException
129 {
130 IPluginActionResult result = new DefaultPluginActionResult( );
131
132 String strIdDirectory = request.getParameter( PARAMETER_ID_DIRECTORY );
133
134 UrlItem urlItem = new UrlItem( AppPathService.getBaseUrl( request ) + JSP_MANAGE_ZIP_BASKET );
135 urlItem.addParameter( DirectoryUtils.PARAMETER_ID_DIRECTORY, strIdDirectory );
136
137 result.setRedirect( urlItem.getUrl( ) );
138
139 return result;
140 }
141 }