package at.nonblocking.portlet.angularjs.service; import at.nonblocking.portlet.angularjs.model.User; import at.nonblocking.portlet.angularjs.model.UserDetail; import at.nonblocking.portlet.angularjs.model.UserList; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.model.Role; import com.liferay.portal.model.UserGroup; import com.liferay.portal.service.UserLocalService; import com.liferay.portal.service.UserLocalServiceUtil; import org.apache.commons.lang3.StringUtils; import javax.inject.Named; import java.util.ArrayList; import java.util.List; @Named public class UserServiceImpl implements UserService { private UserLocalService liferayUserService; public UserServiceImpl(UserLocalService liferayUserService) { this.liferayUserService = liferayUserService; } public UserServiceImpl() { this(UserLocalServiceUtil.getService()); } @Override public UserList getPortalUserList(int startIndex, int limit) throws SystemException { int usersTotal = this.liferayUserService.getUsersCount(); int start = Math.min(startIndex, usersTotal); int end = Math.min(startIndex + limit, usersTotal); List<com.liferay.portal.model.User> portalUsers = this.liferayUserService.getUsers(start, end); List<User> users = new ArrayList<>(); for (com.liferay.portal.model.User portalUser : portalUsers) { users.add(new User(portalUser.getUserId(), portalUser.getScreenName(), portalUser.getFirstName(), portalUser.getLastName(), portalUser.getEmailAddress())); } return new UserList(usersTotal, users); } public UserDetail getPortalUserDetail(long userId) throws SystemException, PortalException { com.liferay.portal.model.User liferayUser = this.liferayUserService.getUser(userId); UserDetail userDetail = new UserDetail(); userDetail.setScreenName(liferayUser.getScreenName()); userDetail.setEmailAddress(liferayUser.getEmailAddress()); userDetail.setFirstName(liferayUser.getFirstName()); userDetail.setLastName(liferayUser.getLastName()); userDetail.setLastLoginDate(liferayUser.getLastLoginDate()); userDetail.setLastLoginIp(liferayUser.getLastName()); userDetail.setLanguageId(liferayUser.getLanguageId()); userDetail.setUserGroups(toCommaSeparatedUserGroupList(liferayUser)); userDetail.setRoles(toCommaSeparatedRoleList(liferayUser)); return userDetail; } private String toCommaSeparatedUserGroupList(com.liferay.portal.model.User liferayUser)throws SystemException { List<String> userGroupNames = new ArrayList<>(); for (UserGroup userGroup : liferayUser.getUserGroups()) { userGroupNames.add(userGroup.getName()); } return StringUtils.join(userGroupNames, ","); } private String toCommaSeparatedRoleList(com.liferay.portal.model.User liferayUser)throws SystemException { List<String> roleNames = new ArrayList<>(); for (Role role : liferayUser.getRoles()) { roleNames.add(role.getName()); } return StringUtils.join(roleNames, ","); } }