How do I find the current user and its properties?
Use a combination of PortletContextUtil and Properties to extract the current user and its properties.
Published: 2024-09-26
In order to get the current user (as a JCR Node) the method getCurrentUser of PortletContextUtil is used.
To extract properties from a node in Sitevision either Properties or PropertyUtil can be used. This example will use Properties.
Step 1 - Get instances of utilities
For WebApp/RESTApp - use import:
js
import portletContextUtil from '@sitevision/api/server/PortletContextUtil';
import properties from '@sitevision/api/server/Properties';
For Script module - use require:
js
const portletContextUtil = require('PortletContextUtil');
const properties = require('Properties');
Step 2 - Make use of the utilities
js
// Get the current user (JCR Node)
const currentUser = portletContextUtil.getCurrentUser();
// Get a single property
const currentUserMail = properties.get(currentUser, 'mail');
// Get a number of properties as an object
const currentUserData = properties.get(
currentUser,
'displayName',
'mail',
'telephoneNumber',
'title'
);
/*
currentUserData will be an object:
{
displayName: 'Anna Andersson',
mail: 'anna.andersson@mail.com',
telephoneNumber: '0123456789',
title: 'Key account manager'
}
*/
Regarding properties
What properties there is to extract from each node type is documented on the node types page.
Note regarding user types
In Sitevision there are 3 types of users:
Note that available properties vary between the user types. If a property which is not available for the user type is being requested, null will be returned.