Displaying personalized content
Kentico allows you to personalize the displayed content based on the current user.
Checking the permissions of the current user allows only basic personalization. Use Content personalization to achieve more advanced personalization scenarios according to completely custom conditions.
Personalization in short
- If you want to customize content displayed to the users, you need to grant or deny the READ permission to these users and turn on the Check permissions attribute of the appropriate web parts.
- When the user is not authenticated, the system uses a special user Public anonymous User (public).
Example: Personalizing the Products menu
In this example, you will learn how to display the Products section only to members of the Customers and Partners roles and how to display the Smartphones category only to the members of the Partners role.
Creating sample objects
First create object you will work with in this example:
- Open the Roles application.
- Select the Corporate Site from the Sites drop‑down list and create new roles Customers and Partners.
- Open the Users application and and create a new user Customer1 with the following values:
- User name: Customer1
- Full name: Testing Customer
- Enabled: yes (checked)
- Privilege level: None
- Assign the user to the Corporate Site and to the Customers role.
- Create another user Partner1 with the following values:
- User name: Partner1
- Full name: Testing Partner
- Enabled: yes (checked)
- Privilege level: None
- Assign the user to the Corporate Site and to the Partners role.
Assigning document-level permissions
Assign document-level permissions to the created roles:
Navigate to Settings -> Security & Membership and set Check page permissions to All pages.
- This ensures that the security settings assigned in the following steps will be checked for all documents (pages) on the website.
Open the Pages application and select the root of the content tree.
Switch to the Properties -> Security tab.
Add the Public anonymous user (public) user and Customers and Partners roles to the list.
Grant the Read permissions to the user and roles.
- Please note that you must click Save after assigning permissions to each user or role.
Hiding selected child documents
Now hide the product categories from public users:
In the content tree, navigate to /Products/Smartphones and switch to the Properties -> Security tab.
- The permissions that you configured for the root of the content tree are inherited by this document.
Click the Change permission inheritance link to break the inheritance.
In the following dialog, choose Break inheritance and copy parent permissions.
Select the Public Anonymous User (public) and deny the Read permission.
Repeat the previous steps for the Laptops and Tablets page.
Also deny the Smartphones page for the Customers role.
Configuring web parts to check permissions
The permissions are not checked by web parts by default, so we need to configure the web parts so that they check the Read permission of the current user.
- Choose the root in the content tree and switch to the Design tab.
- Configure the Top list menu (CSS list menu) web part and select its Check permissions check-box in the System settings. Click OK.
- Repeat the same for the CSS list menu and Featured products web parts on the /Products page.
Verifying the result
Sign out. If you mouse-over the Products menu item as a public user, you will see that the sub-categories representing the restricted sections are no longer displayed.
Sign in as user Customer1 (using the mini‑form at the top right of the page). Navigate to Products via the main menu. As you can see, the Smartphones section and Smartphone products are not displayed to this user.
Now sign out and sign in again as user Partner1. You will see all categories and products.
You have learned how to personalize the content displayed to users based on their permissions.