Senior Sitecore Developer
Mastering Multilingualism: How Sitecore Security Roles can Shape Content Access by Language
Sitecore natively supports the presentation of content in multiple languages while maintaining multiple versions of content for each language. While this feature opens doors to global outreach, it also presents challenges in managing content seamlessly across languages and diverse teams.
An organization has several content managers for different languages of the content, so how do we ensure that each content manager can only access the language they need to prevent accidental updates across language content?
Answer: We can restrict access to content using security roles.
This solution works best during the setup of the multilingual sites and roles, which requires creating individual roles for each installed language and assigning language read/write permissions accordingly (e.g., the Spanish language role would only have the language read and language write permissions selected for the Spanish language). You would then modify the “sitecore/Everyone” role to remove the Language Read and Language Write permissions except for the default language. Depending on the solution you may set certain language permissions differently here.
You may receive a request to restrict content access/publishing by language on an existing multilingual Sitecore solution. This can be challenging if there are already several security roles in place for many content managers. In this instance, we can create roles to restrict languages. We will not modify the “sitecore/Everyone” role, but we will create roles with permissions for one language and restrict access for the other languages.
Step 1: Open the Role Manager and create a new role for each installed language. Name each role distinctively for the language it will be used for (e.g., Japanese Content Restriction)
Step 2: Open one of your newly created roles in the Security Editor. Select “Columns” and ensure the “Language Read” and “Language Write” columns are selected. Click OK.
Step 3: Navigate to Sitecore/System/Languages. Select the red “✕” for the Language Read and Language Write properties to disable them for all languages.
Step 4: Navigate to Sitecore/System/Languages/(language-LANGUAGE) and select the green “✓” for the Language Read and Language Write properties to enable them for the desired language.
Step 5: Repeat steps 2-5 for each installed language.
Now, in order to restrict a user to a specific language, you only need to add the specific language content restriction role to their profile in the User Manager. They will only see the languages they have access to in the language selector dropdown and Publish Item dialog window.
Multiple language roles may be added to a profile if access to more than one language is needed.
Note: Shared fields will still be a concern across language versions. Make sure that updates to these shared fields are communicated across teams to avoid accidental overrides and/or publishes.
The implementation of language-specific content restrictions through security roles is a powerful solution in mastering the intricacies of multilingual content management with Sitecore. Whether establishing roles during initial setup or retrofitting into existing systems, the two proposed solutions empower organizations to grant content managers precise access to their designated languages. The step-by-step processes outlined facilitate seamless navigation within Sitecore's security structures. However, vigilance remains key, particularly in managing shared fields to prevent inadvertent overrides. By embracing these strategies, organizations unlock a streamlined approach to multilingual content governance, enhancing efficiency and precision in a global context.