001
014
015 package com.liferay.portlet.usersadmin.util;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.language.LanguageUtil;
020 import com.liferay.portal.kernel.search.Hits;
021 import com.liferay.portal.kernel.util.Accessor;
022 import com.liferay.portal.kernel.util.LocaleThreadLocal;
023 import com.liferay.portal.kernel.util.OrderByComparator;
024 import com.liferay.portal.kernel.util.StringPool;
025 import com.liferay.portal.kernel.util.Tuple;
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 public interface UsersAdmin {
061
062 public static final String CUSTOM_QUESTION = "write-my-own-question";
063
064 public static final Accessor<Organization, String>
065 ORGANIZATION_COUNTRY_NAME_ACCESSOR =
066 new Accessor<Organization, String>() {
067
068 @Override
069 public String get(Organization organization) {
070 Address address = organization.getAddress();
071
072 Country country = address.getCountry();
073
074 String countryName = country.getName(
075 LocaleThreadLocal.getThemeDisplayLocale());
076
077 if (Validator.isNull(countryName)) {
078 try {
079 country = CountryServiceUtil.fetchCountry(
080 organization.getCountryId());
081
082 if (country != null) {
083 countryName = country.getName(
084 LocaleThreadLocal.getThemeDisplayLocale());
085 }
086 }
087 catch (SystemException se) {
088 }
089 }
090
091 return countryName;
092 }
093
094 };
095
096 public static final Accessor<Organization, String>
097 ORGANIZATION_REGION_NAME_ACCESSOR =
098 new Accessor<Organization, String>() {
099
100 @Override
101 public String get(Organization organization) {
102 Address address = organization.getAddress();
103
104 Region region = address.getRegion();
105
106 String regionName = region.getName();
107
108 if (Validator.isNull(regionName)) {
109 try {
110 region = RegionServiceUtil.fetchRegion(
111 organization.getRegionId());
112
113 if (region != null) {
114 regionName = LanguageUtil.get(
115 LocaleThreadLocal.getThemeDisplayLocale(),
116 region.getName());
117 }
118 }
119 catch (SystemException se) {
120 }
121 }
122
123 return regionName;
124 }
125
126 };
127
128 public static final Accessor<UserGroupGroupRole, String>
129 USER_GROUP_GROUP_ROLE_TITLE_ACCESSOR =
130 new Accessor<UserGroupGroupRole, String>() {
131
132 @Override
133 public String get(UserGroupGroupRole userGroupGroupRole) {
134 try {
135 Role role = RoleLocalServiceUtil.fetchRole(
136 userGroupGroupRole.getRoleId());
137
138 if (role == null) {
139 return StringPool.BLANK;
140 }
141
142 return role.getTitle(
143 LocaleThreadLocal.getThemeDisplayLocale());
144 }
145 catch (SystemException se) {
146 return StringPool.BLANK;
147 }
148 }
149
150 };
151
152 public static final Accessor<UserGroupRole, String>
153 USER_GROUP_ROLE_TITLE_ACCESSOR =
154 new Accessor<UserGroupRole, String>() {
155
156 @Override
157 public String get(UserGroupRole userGroupRole) {
158 try {
159 Role role = RoleLocalServiceUtil.fetchRole(
160 userGroupRole.getRoleId());
161
162 if (role == null) {
163 return StringPool.BLANK;
164 }
165
166 return role.getTitle(
167 LocaleThreadLocal.getThemeDisplayLocale());
168 }
169 catch (SystemException se) {
170 return StringPool.BLANK;
171 }
172 }
173
174 };
175
176 public void addPortletBreadcrumbEntries(
177 Organization organization, HttpServletRequest request,
178 RenderResponse renderResponse)
179 throws Exception;
180
181 public long[] addRequiredRoles(long userId, long[] roleIds)
182 throws PortalException, SystemException;
183
184 public long[] addRequiredRoles(User user, long[] roleIds)
185 throws PortalException, SystemException;
186
187 public List<Role> filterGroupRoles(
188 PermissionChecker permissionChecker, long groupId, List<Role> roles)
189 throws PortalException, SystemException;
190
191 public List<Group> filterGroups(
192 PermissionChecker permissionChecker, List<Group> groups)
193 throws PortalException, SystemException;
194
195 public List<Organization> filterOrganizations(
196 PermissionChecker permissionChecker,
197 List<Organization> organizations)
198 throws PortalException, SystemException;
199
200 public List<Role> filterRoles(
201 PermissionChecker permissionChecker, List<Role> roles);
202
203 public long[] filterUnsetGroupUserIds(
204 PermissionChecker permissionChecker, long groupId, long[] userIds)
205 throws PortalException, SystemException;
206
207 public long[] filterUnsetOrganizationUserIds(
208 PermissionChecker permissionChecker, long organizationId,
209 long[] userIds)
210 throws PortalException, SystemException;
211
212 public List<UserGroupRole> filterUserGroupRoles(
213 PermissionChecker permissionChecker,
214 List<UserGroupRole> userGroupRoles)
215 throws PortalException, SystemException;
216
217 public List<UserGroup> filterUserGroups(
218 PermissionChecker permissionChecker, List<UserGroup> userGroups);
219
220 public List<Address> getAddresses(ActionRequest actionRequest);
221
222 public List<Address> getAddresses(
223 ActionRequest actionRequest, List<Address> defaultAddresses);
224
225 public List<EmailAddress> getEmailAddresses(ActionRequest actionRequest);
226
227 public List<EmailAddress> getEmailAddresses(
228 ActionRequest actionRequest, List<EmailAddress> defaultEmailAddresses);
229
230 public long[] getGroupIds(PortletRequest portletRequest)
231 throws PortalException, SystemException;
232
233 public OrderByComparator getGroupOrderByComparator(
234 String orderByCol, String orderByType);
235
236 public Long[] getOrganizationIds(List<Organization> organizations);
237
238 public long[] getOrganizationIds(PortletRequest portletRequest)
239 throws PortalException, SystemException;
240
241 public OrderByComparator getOrganizationOrderByComparator(
242 String orderByCol, String orderByType);
243
244 public Tuple getOrganizations(Hits hits)
245 throws PortalException, SystemException;
246
247 public List<OrgLabor> getOrgLabors(ActionRequest actionRequest);
248
249 public List<Phone> getPhones(ActionRequest actionRequest);
250
251 public List<Phone> getPhones(
252 ActionRequest actionRequest, List<Phone> defaultPhones);
253
254 public long[] getRoleIds(PortletRequest portletRequest)
255 throws PortalException, SystemException;
256
257 public OrderByComparator getRoleOrderByComparator(
258 String orderByCol, String orderByType);
259
260 public <T> String getUserColumnText(
261 Locale locale, List<T> list, Accessor<T, String> accessor, int count);
262
263 public long[] getUserGroupIds(PortletRequest portletRequest)
264 throws PortalException, SystemException;
265
266 public OrderByComparator getUserGroupOrderByComparator(
267 String orderByCol, String orderByType);
268
269 public List<UserGroupRole> getUserGroupRoles(PortletRequest portletRequest)
270 throws PortalException, SystemException;
271
272 public Tuple getUserGroups(Hits hits)
273 throws PortalException, SystemException;
274
275 public OrderByComparator getUserOrderByComparator(
276 String orderByCol, String orderByType);
277
278 public Tuple getUsers(Hits hits) throws PortalException, SystemException;
279
280 public List<Website> getWebsites(ActionRequest actionRequest);
281
282 public List<Website> getWebsites(
283 ActionRequest actionRequest, List<Website> defaultWebsites);
284
285
290 public boolean hasUpdateEmailAddress(
291 PermissionChecker permissionChecker, User user)
292 throws PortalException, SystemException;
293
294 public boolean hasUpdateFieldPermission(
295 PermissionChecker permissionChecker, User updatingUser,
296 User updatedUser, String field)
297 throws PortalException, SystemException;
298
299
304 @Deprecated
305 public boolean hasUpdateFieldPermission(User user, String field)
306 throws PortalException, SystemException;
307
308
313 public boolean hasUpdateScreenName(
314 PermissionChecker permissionChecker, User user)
315 throws PortalException, SystemException;
316
317 public long[] removeRequiredRoles(long userId, long[] roleIds)
318 throws PortalException, SystemException;
319
320 public long[] removeRequiredRoles(User user, long[] roleIds)
321 throws PortalException, SystemException;
322
323 public void updateAddresses(
324 String className, long classPK, List<Address> addresses)
325 throws PortalException, SystemException;
326
327 public void updateEmailAddresses(
328 String className, long classPK, List<EmailAddress> emailAddresses)
329 throws PortalException, SystemException;
330
331 public void updateOrgLabors(long classPK, List<OrgLabor> orgLabors)
332 throws PortalException, SystemException;
333
334 public void updatePhones(String className, long classPK, List<Phone> phones)
335 throws PortalException, SystemException;
336
337 public void updateWebsites(
338 String className, long classPK, List<Website> websites)
339 throws PortalException, SystemException;
340
341 }