Use an item parameter to implement role-based toolbox filtering
Sitefinity CMS enables you to hide any number of widgets from the toolbox on backend pages from specific users, based on their user roles. Thus, these users do not see the widgets in the toolbox and do not use them.
You hide widgets by creating a new toolbox item parameter, called DisallowedRoles, for any widget and setting a list of roles that do not have permission to use the specific widget.
In this example, you restrict users with roles Author and Editors to use the Image widget. That is, if a user with an Author or Editors role is editing a page in the backend, the image widget is not visible in the toolbox and the user cannot use it on the page.
Create a toolbox item parameter
To set the user roles that do not see the Image widget in the toolbox:
- Navigate to Administration » Settings » Advanced » Toolboxes » Toolboxes » PageControls » Sections » ContentToolboxSection » Tools » ImageControl » Toolbox item parameters.
- Click Create new button and enter the following:
- In the Key input field, enter DisallowedRoles
- In the Value input field, enter the roles, separated by a comma: Authors, Editors
- Save your changes.
Add the DisallowedRoles item in your project
In Visual Studio, add the following code in the Global.asax file of your Sitefinity CMS project and, then, build your project:
In the code above, you get the role of the current user, then go through all widgets and check whether they have a DisallowedRoles property. If the role of the current user is the same as the role specified in the DisallowedRoles property, the user cannot see and use the Image widget.
NOTE: Users with roles different than the one specified in the DisallowedRoles property are able to see the widget on the page.