For the most part, homepage administration in ServiceNow is pretty simple. The basic concepts (which are documented on the ServiceNow wiki) are almost always enough to get by on. There are a couple of homepage administration situations that I’ve seen come up quite often that aren’t as easily understood. In this article I’ll describe the following situations and show you how to deal with them in your ServiceNow implementation.
- How can I give ESS users (users with no role) access to more than one homepage?
- How can I restrict roled users (itil, etc.) from modifying, adding, or deleting homepages?
How can I give ESS users (users with no role) access to more than one homepage?
The standard homepage setup in ServiceNow allows ESS users (users with no roles) to view a single homepage. This will be the first homepage the system sees that uses the ‘ess’ view. This makes for much easier administration and there’s typically no need for an additional homepage for end users (especially since they have access to the Service Catalog homepage as well).
I learned from Kenny Caldwell that it is possible to allow ESS users to see additional homepages though. The single-page restriction is imposed by an AJAX Script called ‘Home Scripts’. To allow users to view more than one homepage, take the following steps.
- Navigate to the ‘AJAX Scripts’ table by typing ‘sys_script_ajax.list’ in your left navigation filter and de-activate the ‘Home Scripts’ record. This removes the single-page restriction, but it doesn’t necessarily make additional homepages available to your end users.
- Navigate to ‘Homepage Admin -> Pages’ and remove the contents of the ‘Read roles’ and ‘User’ fields on the homepage you want to make available to ESS users.
- Create a link for your users to access the homepage by. You can do this by creating a new module pointing to the new homepage view like this…
You can also make the homepage show up in a list of available pages when users hover over the ‘Home’ icon in the top-right corner of the browser. To do this, you’ll need to make sure the ‘Selectable’ checkbox is checked in the homepage definition. Then you’ll need to open up the ‘getUserHomepages’ global business rule and comment out these lines at the top of the script…if (!gs.getUser().hasRoles())
How can I restrict roled users (itil, etc.) from modifying, adding, or deleting homepages?
I’ve worked with other clients who wanted to do almost the reverse of what I’ve outlined above. Instead of giving ESS users more capabilities in homepages, they want to ensure that technicians (or some other users with roles) cannot modify existing homepages or create their own homepages. This customization is actually much simpler because it leverages a system property to disable the homepage options.
The ‘glide.home.add_content.role’ system property can be used to remove any of the ‘Add Content’ options from the homepages. You simply add a comma-separated list of roles that should be able to modify homepages. While this is very simple, it’s also important to note that this is an ALL OR NOTHING customization for given roles. You can’t lock down a page here or a page there.