1. Scripts

User post-registration script

This example shows a User post-registration web script that is executed after a new user is added to Sitecore Content Hub. It adds the user to a specific user group if the external provider is Google.

Before you begin
  • Configure the user groups or profiles required during the pre-registration process.

  • Create a user group called Google.

  • Ensure schema properties align with the script logic for pre-registration workflows.

Script

using System.Linq;

if (Context.ExternalUserInfo?.Provider != "Google") return;

var query = Query.CreateQuery(entities => 
  from e in entities
  where e.DefinitionName == "Usergroup" && e.Property("GroupName") == "Google"
  select e);

var googleGroupId = await MClient.Querying.SingleIdAsync(query);
if (!googleGroupId.HasValue) throw new InvalidOperationException("Google usergroup not found.");

var relation = await Context.User.GetRelationAsync<IChildToManyParentsRelation>("UserGroupToUser");
relation.Parents.Add(googleGroupId.Value);

await MClient.Entities.SaveAsync(Context.User);

Script explanation

This section steps through the script in execution order, explaining each part. The numbered items describe the sequence, not instructions to perform.

  1. Include necessary libraries.

    using System.Linq;
  2. Check the external user provider. If the provider is not Google, the script exits.

    if (Context.ExternalUserInfo?.Provider != "Google") return;
  3. Create a query that gets the Google user group.

    var query = Query.CreateQuery(entities => 
    from e in entities
    where e.DefinitionName == "Usergroup" && e.Property("GroupName") == "Google"
    select e);
  4. Execute the query to get the Google group ID.

    var googleGroupId = await MClient.Querying.SingleIdAsync(query);
  5. If the user group cannot be found, throw an InvalidOperationException.

    if (!googleGroupId.HasValue) throw new InvalidOperationException("Google usergroup not found.");
  6. Get the user's user group relation.

    var relation = await Context.User.GetRelationAsync<IChildToManyParentsRelation>("UserGroupToUser");
  7. Add the Google group to the user's object via the user group relation.

    relation.Parents.Add(googleGroupId.Value);
  8. Save the user entity.

    await MClient.Entities.SaveAsync(Context.User);

Setup

  • Create, publish, and enable the User post-registration script.

If you have suggestions for improving this article, let us know!