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.
-
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.
-
Include necessary libraries.
RequestResponseusing System.Linq; -
Check the external user provider. If the provider is not
Google, the script exits.RequestResponseif (Context.ExternalUserInfo?.Provider != "Google") return; -
Create a query that gets the Google user group.
RequestResponsevar query = Query.CreateQuery(entities => from e in entities where e.DefinitionName == "Usergroup" && e.Property("GroupName") == "Google" select e); -
Execute the query to get the Google group ID.
RequestResponsevar googleGroupId = await MClient.Querying.SingleIdAsync(query); -
If the user group cannot be found, throw an
InvalidOperationException.RequestResponseif (!googleGroupId.HasValue) throw new InvalidOperationException("Google usergroup not found."); -
Get the user's user group relation.
RequestResponsevar relation = await Context.User.GetRelationAsync<IChildToManyParentsRelation>("UserGroupToUser"); -
Add the Google group to the user's object via the user group relation.
RequestResponserelation.Parents.Add(googleGroupId.Value); -
Save the user entity.
RequestResponseawait MClient.Entities.SaveAsync(Context.User);
Setup
-
Create, publish, and enable the User post-registration script.