Web.SiteUserInfoList Property gets the UserInfo list of the site collection that contains the Web site.
The following code demonstrates how to get userInfo (including userId
property) by userName:
function getUserInfo(userName,Success,Error)
{
var context = new SP.ClientContext.get_current();
var userInfoList = context.get_web().get_siteUserInfoList();
var query = new SP.CamlQuery();
var viewXml = "<View> \
<Query> \
<Where> \
<Eq><FieldRef Name='UserName' /><Value Type='Text'>" + userName + "</Value></Eq> \
</Where> \
</Query> \
<RowLimit>1</RowLimit> \
</View>";
query.set_viewXml(viewXml);
var items = userInfoList.getItems(query);
context.load(items,'Include(Deleted,Department,EMail,FirstName,ID,IsActive,IsSiteAdmin,JobTitle,LastName,MobilePhone,Name,Notes,Office,Picture,SipAddress,UserName,WebSite,WorkPhone)');
context.executeQueryAsync(function(){
if(items.get_count() > 0) {
var item = items.itemAt(0);
Success(item.get_fieldValues());
}
else {
Success(null);
}
},
Error
);
}
//Usage
getUserInfo('username@tenant.onmicrosoft.com',function(userInfo){
console.log('User Id: ' + userInfo.ID);
},
function(sender,args){
console.log(args.get_message());
});