Access to the Unpublished Knowledge Article only to the KB owner or to users having knowledge_admin role
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2020 12:17 PM
Hi Community,
Please help with the query.
I want to restrict the unpublished knowledge articles to the knowledge owner or to users having knowledge_admin role. However, i am not able to achieve this with the following script. I modified the script a bit for both ACL's and QueryBR but with no access.
Before Query BR on kb_knowledge table with condition as Workflow is not Published.
var kbsysid = current.sys_id;
var kbknowledgebase = current.getDisplayValue(kbsysid);
var knowledgebase = new GlideRecord('kb_knowledge_base');
knowledgebase.addQuery('title',kbknowledgebase);
knowledgebase.query();
if(knowledgebase.next()){
var kbowner = knowledgebase.owner;
if((gs.getUser().getID() == kbowner) )
return true; // answer = current.canRead() for ACL
else
return false;
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2020 12:26 PM
try this
var kbsysid = current.sys_id;
var kbowner;
var knowledgebase = new GlideRecord('kb_knowledge_base');
knowledgebase.addQuery('sys_id',kbsysid); //workflow_stateINpublished
knowledgebase.addEncodedQuery('workflow_state!=published');
knowledgebase.query();
if(knowledgebase.next()){
kbowner = knowledgebase.owner;
if((gs.getUserID() == kbowner) )
return true; // answer = current.canRead() for ACL
else
return false;
}
Muhammad
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2020 12:43 PM
Hi Abhinanda,
Write an before Query BR on knowledge table.
When --before
Query -- True
Filter is contion:
Workflow is not Published
(function executeRule(current, previous /*null when async*/) {
current.addQuery('kb_knowledge_base.owner',gs.getUserID());
})(current, previous);
This will show unpublished article to knowledge base owners only.
Mark helpful and correct if it helps.
Thanks,
CB
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2020 02:26 PM
Hi CB ,
Thanks for your quick reply.
However there is a slight new update where I have to show unpublished articles to either owners or users having knowledge_manager role.
Thanks,
Abhi

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2020 02:42 PM
Hi Abhinandan,
try this
current.addEncodedQuery('workflow_state!=published^kb_knowledge_base.owner='+gs.getUserID()+'^OR'+gs.hasRole('knowledge_manager'));
Thanks & Regards,
Sharjeel
Muhammad