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.document.service.spaces;
35
36 import fr.paris.lutece.plugins.document.business.spaces.DocumentSpace;
37 import fr.paris.lutece.plugins.document.business.spaces.DocumentSpaceHome;
38 import fr.paris.lutece.plugins.document.service.DocumentPlugin;
39 import fr.paris.lutece.plugins.document.utils.IntegerUtils;
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.portal.service.util.AppLogService;
45 import fr.paris.lutece.util.ReferenceList;
46
47 import org.apache.commons.lang3.StringUtils;
48
49 import java.util.Locale;
50
51
52
53
54
55 public class SpaceResourceIdService extends ResourceIdService
56 {
57
58 public static final String PERMISSION_CREATE = "CREATE";
59
60
61 public static final String PERMISSION_VIEW = "VIEW";
62
63
64 public static final String PERMISSION_DELETE = "DELETE";
65
66
67 public static final String PERMISSION_MODIFY = "MODIFY";
68
69
70 public static final String PERMISSION_MOVE = "MOVE";
71 private static final String PROPERTY_LABEL_RESOURCE_TYPE = "document.spaces.resourceType";
72 private static final String PROPERTY_LABEL_CREATE = "document.spaces.permission.label.create";
73 private static final String PROPERTY_LABEL_VIEW = "document.spaces.permission.label.view";
74 private static final String PROPERTY_LABEL_DELETE = "document.spaces.permission.label.delete";
75 private static final String PROPERTY_LABEL_MODIFY = "document.spaces.permission.label.modify";
76 private static final String PROPERTY_LABEL_MOVE = "document.spaces.permission.label.move";
77
78
79 public SpaceResourceIdService( )
80 {
81 setPluginName( DocumentPlugin.PLUGIN_NAME );
82 }
83
84
85
86
87 public void register( )
88 {
89 ResourceType rt = new ResourceType( );
90 rt.setResourceIdServiceClass( SpaceResourceIdService.class.getName( ) );
91 rt.setPluginName( DocumentPlugin.PLUGIN_NAME );
92 rt.setResourceTypeKey( DocumentSpace.RESOURCE_TYPE );
93 rt.setResourceTypeLabelKey( PROPERTY_LABEL_RESOURCE_TYPE );
94
95 Permission p = new Permission( );
96 p.setPermissionKey( PERMISSION_CREATE );
97 p.setPermissionTitleKey( PROPERTY_LABEL_CREATE );
98 rt.registerPermission( p );
99
100 p = new Permission( );
101 p.setPermissionKey( PERMISSION_VIEW );
102 p.setPermissionTitleKey( PROPERTY_LABEL_VIEW );
103 rt.registerPermission( p );
104
105 p = new Permission( );
106 p.setPermissionKey( PERMISSION_DELETE );
107 p.setPermissionTitleKey( PROPERTY_LABEL_DELETE );
108 rt.registerPermission( p );
109
110 p = new Permission( );
111 p.setPermissionKey( PERMISSION_MODIFY );
112 p.setPermissionTitleKey( PROPERTY_LABEL_MODIFY );
113 rt.registerPermission( p );
114
115 p = new Permission( );
116 p.setPermissionKey( PERMISSION_MOVE );
117 p.setPermissionTitleKey( PROPERTY_LABEL_MOVE );
118 rt.registerPermission( p );
119
120 ResourceTypeManager.registerResourceType( rt );
121 }
122
123
124
125
126
127
128 public ReferenceList getResourceIdList( Locale locale )
129 {
130 return DocumentSpaceHome.getDocumentSpaceList( );
131 }
132
133
134
135
136
137
138
139 public String getTitle( String strId, Locale locale )
140 {
141 if ( IntegerUtils.isNumeric( strId ) )
142 {
143 int nSpaceId = IntegerUtils.convert( strId );
144 DocumentSpace space = DocumentSpaceHome.findByPrimaryKey( nSpaceId );
145
146 if ( space != null )
147 {
148 return space.getName( );
149 }
150
151 AppLogService.error( "SpaceResourceIdService - The space is not found." );
152 }
153 else
154 {
155 AppLogService.error( "SpaceResourceIdService - The id is blank or is not numeric." );
156 }
157
158 return StringUtils.EMPTY;
159 }
160 }