You do not have permission to see this catalog

TStark
Kilo Sage

I'm having user permissions issues with a Service Portal widget. As administrator I can access the widget on the portal no problem, but for any other user they receive the error: "You do not have permission to see this catalog".  This error message is generated from the Server script and I've done several trial & errors to make sure every other part of the portal is accessible to the same users. Below is the Server Script. Any insight is much appreciated.

 

(function() {

    data.category_id = $sp.getParameter("category_id");
    var page = options.link_target_page;
    
    if (data.category_id) {
        // Does user have permission to see this category?
        var categoryId = '' + data.category_id;
        var categoryJS = new sn_sc.CatCategory(categoryId);
        if (!categoryJS.canView()) {
            data.error = gs.getMessage("You do not have permission to see this category");
            return;
        }
    }
    // No category_id provided - at the root of the Service Catalog
    // So we'll show all top level categories for this catalog
    else {
        data.catalog_id = $sp.getParameter("sys_id") || $sp.getValue('sc_catalog');
        // Does user have permission to see this catalog?
        if (!$sp.canReadRecord("sc_catalog", data.catalog_id)) {
            data.error = "You do not have permission to see this catalog ";
            return;
        }
    }
    
    if (data.category_id) {
        var currentCategory = new GlideRecord('sc_category');
        if (currentCategory.get(data.category_id)) {
            data.category_title = currentCategory.title.toString();
            data.category_desc = currentCategory.description.toString();
        }
    }
    
    var items = data.items = [];
    var cat = new GlideRecord('sc_category');
    if (data.category_id) {
        cat.addQuery('parent',data.category_id);
    }
    else {
        cat.addQuery('sc_catalog',data.catalog_id)
        cat.addEncodedQuery('parentISEMPTY');
    }
    cat.addQuery('active','true');
    cat.orderBy('title');
    cat.query();
    while (cat.next()) {
        
        // Does user have permission to see this category?
        var catId = '' + cat.sys_id;
        var catJS = new sn_sc.CatCategory(catId);
        if (!catJS.canView()) {
            continue;
        }
        
        var item = {};
        $sp.getRecordDisplayValues(item, cat, 'title,description,homepage_image,sys_id');
        item.sys_class_name = cat.sys_class_name + "";
        item.page = page;
        items.push(item);
        
    }
})()

 

 

1 ACCEPTED SOLUTION

I figured it out. At first I didn't know exactly what to comment out, but with more trial & error I was able to get it working by commenting out the specific code as display in the screenshot below. Thanks for your assistance on this Pranesh.

 

find_real_file.png

View solution in original post

17 REPLIES 17

See below. I've also provided admin access details for you.

* SP page that includes the widget: https://dev100713.service-now.com/sp?id=sc_category

* Admin Access:

->  pranesh
->  user.do%3Fsys_id%3D

this is OOB page and widget

find_real_file.png

I figured it out. At first I didn't know exactly what to comment out, but with more trial & error I was able to get it working by commenting out the specific code as display in the screenshot below. Thanks for your assistance on this Pranesh.

 

find_real_file.png