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.announce.web;
35
36 import java.util.Collections;
37 import java.util.HashMap;
38 import java.util.List;
39
40 import javax.servlet.http.HttpServletRequest;
41
42 import org.apache.commons.lang3.StringUtils;
43
44 import fr.paris.lutece.plugins.announce.utils.AnnounceUtils;
45 import fr.paris.lutece.portal.service.admin.AccessDeniedException;
46 import fr.paris.lutece.portal.service.plugin.Plugin;
47 import fr.paris.lutece.portal.service.security.LuteceUser;
48 import fr.paris.lutece.portal.service.security.SecurityService;
49 import fr.paris.lutece.portal.service.template.AppTemplateService;
50 import fr.paris.lutece.portal.service.util.AppPropertiesService;
51 import fr.paris.lutece.portal.web.admin.PluginAdminPageJspBean;
52 import fr.paris.lutece.portal.web.constants.Parameters;
53 import fr.paris.lutece.util.html.AbstractPaginator;
54 import fr.paris.lutece.util.html.HtmlTemplate;
55 import fr.paris.lutece.util.html.Paginator;
56 import fr.paris.lutece.util.sort.AttributeComparator;
57 import fr.paris.lutece.util.url.UrlItem;
58
59
60
61
62 public class AnnounceUserJspBean extends PluginAdminPageJspBean
63 {
64
65
66
67 public static final String RIGHT_MANAGE_ANNOUNCE = "ANNOUNCE_MANAGEMENT";
68 private static final long serialVersionUID = 302676061356843811L;
69
70
71 private static final String TEMPLATE_ANNOUNCE_LIST_USERS = "admin/plugins/announce/list_users.html";
72
73
74 private static final String PROPERTY_PAGE_TITLE_LIST_USERS = "announce.list_users.pageTitle";
75 private static final String PROPERTY_ITEM_PER_PAGE = "module.mylutece.directory.items_per_page";
76
77
78 private static final String PARAMETER_PAGE_INDEX = "page_index";
79
80
81 private static final String MARK_LOCALE = "locale";
82 private static final String MARK_PAGINATOR = "paginator";
83 private static final String MARK_NB_ITEMS_PER_PAGE = "nb_items_per_page";
84 private static final String MARK_USERS_LIST = "users_list";
85 private static final String MARK_NAME_FOUND = "name_found";
86 private static final String MARK_NO_USERS = "no_users";
87
88
89 private static final String JSP_URL_MANAGE_USERS = "jsp/admin/plugins/announce/ShowAnnounceUsers.jsp";
90
91
92 private int _nDefaultItemsPerPage = AppPropertiesService.getPropertyInt( PROPERTY_ITEM_PER_PAGE, 50 );
93 private String _strCurrentPageIndex;
94 private int _nItemsPerPage;
95 private AttributeComparator _attributeComparator;
96
97
98
99
100 @Override
101 public Plugin getPlugin( )
102 {
103 Plugin plugin = super.getPlugin( );
104
105 if ( plugin == null )
106 {
107 plugin = AnnounceUtils.getPlugin( );
108 }
109
110 return plugin;
111 }
112
113
114
115
116
117
118
119
120
121
122 public String getList( HttpServletRequest request ) throws AccessDeniedException
123 {
124 Boolean nameFound = false;
125 Boolean noUsers = false;
126
127 HashMap<String, Object> model = new HashMap<>( );
128
129 setPageTitleProperty( PROPERTY_PAGE_TITLE_LIST_USERS );
130 _strCurrentPageIndex = AbstractPaginator.getPageIndex( request, AbstractPaginator.PARAMETER_PAGE_INDEX, _strCurrentPageIndex );
131 _nItemsPerPage = AbstractPaginator.getItemsPerPage( request, AbstractPaginator.PARAMETER_ITEMS_PER_PAGE, _nItemsPerPage, _nDefaultItemsPerPage );
132
133 List<LuteceUser> listUsers = (List<LuteceUser>) SecurityService.getInstance( ).getUsers( );
134
135 if ( listUsers != null )
136 {
137 for ( LuteceUser user : listUsers )
138 {
139 if ( StringUtils.isNotEmpty( user.getUserInfo( LuteceUser.NAME_GIVEN ) )
140 || StringUtils.isNotEmpty( user.getUserInfo( LuteceUser.NAME_FAMILY ) ) )
141 {
142 nameFound = true;
143
144 break;
145 }
146 }
147 }
148 else
149 {
150 noUsers = true;
151 }
152
153 String strSort = request.getParameter( Parameters.SORTED_ATTRIBUTE_NAME );
154
155 if ( StringUtils.isNotEmpty( strSort ) )
156 {
157 _attributeComparator = new AttributeComparator( strSort, Boolean.parseBoolean( request.getParameter( Parameters.SORTED_ASC ) ) );
158 }
159
160 if ( _attributeComparator != null )
161 {
162 Collections.sort( listUsers, _attributeComparator );
163 }
164
165 Paginator<LuteceUser> paginator = new Paginator<>( listUsers, _nItemsPerPage, getUrlPage( ), PARAMETER_PAGE_INDEX, _strCurrentPageIndex );
166
167 model.put( MARK_NAME_FOUND, nameFound );
168 model.put( MARK_NO_USERS, noUsers );
169 model.put( MARK_NB_ITEMS_PER_PAGE, "" + _nItemsPerPage );
170 model.put( MARK_PAGINATOR, paginator );
171 model.put( MARK_USERS_LIST, paginator.getPageItems( ) );
172 model.put( MARK_LOCALE, getLocale( ) );
173
174 HtmlTemplate templateList = AppTemplateService.getTemplate( TEMPLATE_ANNOUNCE_LIST_USERS, getLocale( ), model );
175
176 return getAdminPage( templateList.getHtml( ) );
177 }
178
179
180
181
182
183
184 private String getUrlPage( )
185 {
186 UrlItem url = new UrlItem( JSP_URL_MANAGE_USERS );
187
188 return url.getUrl( );
189 }
190 }