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.service;
35
36 import fr.paris.lutece.plugins.directory.business.Directory;
37 import fr.paris.lutece.plugins.directory.business.DirectoryHome;
38 import fr.paris.lutece.plugins.directory.utils.DirectoryUtils;
39 import fr.paris.lutece.portal.service.plugin.PluginService;
40 import fr.paris.lutece.portal.service.rbac.Permission;
41 import fr.paris.lutece.portal.service.rbac.ResourceIdService;
42 import fr.paris.lutece.portal.service.rbac.ResourceType;
43 import fr.paris.lutece.portal.service.rbac.ResourceTypeManager;
44 import fr.paris.lutece.util.ReferenceList;
45
46 import java.util.Locale;
47
48
49
50
51
52
53 public class DirectoryResourceIdService extends ResourceIdService
54 {
55
56 public static final String PERMISSION_CREATE = "CREATE";
57
58
59 public static final String PERMISSION_CREATE_RECORD = "CREATE_RECORD";
60
61
62 public static final String PERMISSION_MANAGE_RECORD = "MANAGE_RECORD";
63
64
65 public static final String PERMISSION_IMPORT_RECORD = "IMPORT_RECORD";
66
67
68 public static final String PERMISSION_DELETE_ALL_RECORD = "DELETE_ALL_RECORD";
69
70
71 public static final String PERMISSION_DELETE = "DELETE";
72
73
74 public static final String PERMISSION_DELETE_RECORD = "DELETE_RECORD";
75
76
77 public static final String PERMISSION_MODIFY = "MODIFY";
78
79
80 public static final String PERMISSION_MODIFY_RECORD = "MODIFY_RECORD";
81
82
83 public static final String PERMISSION_COPY = "COPY";
84
85
86 public static final String PERMISSION_COPY_RECORD = "COPY_RECORD";
87
88
89 public static final String PERMISSION_INDEX_ALL_DIRECTORY = "INDEX_ALL_DIRECTORY";
90
91
92 public static final String PERMISSION_CHANGE_STATE = "CHANGE_STATE";
93
94
95 public static final String PERMISSION_CHANGE_STATE_RECORD = "CHANGE_STATE_RECORD";
96
97
98 public static final String PERMISSION_HISTORY_RECORD = "HISTORY_RECORD";
99
100
101 public static final String PERMISSION_MASS_PRINT = "MASS_PRINT";
102
103
104 public static final String PERMISSION_MANAGE_ADVANCED_PARAMETERS = "MANAGE_ADVANCED_PARAMETERS";
105
106
107 public static final String PERMISSION_VISUALISATION_RECORD = "VISUALISATION_RECORD";
108
109
110 public static final String PERMISSION_IMPORT_FIELD = "IMPORT_FIELD";
111
112
113 public static final String PERMISSION_VISUALISATION_MYLUTECE_USER = "VISUALISATION_MYLUTECE_USER";
114
115
116 public static final String PROPERTY_LABEL_RESOURCE_TYPE = "directory.permission.label.resource_type_directory";
117 private static final String PROPERTY_LABEL_CREATE = "directory.permission.label.create_directory";
118 private static final String PROPERTY_LABEL_MANAGE_RECORD = "directory.permission.label.manage_directory_record";
119 private static final String PROPERTY_LABEL_DELETE_ALL_RECORD = "directory.permission.label.delete_all_directory_record";
120 private static final String PROPERTY_LABEL_DELETE = "directory.permission.label.delete_directory";
121 private static final String PROPERTY_LABEL_MODIFY = "directory.permission.label.modify_directory";
122 private static final String PROPERTY_LABEL_COPY = "directory.permission.label.copy_directory";
123 private static final String PROPERTY_LABEL_CHANGE_STATE = "directory.permission.label.change_state_directory";
124 private static final String PROPERTY_LABEL_INDEX_ALL_DIRECTORY = "directory.permission.label.index_all_directory";
125 private static final String PROPERTY_LABEL_CREATE_RECORD = "directory.permission.label.create_directory_record";
126 private static final String PROPERTY_LABEL_DELETE_RECORD = "directory.permission.label.delete_directory_record";
127 private static final String PROPERTY_LABEL_MODIFY_RECORD = "directory.permission.label.modify_directory_record";
128 private static final String PROPERTY_LABEL_COPY_RECORD = "directory.permission.label.copy_directory_record";
129 private static final String PROPERTY_LABEL_CHANGE_STATE_RECORD = "directory.permission.label.change_state_directory_record";
130 private static final String PROPERTY_LABEL_HISTORY_RECORD = "directory.permission.label.change_history_record";
131 private static final String PROPERTY_LABEL_VISUALISATION_RECORD = "directory.permission.label.visualisation_record";
132 private static final String PROPERTY_LABEL_IMPORT_RECORD = "directory.permission.label.import_record";
133 private static final String PROPERTY_LABEL_MASS_PRINT = "directory.permission.label.mass_print";
134 private static final String PROPERTY_LABEL_MANAGE_ADVANCED_PARAMETERS = "directory.permission.label.manage_advanced_parameters";
135 private static final String PROPERTY_LABEL_VISUALISATION_MYLUTECE_USER = "directory.permission.label.visualisation_mylutece_user";
136 private static final String PROPERTY_LABEL_IMPORT_FIELD = "directory.permission.label.import_field";
137
138
139 public DirectoryResourceIdService( )
140 {
141 setPluginName( DirectoryPlugin.PLUGIN_NAME );
142 }
143
144
145
146
147 @Override
148 public void register( )
149 {
150
151 ResourceType rt = ResourceTypeManager.getResourceType( Directory.RESOURCE_TYPE );
152
153 if ( rt == null )
154 {
155 rt = new ResourceType( );
156 rt.setResourceIdServiceClass( DirectoryResourceIdService.class.getName( ) );
157 rt.setPluginName( DirectoryPlugin.PLUGIN_NAME );
158 rt.setResourceTypeKey( Directory.RESOURCE_TYPE );
159 rt.setResourceTypeLabelKey( PROPERTY_LABEL_RESOURCE_TYPE );
160 }
161
162 Permission p = new Permission( );
163 p.setPermissionKey( PERMISSION_CREATE );
164 p.setPermissionTitleKey( PROPERTY_LABEL_CREATE );
165 rt.registerPermission( p );
166
167 p = new Permission( );
168 p.setPermissionKey( PERMISSION_MODIFY );
169 p.setPermissionTitleKey( PROPERTY_LABEL_MODIFY );
170 rt.registerPermission( p );
171
172 p = new Permission( );
173 p.setPermissionKey( PERMISSION_COPY );
174 p.setPermissionTitleKey( PROPERTY_LABEL_COPY );
175 rt.registerPermission( p );
176
177 p = new Permission( );
178 p.setPermissionKey( PERMISSION_MANAGE_RECORD );
179 p.setPermissionTitleKey( PROPERTY_LABEL_MANAGE_RECORD );
180 rt.registerPermission( p );
181
182 p = new Permission( );
183 p.setPermissionKey( PERMISSION_DELETE_ALL_RECORD );
184 p.setPermissionTitleKey( PROPERTY_LABEL_DELETE_ALL_RECORD );
185 rt.registerPermission( p );
186
187 p = new Permission( );
188 p.setPermissionKey( PERMISSION_CHANGE_STATE );
189 p.setPermissionTitleKey( PROPERTY_LABEL_CHANGE_STATE );
190 rt.registerPermission( p );
191
192 p = new Permission( );
193 p.setPermissionKey( PERMISSION_DELETE );
194 p.setPermissionTitleKey( PROPERTY_LABEL_DELETE );
195 rt.registerPermission( p );
196
197 p = new Permission( );
198 p.setPermissionKey( PERMISSION_INDEX_ALL_DIRECTORY );
199 p.setPermissionTitleKey( PROPERTY_LABEL_INDEX_ALL_DIRECTORY );
200 rt.registerPermission( p );
201
202 p = new Permission( );
203 p.setPermissionKey( PERMISSION_CREATE_RECORD );
204 p.setPermissionTitleKey( PROPERTY_LABEL_CREATE_RECORD );
205 rt.registerPermission( p );
206
207 p = new Permission( );
208 p.setPermissionKey( PERMISSION_DELETE_RECORD );
209 p.setPermissionTitleKey( PROPERTY_LABEL_DELETE_RECORD );
210 rt.registerPermission( p );
211
212 p = new Permission( );
213 p.setPermissionKey( PERMISSION_MODIFY_RECORD );
214 p.setPermissionTitleKey( PROPERTY_LABEL_MODIFY_RECORD );
215 rt.registerPermission( p );
216
217 p = new Permission( );
218 p.setPermissionKey( PERMISSION_COPY_RECORD );
219 p.setPermissionTitleKey( PROPERTY_LABEL_COPY_RECORD );
220 rt.registerPermission( p );
221
222 p = new Permission( );
223 p.setPermissionKey( PERMISSION_CHANGE_STATE_RECORD );
224 p.setPermissionTitleKey( PROPERTY_LABEL_CHANGE_STATE_RECORD );
225 rt.registerPermission( p );
226
227 p = new Permission( );
228 p.setPermissionKey( PERMISSION_HISTORY_RECORD );
229 p.setPermissionTitleKey( PROPERTY_LABEL_HISTORY_RECORD );
230 rt.registerPermission( p );
231
232 p = new Permission( );
233 p.setPermissionKey( PERMISSION_VISUALISATION_RECORD );
234 p.setPermissionTitleKey( PROPERTY_LABEL_VISUALISATION_RECORD );
235 rt.registerPermission( p );
236
237 p = new Permission( );
238 p.setPermissionKey( PERMISSION_IMPORT_RECORD );
239 p.setPermissionTitleKey( PROPERTY_LABEL_IMPORT_RECORD );
240 rt.registerPermission( p );
241
242 p = new Permission( );
243 p.setPermissionKey( PERMISSION_MASS_PRINT );
244 p.setPermissionTitleKey( PROPERTY_LABEL_MASS_PRINT );
245 rt.registerPermission( p );
246
247 p = new Permission( );
248 p.setPermissionKey( PERMISSION_MANAGE_ADVANCED_PARAMETERS );
249 p.setPermissionTitleKey( PROPERTY_LABEL_MANAGE_ADVANCED_PARAMETERS );
250 rt.registerPermission( p );
251
252 p = new Permission( );
253 p.setPermissionKey( PERMISSION_VISUALISATION_MYLUTECE_USER );
254 p.setPermissionTitleKey( PROPERTY_LABEL_VISUALISATION_MYLUTECE_USER );
255 rt.registerPermission( p );
256
257 p = new Permission( );
258 p.setPermissionKey( PERMISSION_IMPORT_FIELD );
259 p.setPermissionTitleKey( PROPERTY_LABEL_IMPORT_FIELD );
260 rt.registerPermission( p );
261
262 ResourceTypeManager.registerResourceType( rt );
263 }
264
265
266
267
268
269
270
271
272 @Override
273 public ReferenceList getResourceIdList( Locale locale )
274 {
275 return DirectoryHome.getDirectoryList( PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) );
276 }
277
278
279
280
281 @Override
282 public String getTitle( String strId, Locale locale )
283 {
284 int nIdDirectory = DirectoryUtils.convertStringToInt( strId );
285 Directory directory = DirectoryHome.findByPrimaryKey( nIdDirectory, PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) );
286
287 return ( directory != null ) ? directory.getTitle( ) : null;
288 }
289 }