Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

How can I get a user's info by its email address?

muoji
Level 2
Level 2

How can I get a user's id etc. by its email address in CQ 5.6.1 or up?

1 Accepted Solution
smacdonald2008
Correct answer by
Level 10
Level 10

We have a community article that talks about working with the user manager. This article retrieves users and displays them in a grid control:

[img]UserGrid.png[/img]

This will help you - notice that email is listed as a column. 

See: 

http://helpx.adobe.com/experience-manager/using/using-ajax-requests-display-cq.html

For this workflow - you can get all users then iterate through the result set and compare email. Once you have the user you want -- get the other properties. 

Some people like using User Manager while others like the lower level JCR API. 

View solution in original post

7 Replies
smacdonald2008
Level 10
Level 10

You can use JCR API to search for a node (the node that contains the user information) searching on the email address (which will be a property). Once you have the node -- you can read other properties. 

muoji
Level 2
Level 2

I was hoping like UserManager could have api to do that kind of job.

smacdonald2008
Correct answer by
Level 10
Level 10

We have a community article that talks about working with the user manager. This article retrieves users and displays them in a grid control:

[img]UserGrid.png[/img]

This will help you - notice that email is listed as a column. 

See: 

http://helpx.adobe.com/experience-manager/using/using-ajax-requests-display-cq.html

For this workflow - you can get all users then iterate through the result set and compare email. Once you have the user you want -- get the other properties. 

Some people like using User Manager while others like the lower level JCR API. 

View solution in original post

justin_at_adobe
Employee
Employee

The UserManager does have an API for this, which you should use instead of directly using JCR query - https://dev.day.com/docs/en/cq/current/javadoc/org/apache/jackrabbit/api/security/user/UserManager.h..., java.lang.String, int). The reason this is preferrable is that the the node types used for representing users are technically an implementation detail of the UserManager implementation.

muoji
Level 2
Level 2

Thanks for your reply!

I created a user with email as "myemail@geometrixx.info". Then tried to call this api as this: 

userMgr.findAuthorizables("email", "myemail@geometrixx.info", UserManager.SEARCH_TYPE_USER)

It doesn't return the matched user.

Can you see anything that I did wrong? 

justin_at_adobe
Employee
Employee

The email property is on the profile child node, so you need to do

userMgr.findAuthorizables("email", "myemail@geometrixx.info", UserManager.SEARCH_TYPE_USER)