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.appointment.service;
35
36 import java.util.Collection;
37 import java.util.Locale;
38
39 import org.apache.commons.lang3.StringUtils;
40
41 import fr.paris.lutece.plugins.appointment.business.form.Form;
42 import fr.paris.lutece.plugins.appointment.web.dto.AppointmentFormDTO;
43 import fr.paris.lutece.portal.service.rbac.Permission;
44 import fr.paris.lutece.portal.service.rbac.ResourceIdService;
45 import fr.paris.lutece.portal.service.rbac.ResourceType;
46 import fr.paris.lutece.portal.service.rbac.ResourceTypeManager;
47 import fr.paris.lutece.portal.service.util.AppLogService;
48 import fr.paris.lutece.util.ReferenceList;
49
50
51
52
53
54
55
56
57 public final class AppointmentResourceIdService extends ResourceIdService
58 {
59
60 public static final String PERMISSION_CREATE_FORM = "CREATE_FORM";
61
62
63 public static final String PERMISSION_CREATE_APPOINTMENT = "CREATE_APPOINTMENT";
64
65
66 public static final String PERMISSION_DELETE_FORM = "DELETE_FORM";
67
68
69 public static final String PERMISSION_DELETE_APPOINTMENT = "DELETE_APPOINTMENT";
70
71
72 public static final String PERMISSION_MODIFY_FORM = "MODIFY_FORM";
73
74 public static final String PERMISSION_MODIFY_ADVANCED_SETTING_FORM = "MODIFY_ADVANCED_SETTING_FORM";
75
76 public static final String PERMISSION_VIEW_FORM = "VIEW_FORM";
77
78
79 public static final String PERMISSION_VIEW_APPOINTMENT = "VIEW_APPOINTMENT";
80
81
82 public static final String PERMISSION_CHANGE_STATE = "CHANGE_STATE";
83
84
85 public static final String PERMISSION_CHANGE_APPOINTMENT_STATUS = "CHANGE_APPOINTMENT_STATUS";
86
87
88 public static final String PERMISSION_OVERBOOKING_FORM = "OVERBOOKING_FORM";
89
90 public static final String PERMISSION_MODERATE_COMMENT_FORM = "MODERATE_COMMENT_FORM";
91
92 public static final String PERMISSION_ADD_COMMENT_FORM = "ADD_COMMENT_FORM";
93
94
95 private static final String PROPERTY_LABEL_RESOURCE_TYPE = "appointment.appointment.name";
96 private static final String PROPERTY_LABEL_RESOURCE_TYPE_CREATE = "appointment.appointment.name.create";
97 private static final String PROPERTY_LABEL_CREATE_FORM = "appointment.permission.label.createForm";
98 private static final String PROPERTY_LABEL_CREATE_APPOINTMENT = "appointment.permission.label.createAppointment";
99 private static final String PROPERTY_LABEL_DELETE_FORM = "appointment.permission.label.deleteForm";
100 private static final String PROPERTY_LABEL_DELETE_APPOINTMENT = "appointment.permission.label.deleteAppointment";
101 private static final String PROPERTY_LABEL_MODIFY_FORM = "appointment.permission.label.modifyForm";
102 private static final String PROPERTY_LABEL_MODIFY_ADVANCED_SETTINGS_FORM = "appointment.permission.label.modifyAdvancedSettingForm";
103 private static final String PROPERTY_LABEL_VIEW_FORM = "appointment.permission.label.viewForm";
104 private static final String PROPERTY_LABEL_VIEW_APPOINTMENT = "appointment.permission.label.viewAppointment";
105 private static final String PROPERTY_LABEL_CHANGE_STATE = "appointment.permission.label.changeState";
106 private static final String PROPERTY_LABEL_CHANGE_APPOINTMENT_STATUS = "appointment.permission.label.changeAppointmentStatus";
107 public static final String PROPERTY_LABEL_OVERBOOKING_FORM = "appointment.permission.label.overbooking";
108 public static final String PROPERTY_LABEL_MODERATE_COMMENT_FORM = "appointment.permission.label.moderateComment";
109 public static final String PROPERTY_LABEL_ADD_COMMENT_FORM = "appointment.permission.label.addComment";
110
111
112 public AppointmentResourceIdService( )
113 {
114 setPluginName( AppointmentPlugin.PLUGIN_NAME );
115 }
116
117
118
119
120 @Override
121 public void register( )
122 {
123 ResourceType resourceType = new ResourceType( );
124 resourceType.setResourceIdServiceClass( AppointmentResourceIdService.class.getName( ) );
125 resourceType.setPluginName( AppointmentPlugin.PLUGIN_NAME );
126 resourceType.setResourceTypeKey( AppointmentFormDTO.RESOURCE_TYPE );
127 resourceType.setResourceTypeLabelKey( PROPERTY_LABEL_RESOURCE_TYPE );
128
129 Permission permission = new Permission( );
130 permission.setPermissionKey( PERMISSION_VIEW_FORM );
131 permission.setPermissionTitleKey( PROPERTY_LABEL_VIEW_FORM );
132 resourceType.registerPermission( permission );
133
134 permission = new Permission( );
135 permission.setPermissionKey( PERMISSION_MODIFY_FORM );
136 permission.setPermissionTitleKey( PROPERTY_LABEL_MODIFY_FORM );
137 resourceType.registerPermission( permission );
138
139 permission = new Permission( );
140 permission.setPermissionKey( PERMISSION_MODIFY_ADVANCED_SETTING_FORM );
141 permission.setPermissionTitleKey( PROPERTY_LABEL_MODIFY_ADVANCED_SETTINGS_FORM );
142 resourceType.registerPermission( permission );
143
144 permission = new Permission( );
145 permission.setPermissionKey( PERMISSION_DELETE_FORM );
146 permission.setPermissionTitleKey( PROPERTY_LABEL_DELETE_FORM );
147 resourceType.registerPermission( permission );
148
149 permission = new Permission( );
150 permission.setPermissionKey( PERMISSION_CHANGE_STATE );
151 permission.setPermissionTitleKey( PROPERTY_LABEL_CHANGE_STATE );
152 resourceType.registerPermission( permission );
153
154 permission = new Permission( );
155 permission.setPermissionKey( PERMISSION_VIEW_APPOINTMENT );
156 permission.setPermissionTitleKey( PROPERTY_LABEL_VIEW_APPOINTMENT );
157 resourceType.registerPermission( permission );
158
159 permission = new Permission( );
160 permission.setPermissionKey( PERMISSION_CREATE_APPOINTMENT );
161 permission.setPermissionTitleKey( PROPERTY_LABEL_CREATE_APPOINTMENT );
162 resourceType.registerPermission( permission );
163
164 permission = new Permission( );
165 permission.setPermissionKey( PERMISSION_DELETE_APPOINTMENT );
166 permission.setPermissionTitleKey( PROPERTY_LABEL_DELETE_APPOINTMENT );
167 resourceType.registerPermission( permission );
168
169 permission = new Permission( );
170 permission.setPermissionKey( PERMISSION_CHANGE_APPOINTMENT_STATUS );
171 permission.setPermissionTitleKey( PROPERTY_LABEL_CHANGE_APPOINTMENT_STATUS );
172 resourceType.registerPermission( permission );
173
174 permission = new Permission( );
175 permission.setPermissionKey( PERMISSION_OVERBOOKING_FORM );
176 permission.setPermissionTitleKey( PROPERTY_LABEL_OVERBOOKING_FORM );
177 resourceType.registerPermission( permission );
178
179 permission = new Permission( );
180 permission.setPermissionKey( PERMISSION_MODERATE_COMMENT_FORM );
181 permission.setPermissionTitleKey( PROPERTY_LABEL_MODERATE_COMMENT_FORM );
182 resourceType.registerPermission( permission );
183 permission = new Permission( );
184 permission.setPermissionKey( PERMISSION_ADD_COMMENT_FORM );
185 permission.setPermissionTitleKey( PROPERTY_LABEL_ADD_COMMENT_FORM );
186 resourceType.registerPermission( permission );
187
188 ResourceTypeManager.registerResourceType( resourceType );
189
190 ResourceType resourceTypeCreate = new ResourceType( );
191 resourceTypeCreate.setResourceIdServiceClass( AppointmentResourceIdService.class.getName( ) );
192 resourceTypeCreate.setPluginName( AppointmentPlugin.PLUGIN_NAME );
193 resourceTypeCreate.setResourceTypeKey( AppointmentFormDTO.RESOURCE_TYPE_CREATE );
194 resourceTypeCreate.setResourceTypeLabelKey( PROPERTY_LABEL_RESOURCE_TYPE_CREATE );
195
196 permission = new Permission( );
197 permission.setPermissionKey( PERMISSION_CREATE_FORM );
198 permission.setPermissionTitleKey( PROPERTY_LABEL_CREATE_FORM );
199 resourceTypeCreate.registerPermission( permission );
200
201 ResourceTypeManager.registerResourceType( resourceTypeCreate );
202 }
203
204
205
206
207 @Override
208 public ReferenceList getResourceIdList( Locale locale )
209 {
210 Collection<Form> listForms = FormService.findAllForms( );
211 ReferenceList refListForms = new ReferenceList( );
212 for ( Form form : listForms )
213 {
214 refListForms.addItem( form.getIdForm( ), form.getTitle( ) );
215 }
216 return refListForms;
217 }
218
219
220
221
222 @Override
223 public String getTitle( String strId, Locale locale )
224 {
225 int nIdForm = -1;
226 try
227 {
228 nIdForm = Integer.parseInt( strId );
229 }
230 catch( NumberFormatException ne )
231 {
232 AppLogService.error( ne );
233 }
234 Form form = FormService.findFormLightByPrimaryKey( nIdForm );
235 return ( form == null ) ? StringUtils.EMPTY : form.getTitle( );
236 }
237 }