People Functions

Overview

Contains a collection of user and group related Functions and Smart Services as detailed below.

Please note that this plugin contains functions that were previously included in the Group Functions plugin and the User and Group Management Application plug-in.

IMPORTANT: Prior to deploying v1.9 or the latest version of the People Functions plugin, please un-deploy the Group Plugins function and the User And Group Management Application plugin if they are present on your environment.

Deprecated functions and smart service are now included out of the box.

Key Features & Functionality

Functions:

  • getgroupbyname
  • getgroupnames
  • getgrouptypename
  • getgroupsoftype
  • getgroupsoftypefromlist
  • getmembergroups
  • getmembergroupsoftype
  • getModifiedUsersByTimestamp
  • getParentsOfGroups
  • getUsersLastPasswordChange
  • retrieveusersecurityrolemap
  • validateEmailAddress
  • getUsersByUUID
  • getGroupTypeAttributes

Smart Services:

  • Add People As Group Admins
  • Unlock User
Anonymous
Parents
  • Hi, I am trying to replace the deprecated API to the latest one in the Plugin code. In SetUserPreferences function, it uses ServiceLocator to get the UserProfileService. I'm not able to avoid the ServiceLocator since it uses User's service context to fetch the User's UserProfileService instance.
    The UserProfileService from the injunction is specific to the default user(who runs the smart service). Is there is any other way to get the User's UserProfileService using the latest library?

    //get user's service context
    ServiceContext sc = ServiceContextFactory.getServiceContext(ups.getUser(user).getUsername());
    UserProfileService userUps = ServiceLocator.getUserProfileService(sc);			
    
    // get user preference and set locale
    UserPreferences up = buildUserPreferences();
    
    //set user preferences
    userUps.setUserPreferences(up);

Comment
  • Hi, I am trying to replace the deprecated API to the latest one in the Plugin code. In SetUserPreferences function, it uses ServiceLocator to get the UserProfileService. I'm not able to avoid the ServiceLocator since it uses User's service context to fetch the User's UserProfileService instance.
    The UserProfileService from the injunction is specific to the default user(who runs the smart service). Is there is any other way to get the User's UserProfileService using the latest library?

    //get user's service context
    ServiceContext sc = ServiceContextFactory.getServiceContext(ups.getUser(user).getUsername());
    UserProfileService userUps = ServiceLocator.getUserProfileService(sc);			
    
    // get user preference and set locale
    UserPreferences up = buildUserPreferences();
    
    //set user preferences
    userUps.setUserPreferences(up);

Children
  • Thanks Mike - I'll update our internal guidance notes to reflect this position. We're currently on an exercise to refactor code to remove our reliance on fully deprecated plug ins however we do not have to worry too much about elements of a plug in being deprecated.  Cheers Paul. 

  • There isn't an easy way to do this since the deprecated APIs could be used in shared portions of the code and programmatic identification would be difficult.

    I would not worry about the API removal unless the plugin itself is deprecated and replaced with something else (another plugin or OOTB functionality) - there is another HC finding for that, which identifies deprecated plugins.

  • H Mike - as the Healthcheck highlights deprecated API usage as follows : "Plug-ins using deprecated APIs require refactoring to use alternative APIs as they will be removed and stop working in a future release" - is the recommendation for customers to avoid using those particular functions that use said Deprecated API's ?

    If so is there an easy way to flag up those functions ?

    ( I can do it manually by trawling the code in the plug in to see which function / smart service is affected - but would be really handy if the Healthcheck was able to flag it) 

  • Unfortunately, no. There is no way to remove the deprecated method.