List of examples:

Dependency injection

Initialize required services

// Initializes all services and provider classes used within
// the API examples on this page using dependency injection.
private readonly IUserInfoProvider userInfoProvider;
private readonly IRoleInfoProvider roleInfoProvider;
private readonly IUserRoleInfoProvider userRoleProvider;
private readonly IApplicationPermissionInfoProvider applicationPermissionInfoProvider;

public RolesServices(
    IUserInfoProvider userInfoProvider,
    IRoleInfoProvider roleInfoProvider,
    IUserRoleInfoProvider userRoleProvider,
    IApplicationPermissionInfoProvider applicationPermissionInfoProvider)
    this.userInfoProvider = userInfoProvider;
    this.roleInfoProvider = roleInfoProvider;
    this.userRoleProvider = userRoleProvider;
    this.applicationPermissionInfoProvider = applicationPermissionInfoProvider;

> Back to list of examples


Create a role

// Creates a new `RoleInfo` object
RoleInfo newRole = new()
    RoleDisplayName = "New role's display name",

    //  Role's code name. Can contain only alphanumeric characters,
    //  some special characters (_, -, .) and cannot start or end with '.'. 
    //  Cannot be "Administrator".
    RoleName = "New-role-code-name",

    // Role's optional description
    RoleDescription = "New role's description."

// Writes a role in the database

> Back to list of examples

Assign a user to a role

// Example: Assign the "NewUser" user to a "DigitalChannelManager" role

// Retrieves a `RoleInfo` object for the "DigitalChannelManager" role. Use the role's code name.
RoleInfo selectedRoleInfo = roleInfoProvider.Get("DancingGoat.DigitalChannelManager");

// Retrieves a `UserInfo` object for the "NewUser" user. Use the user's code name
UserInfo selectedUserInfo = userInfoProvider.Get("NewUser");

// Creates a `UserRoleInfo` object that represents the assignment
UserRoleInfo newRoleAssignment = new()
    RoleID = selectedRoleInfo.RoleID,
    UserID = selectedUserInfo.UserID

// Writes the user-role relationship to the database

> Back to list of examples

Define application permissions for a specific role

// Example: Add "Update" permission for the "Content hub"
//        application to users with the "DigitalChannelManager" role.

// Prerequisites:
//  1.  Add the following namespace: `using Kentico.Xperience.Admin.Base.UIPages;`.
//  2.  Check the `UI tree` under the `System` application in the Xperience administration
//    for the class that represents the application under "Back-end page definition".
//  3.  Check "Role management" application to see the available permissions for the given application.

// Gets a `RoleInfo` object representing the "DigitalChannelManager" role
RoleInfo selectedRoleInfo = roleInfoProvider.Get("DancingGoat.DigitalChannelManager");

// Gets the `IDENTIFIER` constant for the selected application
string applicationName = Kentico.Xperience.Admin.Base.UIPages.ContentHubApplication.IDENTIFIER;

// Creates an `ApplicationPermissionInfo` object that represents the assignment
ApplicationPermissionInfo newApplicationPermissionRoleAssignment = new()
    RoleID = selectedRoleInfo.RoleID,
    // Use `System.Permissions`.<permission> to set the PermissionName
    PermissionName = SystemPermissions.UPDATE,
    ApplicationName = applicationName

// Writes the application permissions for a specific role to the database

> Back to list of examples