A while ago a wrote a post about how the SalesLogix web client is restricted for web viewers. Basically a web module bound to the assembly Sage.SalesLogix.Web.Modules.dll is used. In this assembly is a class called WebViewerModule. This class is responsible for manipulating the navigation and menu workspaces at run time and removing buttons if the current user is a web viewer. If we look at the code that controls hiding navigation buttons it looks like this:
for (int i = 0; i < items.Items.Count; i++)
if (((items.Items[i].ID == “navReports”) || (items.Items[i].ID == “navEntitiesLibrary”)) || ((items.Items[i].ID == “navEntitiesProcesses”) || (items.Items[i].ID == “navEntitiesWhatsNew”)))
foreach (NavItem item in list)
The code is looking for navigation buttons with a specific name. Well if we go to the SalesLogix portal definition in the Application Architect (VFS…Portal Manager…Sage SalesLogix in the Project Explorer) and then open the Navigation tab of the Portal dialog, we can simply go to a specific button, like What’s New and change the name as defined in the Item Id field as shown here:
Once we change the button name, and deploy the module no longer impacts this button’s visibility and the web viewer can see the navigation button and go to the What’s New area.
A word of warning on this, while this seems to work properly for the What’s new button to allow a web viewer to use this feature, other areas may have page level code also added for additional restrictions for a web viewer licensed user, so just because you have added functionality to navigate to an area does not ensure that area will properly function.