001
014
015 package com.liferay.portlet.usersadmin.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, String>
142 USER_GROUP_GROUP_ROLE_TITLE_ACCESSOR =
143 new Accessor<UserGroupGroupRole, String>() {
144
145 @Override
146 public String get(UserGroupGroupRole userGroupGroupRole) {
147 Role role = RoleLocalServiceUtil.fetchRole(
148 userGroupGroupRole.getRoleId());
149
150 if (role == null) {
151 return StringPool.BLANK;
152 }
153
154 return role.getTitle(
155 LocaleThreadLocal.getThemeDisplayLocale());
156 }
157
158 @Override
159 public Class<String> getAttributeClass() {
160 return String.class;
161 }
162
163 @Override
164 public Class<UserGroupGroupRole> getTypeClass() {
165 return UserGroupGroupRole.class;
166 }
167
168 };
169
170 public static final Accessor<UserGroupRole, String>
171 USER_GROUP_ROLE_TITLE_ACCESSOR = new Accessor<UserGroupRole, String>() {
172
173 @Override
174 public String get(UserGroupRole userGroupRole) {
175 Role role = RoleLocalServiceUtil.fetchRole(
176 userGroupRole.getRoleId());
177
178 if (role == null) {
179 return StringPool.BLANK;
180 }
181
182 return role.getTitle(LocaleThreadLocal.getThemeDisplayLocale());
183 }
184
185 @Override
186 public Class<String> getAttributeClass() {
187 return String.class;
188 }
189
190 @Override
191 public Class<UserGroupRole> getTypeClass() {
192 return UserGroupRole.class;
193 }
194
195 };
196
197 public void addPortletBreadcrumbEntries(
198 Organization organization, HttpServletRequest request,
199 RenderResponse renderResponse)
200 throws Exception;
201
202 public long[] addRequiredRoles(long userId, long[] roleIds)
203 throws PortalException;
204
205 public long[] addRequiredRoles(User user, long[] roleIds)
206 throws PortalException;
207
208 public List<Role> filterGroupRoles(
209 PermissionChecker permissionChecker, long groupId, List<Role> roles)
210 throws PortalException;
211
212 public List<Group> filterGroups(
213 PermissionChecker permissionChecker, List<Group> groups)
214 throws PortalException;
215
216 public List<Organization> filterOrganizations(
217 PermissionChecker permissionChecker,
218 List<Organization> organizations)
219 throws PortalException;
220
221 public List<Role> filterRoles(
222 PermissionChecker permissionChecker, List<Role> roles);
223
224 public long[] filterUnsetGroupUserIds(
225 PermissionChecker permissionChecker, long groupId, long[] userIds)
226 throws PortalException;
227
228 public long[] filterUnsetOrganizationUserIds(
229 PermissionChecker permissionChecker, long organizationId,
230 long[] userIds)
231 throws PortalException;
232
233 public List<UserGroupRole> filterUserGroupRoles(
234 PermissionChecker permissionChecker,
235 List<UserGroupRole> userGroupRoles)
236 throws PortalException;
237
238 public List<UserGroup> filterUserGroups(
239 PermissionChecker permissionChecker, List<UserGroup> userGroups);
240
241 public List<Address> getAddresses(ActionRequest actionRequest);
242
243 public List<Address> getAddresses(
244 ActionRequest actionRequest, List<Address> defaultAddresses);
245
246 public List<EmailAddress> getEmailAddresses(ActionRequest actionRequest);
247
248 public List<EmailAddress> getEmailAddresses(
249 ActionRequest actionRequest, List<EmailAddress> defaultEmailAddresses);
250
251 public long[] getGroupIds(PortletRequest portletRequest)
252 throws PortalException;
253
254 public OrderByComparator<Group> getGroupOrderByComparator(
255 String orderByCol, String orderByType);
256
257 public Long[] getOrganizationIds(List<Organization> organizations);
258
259 public long[] getOrganizationIds(PortletRequest portletRequest)
260 throws PortalException;
261
262 public OrderByComparator<Organization> getOrganizationOrderByComparator(
263 String orderByCol, String orderByType);
264
265 public List<Organization> getOrganizations(Hits hits)
266 throws PortalException;
267
268 public List<OrgLabor> getOrgLabors(ActionRequest actionRequest);
269
270 public List<Phone> getPhones(ActionRequest actionRequest);
271
272 public List<Phone> getPhones(
273 ActionRequest actionRequest, List<Phone> defaultPhones);
274
275 public long[] getRoleIds(PortletRequest portletRequest)
276 throws PortalException;
277
278 public OrderByComparator<Role> getRoleOrderByComparator(
279 String orderByCol, String orderByType);
280
281 public <T> String getUserColumnText(
282 Locale locale, List<? extends T> list, Accessor<T, String> accessor,
283 int count);
284
285 public long[] getUserGroupIds(PortletRequest portletRequest)
286 throws PortalException;
287
288 public OrderByComparator<UserGroup> getUserGroupOrderByComparator(
289 String orderByCol, String orderByType);
290
291 public List<UserGroupRole> getUserGroupRoles(PortletRequest portletRequest)
292 throws PortalException;
293
294 public List<UserGroup> getUserGroups(Hits hits) throws PortalException;
295
296 public OrderByComparator<User> getUserOrderByComparator(
297 String orderByCol, String orderByType);
298
299 public List<User> getUsers(Hits hits) throws PortalException;
300
301 public List<Website> getWebsites(ActionRequest actionRequest);
302
303 public List<Website> getWebsites(
304 ActionRequest actionRequest, List<Website> defaultWebsites);
305
306
311 @Deprecated
312 public boolean hasUpdateEmailAddress(
313 PermissionChecker permissionChecker, User user)
314 throws PortalException;
315
316 public boolean hasUpdateFieldPermission(
317 PermissionChecker permissionChecker, User updatingUser,
318 User updatedUser, String field)
319 throws PortalException;
320
321
326 @Deprecated
327 public boolean hasUpdateFieldPermission(User user, String field)
328 throws PortalException;
329
330
335 @Deprecated
336 public boolean hasUpdateScreenName(
337 PermissionChecker permissionChecker, User user)
338 throws PortalException;
339
340 public long[] removeRequiredRoles(long userId, long[] roleIds)
341 throws PortalException;
342
343 public long[] removeRequiredRoles(User user, long[] roleIds)
344 throws PortalException;
345
346 public void updateAddresses(
347 String className, long classPK, List<Address> addresses)
348 throws PortalException;
349
350 public void updateEmailAddresses(
351 String className, long classPK, List<EmailAddress> emailAddresses)
352 throws PortalException;
353
354 public void updateOrgLabors(long classPK, List<OrgLabor> orgLabors)
355 throws PortalException;
356
357 public void updatePhones(String className, long classPK, List<Phone> phones)
358 throws PortalException;
359
360 public void updateWebsites(
361 String className, long classPK, List<Website> websites)
362 throws PortalException;
363
364 }