1 package org.marketchangers.liferay;
2
3 import java.rmi.RemoteException;
4 import java.util.ArrayList;
5 import java.util.Collections;
6 import java.util.Iterator;
7 import java.util.List;
8
9 import org.marketchangers.PortalUser;
10 import org.marketchangers.PortalUserManager;
11
12 import com.liferay.portal.PortalException;
13 import com.liferay.portal.SystemException;
14 import com.liferay.portal.ejb.RoleManager;
15 import com.liferay.portal.ejb.UserRemoteManager;
16 import com.liferay.portal.model.Address;
17 import com.liferay.portal.model.Role;
18 import com.liferay.portal.model.User;
19
20 /***
21 * @author <a href="mailto:mtodd@wc-group.com">Matthew Todd</a>
22 */
23 public class LiferayUserManager implements PortalUserManager {
24 private UserRemoteManager userManager;
25 private RoleManager roleManager;
26
27
28 public LiferayUserManager(
29 UserRemoteManager userManager,
30 RoleManager roleManager) {
31
32 this.userManager = userManager;
33 this.roleManager = roleManager;
34 }
35
36
37 public boolean addRole(String user, String role) {
38 try {
39 return userManager.addRole(user, getRole(role));
40 } catch (Exception e) {
41
42 throw new RuntimeException(e);
43 }
44 }
45
46 public boolean isUserInRole(String user, String role) {
47 try {
48 return userManager.getRoles(user).contains(getRole(role));
49 } catch (Exception e) {
50
51 throw new RuntimeException(e);
52 }
53 }
54
55 public boolean removeRole(String user, String role) {
56 try {
57 return userManager.deleteRole(user, getRole(role));
58 } catch (Exception e) {
59
60 throw new RuntimeException(e);
61 }
62 }
63
64 public PortalUser lookupUserById(String userid) {
65 PortalUser user = null;
66 try {
67 User liferayUser = userManager.getUserById(userid);
68
69 user = convertLiferayUser(liferayUser);
70 } catch (Exception e) {
71
72 throw new RuntimeException(e);
73 }
74
75 return user;
76 }
77
78 public List lookupUsersByRole(String roleName) {
79 List users = new ArrayList();
80 List liferayUsers = Collections.EMPTY_LIST;
81
82 try {
83 liferayUsers =
84 roleManager.getUsers(
85 roleManager.getRoleByName(roleName).getRoleId());
86 Iterator iUsers = (liferayUsers).iterator();
87 while (iUsers.hasNext()) {
88 users.add(convertLiferayUser((User)iUsers.next()));
89 }
90 } catch (Exception e) {
91 users = Collections.EMPTY_LIST;
92
93 e.printStackTrace();
94 }
95
96 return users;
97 }
98
99
100 private Role getRole(String role)
101 throws PortalException, SystemException, RemoteException {
102 return roleManager.getRoleByName(role);
103 }
104
105 private PortalUser convertLiferayUser(User liferayUser)
106 throws PortalException, SystemException {
107 PortalUser user;
108 user = new PortalUser();
109 user.setUserId(liferayUser.getUserId());
110 user.setFullName(liferayUser.getFullName());
111
112
113 List addresses = liferayUser.getAddresses();
114 if ((addresses != null) && (!addresses.isEmpty())) {
115 user.setOrganization(((Address)addresses.get(0)).getDescription());
116 }
117 return user;
118 }
119
120 }