The CreatorCon Call for Content is officially open! Get started here.

Restrict checklist from adding and deleting items on catalog task.

Meenal Gharat
Tera Guru

Hi All,

Is there a way to restrict checklist from adding and removing the checklist_items on catalog task?

Only User with Admin role  should able to add and delete checklist_items.

I tried using ACL'S but unable to achieve the expected output.

Any suggestions would be helpful.

 

Thanks and Regards,

Meenal

1 ACCEPTED SOLUTION

Jaspal Singh
Mega Patron
Mega Patron

Hi Meenal,

 

OOB checklist_item can be added to any form that has checklist layout addef it the logged in User is created by for the ticket. If required you will have to modify ACL of type write on checklist_item table that has a scirpt that makes it works for created by User. All you can do is comment the script & make sure the ACL has Admin overrides marked as true.

 

Thanks,

Jaspal Singh

 

Hit Helpful or Correct on the impact of response.

View solution in original post

6 REPLIES 6

Jaspal Singh
Mega Patron
Mega Patron

Hi Meenal,

 

OOB checklist_item can be added to any form that has checklist layout addef it the logged in User is created by for the ticket. If required you will have to modify ACL of type write on checklist_item table that has a scirpt that makes it works for created by User. All you can do is comment the script & make sure the ACL has Admin overrides marked as true.

 

Thanks,

Jaspal Singh

 

Hit Helpful or Correct on the impact of response.

test

Hi Jaspal,

Still the users with ITIL role can edit the checklist.

The user with the ITIL role should only able to check the checkbox.

Only user with admin role should able Add and delete the checklist_item.

dharanikumar
Giga Guru

Hi Meenal,

Please do the following changes in the UI Macro.

UI Macro - inline_checklist_macro
https://<YOUR INSTANCE>.service-now.com/nav_to.do?uri=sys_ui_macro.do?sys_id=33086621c3200200e280dccdf3d3aefb

Code: Please compare and understand the existing code. Place the highlighted lines of code and test it.

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g2:evaluate>
var isBrowserSupported = (GlideVTBCompatibility.getCompatibility() != 'block');
var isNewUI = gs.getProperty('glide.ui.doctype', 'false') == 'true';
var isNewRecord = true;
if (isBrowserSupported $[AMP]$[AMP] isNewUI) {
var sysID = current.getUniqueValue();
var tableName = current.getTableName();
isNewRecord = current.isNewRecord();

// get the checklist ID for this record
var checklistID = null;
var checklist = new GlideRecord("checklist");
checklist.addQuery("document", sysID);
checklist.addQuery("table", tableName);
checklist.query();
if (checklist.next()){
checklistID = checklist.getUniqueValue();
if(gs.hasRole("admin")){
var readOnlyCheck = "false";
}
else{
var readOnlyCheck = "true";
}
}
}
</g2:evaluate>
<body>
<j2:if test="$[!isNewRecord]">
<g:macro_invoke macro="checklist_template" readonly="$[readOnlyCheck]" record="$[sysID]"
table="$[tableName]" checklistid="$[checklistID]"/>
</j2:if>
</body>
</j:jelly>

-Dharani