Access Users Profile Picture

Christian July 30, 2013

Hello,

I am trying to get the Profile Picture of a user with username "test". I always get an null Pointer Exceptions. My users a generated from a LDAP, so they are listet within the database table cwd_users.

Can anyone help me getting the profile picture. Or is there any possibility to use the User Profile Macro within an Stringbuilder under Java Macro/Plugin development?

Thx in advance

5 answers

1 accepted

0 votes
Answer accepted
Christian August 14, 2013

By using the DefaultUserAccessor it's possible.

ProfilePictureInfo pic = defaultUserAccessor.getUserProfilePicture(accountName);

String pathToImage = pic.getDownloadPath();

0 votes
Jason Nguyen November 18, 2013

How do we instantiate an instance of DefaultUserAccessor? I'm having trouble figuring out what to pass to the the constructor of DefaultUserAccessor.

0 votes
Christian August 4, 2013

further answers?

0 votes
Christian July 30, 2013

Tanks, but I don't use Gravatar.

How do I get a User? I have the username but I don't know how to get the user from Confluence

0 votes
Remigiusz Jackowski
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 30, 2013

Are you trying to create plugin that shows user's profile picture? If you are using Gravatar to host them, you can use e-mail addres and this code:

private String hex(byte[] array) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < array.length; ++i) {
            sb.append(Integer.toHexString((array[i]
                    & 0xFF) | 0x100).substring(1,3));
        }
        return sb.toString();
    }

    private String md5Hex (String message) {
        try {
            MessageDigest md =
                    MessageDigest.getInstance("MD5");
            return hex (md.digest(message.getBytes("CP1252")));
        } catch (NoSuchAlgorithmException e) {
        } catch (UnsupportedEncodingException e) {
        }
        return null;
    }

    private String getAvatarURLByEmail(String sEmail)
    {
        String hash = md5Hex(sEmail);
        return "https://secure.gravatar.com/avatar/"+hash+"?d=mm&s=24";
    }

To get user's email, get User object (or ApplicationUser) and use function .getEmailAddress:

Collection<User> colUsers = UserUtils.getAllUsers();
for (User user: colUsers)
{
    // print this: user.getEmailAddress();
}

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events