SEL_User
Class · Group: Selectors
global virtual inherited sharing class SEL_User extends SEL_BaseExtends: SEL_Base
Selector for the User SObject. Provides default field configuration and query methods for User records, including retrieval by ID, role, profile, or other fields, as well as generating aliases and community nicknames.
Example
User currentUser = new SEL_User().getCurrentUser();
User foundUser = new SEL_User().findByUsername('admin@example.com');
List<User> admins = new SEL_User().findActiveByProfileName('System Administrator');
List<User> roleUsers = new SEL_User().findByRoleId(roleIds);Methods
| Method | Description |
|---|---|
| global List<User> findActiveByProfileAndPermissionSetName(String profileName, String permissionSetOrGroupName) | Retrieves active users with the specified profile and permission set or group, using default fields. |
| global List<User> findActiveByProfileName(String profileName) | Retrieves active users with the specified profile name, using default fields. |
| global List<User> findActiveUsers(Integer numberOfUsers) | Retrieves a specified number of active users, using default User fields. |
| global User findByCompanyName(String companyName) | Retrieves a user by their company name, using default User fields. |
| global User findByFederationId(String federationId) | Retrieves a user by their federation ID, using default User fields. |
| global List<User> findByProfileName(Set<String> profileNames) | Retrieves a list of users by their profile names, using default User fields. |
| global List<User> findByRoleId(Set<Id> roleIds) | Retrieves a list of users based on a set of role IDs, using default User fields. |
| global List<User> findByUsername(Set<String> userNames) | Retrieves a list of users by their usernames, using default User fields. |
| global User findByUsername(String username) | Finds a user record by username. |
| global Id findProfileIdByUserId(Id userId) | Retrieves the Profile ID for a specific user. |
| global User findRandomActiveByProfileAndPermissionSetName(String profileName, String permissionSetOrGroupName) | Retrieves a random active user with the specified profile and permission set or group, using default fields. |
| global User findRandomActiveByProfileName(String profileName) | Retrieves a random active user with the specified profile name, using default fields. |
| global String generateAlias(String fullName) | Generates an alias from a user's full name, adhering to the User.Alias field length. |
| global String generateUniqueCommunityNickname(String fullName) | Generates a unique community nickname from a user's full name, checking for existing nicknames. |
| global String generateUniqueCommunityNickname(String fullName, Set<String> existingNicknames) | Generates a unique community nickname from a user's full name, ensuring uniqueness against existing nicknames. |
| global User getCurrentUser() | Retrieves the current user's details using default fields. |
| global virtual override List<String> getFieldPaths() | Returns relationship field paths for User queries. |
| global virtual override List<SObjectField> getFields() | Returns the core SObjectField tokens for User queries. |
| global Boolean isCurrentUserSystemAdmin() | Checks if the current user has the System Administrator profile. |
findActiveByProfileAndPermissionSetName
global List<User> findActiveByProfileAndPermissionSetName(String profileName, String permissionSetOrGroupName)Retrieves active users with the specified profile and permission set or group, using default fields.
Parameters
| Parameter | Type | Description |
|---|---|---|
profileName | String | The name of the profile to filter by. |
permissionSetOrGroupName | String | The name of the permission set or group to filter by. |
Returns User — A list of active User records matching both criteria, or an empty list if none found.
Example
List<User> hrAdmins = new SEL_User().findActiveByProfileAndPermissionSetName('HR Admin', 'HR_Permissions');findActiveByProfileName
global List<User> findActiveByProfileName(String profileName)Retrieves active users with the specified profile name, using default fields.
Parameters
| Parameter | Type | Description |
|---|---|---|
profileName | String | The name of the profile to filter by. |
Returns User — A list of active User records matching the profile, or an empty list if none found.
Example
List<User> admins = new SEL_User().findActiveByProfileName('System Administrator');findActiveUsers
global List<User> findActiveUsers(Integer numberOfUsers)Retrieves a specified number of active users, using default User fields.
Parameters
| Parameter | Type | Description |
|---|---|---|
numberOfUsers | Integer | The maximum number of users to return. |
Returns User — A list of active User records, up to the specified number, or an empty list if none found.
Example
List<User> activeUsers = new SEL_User().findActiveUsers(5);findByCompanyName
global User findByCompanyName(String companyName)Retrieves a user by their company name, using default User fields.
Parameters
| Parameter | Type | Description |
|---|---|---|
companyName | String | The company name to query. |
Returns User — A User record matching the company name, or null if not found.
Example
User testUser = new SEL_User().findByCompanyName('my-test-user-identifier');findByFederationId
global User findByFederationId(String federationId)Retrieves a user by their federation ID, using default User fields.
Parameters
| Parameter | Type | Description |
|---|---|---|
federationId | String | The federation ID to query. |
Returns User — A User record matching the federation ID, or null if not found.
Example
User user = new SEL_User().findByFederationId('fed123456');findByProfileName
global List<User> findByProfileName(Set<String> profileNames)Retrieves a list of users by their profile names, using default User fields.
Parameters
| Parameter | Type | Description |
|---|---|---|
profileNames | Set | The set of profile names to query. |
Returns User — A list of User records matching the profile names, or an empty list if none found.
Example
Set<String> profileNames = new Set<String>{'System Administrator', 'Standard User'};
List<User> users = new SEL_User().findByProfileName(profileNames);findByRoleId
global List<User> findByRoleId(Set<Id> roleIds)Retrieves a list of users based on a set of role IDs, using default User fields.
Parameters
| Parameter | Type | Description |
|---|---|---|
roleIds | Set | The set of role IDs to query. |
Returns User — A list of User records assigned to the specified roles, or an empty list if none found.
Example
Set<Id> roleIds = new Set<Id>{'00E3X00000R1AbC'};
List<User> users = new SEL_User().findByRoleId(roleIds);findByUsername
global List<User> findByUsername(Set<String> userNames)Retrieves a list of users by their usernames, using default User fields.
Parameters
| Parameter | Type | Description |
|---|---|---|
userNames | Set | The set of usernames to query. |
Returns User — A list of User records matching the usernames, or an empty list if none found.
Example
Set<String> userNames = new Set<String>{'test.user@example.com'};
List<User> users = new SEL_User().findByUsername(userNames);global User findByUsername(String username)Finds a user record by username.
Parameters
| Parameter | Type | Description |
|---|---|---|
username | String | The username (email format) to search for |
Returns User — The User record with default fields, or null if not found
Example
User foundUser = new SEL_User().findByUsername('test.user@example.com');findProfileIdByUserId
global Id findProfileIdByUserId(Id userId)Retrieves the Profile ID for a specific user.
Parameters
| Parameter | Type | Description |
|---|---|---|
userId | Id | The user ID to look up |
Returns Id — The user's Profile ID, or null if user not found
Example
Id profileId = new SEL_User().findProfileIdByUserId(someUserId);findRandomActiveByProfileAndPermissionSetName
global User findRandomActiveByProfileAndPermissionSetName(String profileName, String permissionSetOrGroupName)Retrieves a random active user with the specified profile and permission set or group, using default fields.
Parameters
| Parameter | Type | Description |
|---|---|---|
profileName | String | The name of the profile to filter by. |
permissionSetOrGroupName | String | The name of the permission set or group to filter by. |
Returns User — A random active User record matching both criteria, or null if none found.
Example
User randomHrAdmin = new SEL_User().findRandomActiveByProfileAndPermissionSetName('HR Admin', 'HR_Permissions');findRandomActiveByProfileName
global User findRandomActiveByProfileName(String profileName)Retrieves a random active user with the specified profile name, using default fields.
Parameters
| Parameter | Type | Description |
|---|---|---|
profileName | String | The name of the profile to filter by. |
Returns User — A random active User record matching the profile, or null if none found.
Example
User randomAdmin = new SEL_User().findRandomActiveByProfileName('System Administrator');generateAlias
global String generateAlias(String fullName)Generates an alias from a user's full name, adhering to the User.Alias field length.
Parameters
| Parameter | Type | Description |
|---|---|---|
fullName | String | The user's full name (including first, middle, last names, prefixes, or suffixes). |
Returns String — A generated alias string, or an empty string if the input is blank.
Example
String alias = SEL_User.generateAlias('Jason van Thor Bob');generateUniqueCommunityNickname
global String generateUniqueCommunityNickname(String fullName)Generates a unique community nickname from a user's full name, checking for existing nicknames.
Parameters
| Parameter | Type | Description |
|---|---|---|
fullName | String | The user's full name. |
Returns String — A unique community nickname string, or a random name if the input is blank.
Example
String nickname = new SEL_User().generateUniqueCommunityNickname('Billy Bob Thornton');global String generateUniqueCommunityNickname(String fullName, Set<String> existingNicknames)Generates a unique community nickname from a user's full name, ensuring uniqueness against existing nicknames.
Parameters
| Parameter | Type | Description |
|---|---|---|
fullName | String | The user's full name. |
existingNicknames | Set | A set of existing nicknames to check against, or null to ignore. |
Returns String — A unique community nickname string, or a random name if the input is blank.
Example
Set<String> existing = new Set<String>{'BillyBobThornton'};
String nickname = SEL_User.generateUniqueCommunityNickname('Billy Bob Thornton', existing);getCurrentUser
global User getCurrentUser()Retrieves the current user's details using default fields. Caches the result so subsequent calls within the same transaction do not re-query.
Returns User — The User record for the current user, or null if not found.
Example
User currentUser = new SEL_User().getCurrentUser();getFieldPaths
global virtual override List<String> getFieldPaths()Returns relationship field paths for User queries.
Returns String — List of relationship field path strings
Example
SEL_User selector = new SEL_User();
List<String> paths = selector.getFieldPaths();
System.debug('Relationship paths: ' + paths); // ['Profile.Name']getFields
global virtual override List<SObjectField> getFields()Returns the core SObjectField tokens for User queries.
Returns SObjectField — List of User SObjectField tokens
Example
SEL_User selector = new SEL_User();
List<SObjectField> userFields = selector.getFields();
System.debug('User selector has ' + userFields.size() + ' core fields');isCurrentUserSystemAdmin
global Boolean isCurrentUserSystemAdmin()Checks if the current user has the System Administrator profile.
Returns Boolean — True if the current user is a System Administrator, false otherwise.
Example
if(new SEL_User().isCurrentUserSystemAdmin())
{
// Current user is a System Administrator
}Constructors
| Constructor | Description |
|---|---|
| global SEL_User() | Constructs a User selector with the User SObjectType. |
SEL_User()
global SEL_User()Constructs a User selector with the User SObjectType.
Example
SEL_User instance = new SEL_User();