Hello,
I'm trying to retrieve the full name of some users from their username. I think the UserUtil interface can do that but I couldn't find how to make it works in my vm file.
My velocity template:
#set($name = $userutil.getUserByName("bla").getDisplayName()) ... $name
Problem: "$name" is displayed but not replaced by the full name.
My atlassian-plugin.xml:
<component-import key="userutil" interface="com.atlassian.jira.user.util.UserUtil" />
JIRA version: v6.3.3
Thanks for your time and your help.
using $userutil assumes that you've got getUserUtil in your webwork action which renders the velocity template.
So you can either expose UserUtil through a getter in the java code or create a method that calls UserUtil and returns the display name:
something like getDisplayName(String user) { return UserUtil.getUserByName(user).getDisplayName()}
and then call it in velocity:
$displayName("bla")
Thanks for your answer,
I didn't do exactly what you wrote but that helped me to understand the existing code I'm working on. I add the method getDisplayName to the utilities class and then, I put an instance of this class in the context map so that I can use it in the velocity template.
Here's my code for people having the same issue:
Utility class:
import com.atlassian.jira.user.UserUtils; ... public String getDisplayName(String username) { return UserUtils.getUser(username).getDisplayName(); } ...
Java class of the plugin:
Utilities utils = new Utilities(); ... contextMap.add("utils", utils);
Velocity template:
$utils.getDisplayName("some username")
Now, it works!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.