View Javadoc

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  	// ------------------------------------------------------------ Constructor
28  	public LiferayUserManager(
29  		UserRemoteManager userManager,
30  		RoleManager roleManager) {
31  
32  		this.userManager = userManager;
33  		this.roleManager = roleManager;
34  	}
35  
36  	// ---------------------------------------------------- UserRoleManager API
37  	public boolean addRole(String user, String role) {
38  		try {
39  			return userManager.addRole(user, getRole(role));
40  		} catch (Exception e) {
41  			// TODO need fancier exception handling
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  			// TODO need fancier exception handling
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  			// TODO need fancier exception handling
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  			// TODO need fancier exception handling
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  			// TODO need fancier exception handling
93  			e.printStackTrace();
94  		}
95  
96  		return users;
97  	}
98  
99  	// -------------------------------------------------------- Private Methods
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 		//TODO - not sure if address description is right place for organization name
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 }