How do I get user info from userID

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Active Member II

How do I get user info from userID

Jump to solution

I have been researching and found out that this is the best way to current usr info from activiti DB. However, it comes out to be null.

This is my code..

First, I get userID

List<IdentityLink> identityLink = processEngine.getRuntimeService().getIdentityLinksForProcessInstance(processID);

Iterating through this I get userID

if (identityLink != null){

                    for (IdentityLink link : identityLink){
                        userID = link.getUserId();
                        logger.info("getProjectID:  userID ==== is " + userID);
                    }
                }else{
                    logger.info("getProjectID: userID is NULL ");
                }

Now I try to get userinfo, this is null.. Can someone help?

User user = processEngine.getIdentityService().createUserQuery().userId(userID).singleResult();

if (user !=null){    
                    logger.info("FirstName ======= " + user.getFirstName() );

                    logger.info("LastName ======= " + user.getLastName() );

                    logger.info("Email ======= " + user.getEmail() );

                    logger.info("Password  ======= " + user.getPassword() );
                }else{
                    logger.info("user  is ......................... NULL ");
                }

1 Solution

Accepted Solutions
Highlighted
Senior Member II

Re: How do I get user info from userID

Jump to solution

Yeah, now it makes sense. When you add an attach file option in the form, the next task will turn async. That means it is no longer executed under the logged in user context! Hence you get null. Try executing your logic from an execution listener attached to the start activity or on the sequence flow if you really need the user context. It is not a bug, it is working as designed.

View solution in original post

15 Replies
Highlighted
Active Member II

Re: How do I get user info from userID

Jump to solution

btw,

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

Highlighted
Active Member II

Re: How do I get user info from userID

Jump to solution

This returns null as well..

List<String> userInfos = processEngine.getIdentityService().getUserInfoKeys(userID);

Highlighted
Senior Member II

Re: How do I get user info from userID

Jump to solution

which version are you using? The Community version or the Enterprise version (Alfresco Process Services)?

Highlighted
Active Member II

Re: How do I get user info from userID

Jump to solution

Thanks for the response.

I was developing on community but server is enterprise. I have now switched development to Enterprise and using this command to retrieve userinfo but it still throws  null pointer.. I have following in my file

import com.activiti.service.api.UserService;

@Autowired
 static UserService userService;

User user = userService.findUser(Long.parseLong(userID)); (Getting UserID from IdentityLink code above.

Highlighted
Active Member II

Re: How do I get user info from userID

Jump to solution

import com.activiti.domain.idm.User;

Highlighted
Senior Member II

Re: How do I get user info from userID

Jump to solution

yeah, if server is enterprise, you need to use the enterprise apis. The identity implementation in Alfresco Process Services is different from what is available in the core engine. Hence it is returning null (as per your original post) when you try to use the core engine apis

Highlighted
Active Member II

Re: How do I get user info from userID

Jump to solution

I am now using enterprise .. do you know which API can give me userinfo

I saw similar post ..

How to get user firstname and lastname in a generated document 

but haven't had any luck yet

Highlighted
Senior Member II

Re: How do I get user info from userID

Jump to solution

Are you looking to get a user who is currently logged id? If yes, you can use the following.


com.activiti.domain.idm.User currentUser = SecurityUtils.getCurrentUserObject();  This page has an example - Custom REST endpoints | Alfresco Documentation 

Highlighted
Active Member II

Re: How do I get user info from userID

Jump to solution

Yes, I am looking for current logged in user.. Thanks ! . Let me try this