001
014
015 package com.liferay.users.admin.kernel.util;
016
017 import aQute.bnd.annotation.ProviderType;
018
019 import com.liferay.portal.kernel.exception.PortalException;
020 import com.liferay.portal.kernel.language.LanguageUtil;
021 import com.liferay.portal.kernel.search.Hits;
022 import com.liferay.portal.kernel.util.Accessor;
023 import com.liferay.portal.kernel.util.LocaleThreadLocal;
024 import com.liferay.portal.kernel.util.OrderByComparator;
025 import com.liferay.portal.kernel.util.StringPool;
026 import com.liferay.portal.kernel.util.Validator;
027 import com.liferay.portal.model.Address;
028 import com.liferay.portal.model.Country;
029 import com.liferay.portal.model.EmailAddress;
030 import com.liferay.portal.model.Group;
031 import com.liferay.portal.model.OrgLabor;
032 import com.liferay.portal.model.Organization;
033 import com.liferay.portal.model.Phone;
034 import com.liferay.portal.model.Region;
035 import com.liferay.portal.model.Role;
036 import com.liferay.portal.model.User;
037 import com.liferay.portal.model.UserGroup;
038 import com.liferay.portal.model.UserGroupGroupRole;
039 import com.liferay.portal.model.UserGroupRole;
040 import com.liferay.portal.model.Website;
041 import com.liferay.portal.security.permission.PermissionChecker;
042 import com.liferay.portal.service.CountryServiceUtil;
043 import com.liferay.portal.service.RegionServiceUtil;
044 import com.liferay.portal.service.RoleLocalServiceUtil;
045
046 import java.util.List;
047 import java.util.Locale;
048
049 import javax.portlet.ActionRequest;
050 import javax.portlet.PortletRequest;
051 import javax.portlet.RenderResponse;
052
053 import javax.servlet.http.HttpServletRequest;
054
055
060 @ProviderType
061 public interface UsersAdmin {
062
063 public static final String CUSTOM_QUESTION = "write-my-own-question";
064
065 public static final Accessor<Organization, String>
066 ORGANIZATION_COUNTRY_NAME_ACCESSOR =
067 new Accessor<Organization, String>() {
068
069 @Override
070 public String get(Organization organization) {
071 Address address = organization.getAddress();
072
073 Country country = address.getCountry();
074
075 String countryName = country.getName(
076 LocaleThreadLocal.getThemeDisplayLocale());
077
078 if (Validator.isNull(countryName)) {
079 country = CountryServiceUtil.fetchCountry(
080 organization.getCountryId());
081
082 if (country != null) {
083 countryName = country.getName(
084 LocaleThreadLocal.getThemeDisplayLocale());
085 }
086 }
087
088 return countryName;
089 }
090
091 @Override
092 public Class<String> getAttributeClass() {
093 return String.class;
094 }
095
096 @Override
097 public Class<Organization> getTypeClass() {
098 return Organization.class;
099 }
100
101 };
102
103 public static final Accessor<Organization, String>
104 ORGANIZATION_REGION_NAME_ACCESSOR =
105 new Accessor<Organization, String>() {
106
107 @Override
108 public String get(Organization organization) {
109 Address address = organization.getAddress();
110
111 Region region = address.getRegion();
112
113 String regionName = region.getName();
114
115 if (Validator.isNull(regionName)) {
116 region = RegionServiceUtil.fetchRegion(
117 organization.getRegionId());
118
119 if (region != null) {
120 regionName = LanguageUtil.get(
121 LocaleThreadLocal.getThemeDisplayLocale(),
122 region.getName());
123 }
124 }
125
126 return regionName;
127 }
128
129 @Override
130 public Class<String> getAttributeClass() {
131 return String.class;
132 }
133
134 @Override
135 public Class<Organization> getTypeClass() {
136 return Organization.class;
137 }
138
139 };
140
141 public static final Accessor<UserGroupGroupRole, Long>
142 USER_GROUP_GROUP_ROLE_ID_ACCESSOR =
143 new Accessor<UserGroupGroupRole, Long>() {
144
145 @Override
146 public Long get(UserGroupGroupRole userGroupGroupRole) {
147 Role role = RoleLocalServiceUtil.fetchRole(
148 userGroupGroupRole.getRoleId());
149
150 if (role == null) {
151 return 0L;
152 }
153
154 return role.getRoleId();
155 }
156
157 @Override
158 public Class<Long> getAttributeClass() {
159 return Long.class;
160 }
161
162 @Override
163 public Class<UserGroupGroupRole> getTypeClass() {
164 return UserGroupGroupRole.class;
165 }
166
167 };
168
169 public static final Accessor<UserGroupGroupRole, String>
170 USER_GROUP_GROUP_ROLE_TITLE_ACCESSOR =
171 new Accessor<UserGroupGroupRole, String>() {
172
173 @Override
174 public String get(UserGroupGroupRole userGroupGroupRole) {
175 Role role = RoleLocalServiceUtil.fetchRole(
176 userGroupGroupRole.getRoleId());
177
178 if (role == null) {
179 return StringPool.BLANK;
180 }
181
182 return role.getTitle(
183 LocaleThreadLocal.getThemeDisplayLocale());
184 }
185
186 @Override
187 public Class<String> getAttributeClass() {
188 return String.class;
189 }
190
191 @Override
192 public Class<UserGroupGroupRole> getTypeClass() {
193 return UserGroupGroupRole.class;
194 }
195
196 };
197
198 public static final Accessor<UserGroupRole, Long>
199 USER_GROUP_ROLE_ID_ACCESSOR = new Accessor<UserGroupRole, Long>() {
200
201 @Override
202 public Long get(UserGroupRole userGroupRole) {
203 Role role = RoleLocalServiceUtil.fetchRole(
204 userGroupRole.getRoleId());
205
206 if (role == null) {
207 return 0L;
208 }
209
210 return role.getRoleId();
211 }
212
213 @Override
214 public Class<Long> getAttributeClass() {
215 return Long.class;
216 }
217
218 @Override
219 public Class<UserGroupRole> getTypeClass() {
220 return UserGroupRole.class;
221 }
222
223 };
224
225 public static final Accessor<UserGroupRole, String>
226 USER_GROUP_ROLE_TITLE_ACCESSOR = new Accessor<UserGroupRole, String>() {
227
228 @Override
229 public String get(UserGroupRole userGroupRole) {
230 Role role = RoleLocalServiceUtil.fetchRole(
231 userGroupRole.getRoleId());
232
233 if (role == null) {
234 return StringPool.BLANK;
235 }
236
237 return role.getTitle(LocaleThreadLocal.getThemeDisplayLocale());
238 }
239
240 @Override
241 public Class<String> getAttributeClass() {
242 return String.class;
243 }
244
245 @Override
246 public Class<UserGroupRole> getTypeClass() {
247 return UserGroupRole.class;
248 }
249
250 };
251
252 public void addPortletBreadcrumbEntries(
253 Organization organization, HttpServletRequest request,
254 RenderResponse renderResponse)
255 throws Exception;
256
257 public long[] addRequiredRoles(long userId, long[] roleIds)
258 throws PortalException;
259
260 public long[] addRequiredRoles(User user, long[] roleIds)
261 throws PortalException;
262
263 public List<Role> filterGroupRoles(
264 PermissionChecker permissionChecker, long groupId, List<Role> roles)
265 throws PortalException;
266
267 public List<Group> filterGroups(
268 PermissionChecker permissionChecker, List<Group> groups)
269 throws PortalException;
270
271 public List<Organization> filterOrganizations(
272 PermissionChecker permissionChecker,
273 List<Organization> organizations)
274 throws PortalException;
275
276 public List<Role> filterRoles(
277 PermissionChecker permissionChecker, List<Role> roles);
278
279 public long[] filterUnsetGroupUserIds(
280 PermissionChecker permissionChecker, long groupId, long[] userIds)
281 throws PortalException;
282
283 public long[] filterUnsetOrganizationUserIds(
284 PermissionChecker permissionChecker, long organizationId,
285 long[] userIds)
286 throws PortalException;
287
288 public List<UserGroupRole> filterUserGroupRoles(
289 PermissionChecker permissionChecker,
290 List<UserGroupRole> userGroupRoles)
291 throws PortalException;
292
293 public List<UserGroup> filterUserGroups(
294 PermissionChecker permissionChecker, List<UserGroup> userGroups);
295
296 public List<Address> getAddresses(ActionRequest actionRequest);
297
298 public List<Address> getAddresses(
299 ActionRequest actionRequest, List<Address> defaultAddresses);
300
301 public List<EmailAddress> getEmailAddresses(ActionRequest actionRequest);
302
303 public List<EmailAddress> getEmailAddresses(
304 ActionRequest actionRequest, List<EmailAddress> defaultEmailAddresses);
305
306 public long[] getGroupIds(PortletRequest portletRequest)
307 throws PortalException;
308
309 public OrderByComparator<Group> getGroupOrderByComparator(
310 String orderByCol, String orderByType);
311
312 public Long[] getOrganizationIds(List<Organization> organizations);
313
314 public long[] getOrganizationIds(PortletRequest portletRequest)
315 throws PortalException;
316
317 public OrderByComparator<Organization> getOrganizationOrderByComparator(
318 String orderByCol, String orderByType);
319
320 public List<Organization> getOrganizations(Hits hits)
321 throws PortalException;
322
323 public List<OrgLabor> getOrgLabors(ActionRequest actionRequest);
324
325 public List<Phone> getPhones(ActionRequest actionRequest);
326
327 public List<Phone> getPhones(
328 ActionRequest actionRequest, List<Phone> defaultPhones);
329
330 public long[] getRoleIds(PortletRequest portletRequest)
331 throws PortalException;
332
333 public OrderByComparator<Role> getRoleOrderByComparator(
334 String orderByCol, String orderByType);
335
336 public <T> String getUserColumnText(
337 Locale locale, List<? extends T> list, Accessor<T, String> accessor,
338 int count);
339
340 public long[] getUserGroupIds(PortletRequest portletRequest)
341 throws PortalException;
342
343 public OrderByComparator<UserGroup> getUserGroupOrderByComparator(
344 String orderByCol, String orderByType);
345
346 public List<UserGroupRole> getUserGroupRoles(PortletRequest portletRequest)
347 throws PortalException;
348
349 public List<UserGroup> getUserGroups(Hits hits) throws PortalException;
350
351 public OrderByComparator<User> getUserOrderByComparator(
352 String orderByCol, String orderByType);
353
354 public List<User> getUsers(Hits hits) throws PortalException;
355
356 public List<Website> getWebsites(ActionRequest actionRequest);
357
358 public List<Website> getWebsites(
359 ActionRequest actionRequest, List<Website> defaultWebsites);
360
361
366 @Deprecated
367 public boolean hasUpdateEmailAddress(
368 PermissionChecker permissionChecker, User user)
369 throws PortalException;
370
371 public boolean hasUpdateFieldPermission(
372 PermissionChecker permissionChecker, User updatingUser,
373 User updatedUser, String field)
374 throws PortalException;
375
376
381 @Deprecated
382 public boolean hasUpdateFieldPermission(User user, String field)
383 throws PortalException;
384
385
390 @Deprecated
391 public boolean hasUpdateScreenName(
392 PermissionChecker permissionChecker, User user)
393 throws PortalException;
394
395 public long[] removeRequiredRoles(long userId, long[] roleIds)
396 throws PortalException;
397
398 public long[] removeRequiredRoles(User user, long[] roleIds)
399 throws PortalException;
400
401 public void updateAddresses(
402 String className, long classPK, List<Address> addresses)
403 throws PortalException;
404
405 public void updateEmailAddresses(
406 String className, long classPK, List<EmailAddress> emailAddresses)
407 throws PortalException;
408
409 public void updateOrgLabors(long classPK, List<OrgLabor> orgLabors)
410 throws PortalException;
411
412 public void updatePhones(String className, long classPK, List<Phone> phones)
413 throws PortalException;
414
415 public void updateWebsites(
416 String className, long classPK, List<Website> websites)
417 throws PortalException;
418
419 }