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.mylutece.service.attribute;
35
36 import fr.paris.lutece.plugins.mylutece.business.attribute.AttributeHome;
37 import fr.paris.lutece.plugins.mylutece.business.attribute.IAttribute;
38 import fr.paris.lutece.plugins.mylutece.business.attribute.MyLuteceUserField;
39 import fr.paris.lutece.plugins.mylutece.business.attribute.MyLuteceUserFieldHome;
40 import fr.paris.lutece.plugins.mylutece.service.MyLutecePlugin;
41 import fr.paris.lutece.portal.business.user.AdminUser;
42 import fr.paris.lutece.portal.service.message.AdminMessage;
43 import fr.paris.lutece.portal.service.message.AdminMessageService;
44 import fr.paris.lutece.portal.service.plugin.Plugin;
45 import fr.paris.lutece.portal.service.plugin.PluginService;
46 import fr.paris.lutece.portal.service.spring.SpringContextService;
47 import fr.paris.lutece.portal.web.constants.Messages;
48
49 import java.util.List;
50 import java.util.Locale;
51
52 import javax.servlet.http.HttpServletRequest;
53
54
55
56
57
58
59 public class MyLuteceUserFieldService
60 {
61
62 private static final String CONSTANT_EMPTY_STRING = "";
63 private static final String CONSTANT_UNDERSCORE = "_";
64
65
66 private static final String PARAMETER_ATTRIBUTE = "attribute";
67
68 private static Plugin getMyLutecePlugin( )
69 {
70 return PluginService.getPlugin( MyLutecePlugin.PLUGIN_NAME );
71 }
72
73
74
75
76
77
78
79
80
81
82 public static String checkUserFields( HttpServletRequest request, Locale locale )
83 {
84
85 List<IAttribute> listAttributes = AttributeHome.findAll( locale, getMyLutecePlugin( ) );
86
87 for ( IAttribute attribute : listAttributes )
88 {
89 String value = request.getParameter( PARAMETER_ATTRIBUTE + CONSTANT_UNDERSCORE + attribute.getIdAttribute( ) );
90
91 if ( attribute.isMandatory( ) && ( ( value == null ) || value.equals( CONSTANT_EMPTY_STRING ) ) )
92 {
93 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
94 }
95 }
96
97 return null;
98 }
99
100
101
102
103
104
105
106
107
108
109
110 public static void doCreateUserFields( int nIdUser, HttpServletRequest request, Locale locale )
111 {
112
113 List<IAttribute> listAttributes = AttributeHome.findMyLuteceAttributes( locale, getMyLutecePlugin( ) );
114
115 for ( IAttribute attribute : listAttributes )
116 {
117 List<MyLuteceUserField> listUserFields = attribute.getUserFieldsData( request, nIdUser );
118
119 for ( MyLuteceUserField userField : listUserFields )
120 {
121 if ( userField != null )
122 {
123 MyLuteceUserFieldHome.create( userField, getMyLutecePlugin( ) );
124 }
125 }
126 }
127
128
129 for ( MyLuteceUserFieldListenerService myLuteceUserFieldListenerService : SpringContextService
130 .getBeansOfType( MyLuteceUserFieldListenerService.class ) )
131 {
132 myLuteceUserFieldListenerService.doCreateUserFields( nIdUser, request, locale );
133 }
134 }
135
136
137
138
139
140
141
142
143
144
145
146
147
148 public static void doModifyUserFields( int nIdUser, HttpServletRequest request, Locale locale, AdminUser currentUser )
149 {
150
151 MyLuteceUserFieldHome.removeUserFieldsFromIdUser( nIdUser, getMyLutecePlugin( ) );
152
153
154 List<IAttribute> listAttributes = AttributeHome.findMyLuteceAttributes( locale, getMyLutecePlugin( ) );
155
156 for ( IAttribute attribute : listAttributes )
157 {
158 List<MyLuteceUserField> listUserFields = attribute.getUserFieldsData( request, nIdUser );
159
160 for ( MyLuteceUserField userField : listUserFields )
161 {
162 if ( userField != null )
163 {
164 MyLuteceUserFieldHome.create( userField, getMyLutecePlugin( ) );
165 }
166 }
167 }
168
169
170 for ( MyLuteceUserFieldListenerService myLuteceUserFieldListenerService : SpringContextService
171 .getBeansOfType( MyLuteceUserFieldListenerService.class ) )
172 {
173 myLuteceUserFieldListenerService.doModifyUserFields( nIdUser, request, locale, currentUser );
174 }
175 }
176
177
178
179
180
181
182
183
184
185
186
187 public static void doRemoveUserFields( int nIdUser, HttpServletRequest request, Locale locale )
188 {
189 MyLuteceUserFieldHome.removeUserFieldsFromIdUser( nIdUser, getMyLutecePlugin( ) );
190
191
192 for ( MyLuteceUserFieldListenerService myLuteceUserFieldListenerService : SpringContextService
193 .getBeansOfType( MyLuteceUserFieldListenerService.class ) )
194 {
195 myLuteceUserFieldListenerService.doRemoveUserFields( nIdUser, request, locale );
196 }
197 }
198
199
200
201
202
203
204
205
206
207 public static void doRemoveUserFields( int nIdUser, Locale locale )
208 {
209 MyLuteceUserFieldHome.removeUserFieldsFromIdUser( nIdUser, getMyLutecePlugin( ) );
210
211
212 for ( MyLuteceUserFieldListenerService myLuteceUserFieldListenerService : SpringContextService
213 .getBeansOfType( MyLuteceUserFieldListenerService.class ) )
214 {
215 myLuteceUserFieldListenerService.doRemoveUserFields( nIdUser, locale );
216 }
217 }
218 }