I have created a new directory service in the portal for our Active Diretory and can see all of the users in that service quite successfully. When i search for a user in the admin console I can see their User Id, First Name, Last Name, Email Address etc…
Now, when I am in a portlet, I would like to gain access to the Email Address property of the user to send mails from that person. Can I use the IContext somehow to get the Email Address attribute for the user? I can see how to get a IUserID and other such interfaces but not sure how to get the email attribute itself.
I am not using WebMethods portlets so please don’t send any WM specific replies
Here is a code snippet:
IContext context = getPortletContext();
IBizPolicyManager bizPolicyManager = (IBizPolicyManager) PortalSystem.getBizPolicyProvider();
IPrincipalAttributeBizPolicy papBizPolicy = (IPrincipalAttributeBizPolicy) bizPolicyManager.getBizPolicy(IBizPolicyNames.PRINCIPAL_ATTRIBUTE);
Map attributes = papBizPolicy.getAllAttributes(context, context.getUserDirectoryURI());
String email = userAttributes.get(“email”);
Apologies, I forgot to reply to this. That worked fine with a couple of minor changes, just in case anyone needs the same:
- the attribute is called mail not email
-getPorletContext() only works in WM Portlets (certainly doesn’t work with Spring Portlets), to get round this use the following which can be found in the java docs:
IContext context = com.webmethods.portal.bizPolicy.impl.ContextFactory
I’m looking for an API to set the user attributes from java program.
I’ve created a database directory service. I create users through a portlet and the user data is reflected in the portal.