Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-20-2026 12:00 AM
Hi @Sachithananda 1 ,
if you want to customize it
there is a OOB script include named "KBKnowledgeKeyword"
update the script include as below
if it's already updated in your instance just update the methods as highlighted
KBKnowledgeKeyword = Class.create();
KBKnowledgeKeyword.prototype = Object.extendsObject(KBKnowledgeKeywordSNC, {
/**
* If the user is a owner/ manager of the KB or knowledge_admin
* they should be able to create kb_knowledge_keyword record
*
* @param GlideRecord: knowledgeKeywordGr
* @return Boolean: can logged in user pin an article
*/
canCreate: function(glideRecord) {
if (gs.hasRole("knowledge_admin"))
return true;
if (glideRecord.getRecordClassName() === "kb_knowledge_keyword" && gs.hasRole('knowledge_manager')) {
return true;
}
//check can create for table list view and for new record from kb_knowledge_keyword
if (glideRecord === null || typeof glideRecord === "undefined" || glideRecord.getRecordClassName() === "kb_knowledge_keyword") {
return new KBKnowledgeBase().isManagerOfAny(gs.getUserID());
}
//check can create for related list view on kb_knowledge_keyword record
var className = glideRecord.getRecordClassName();
if (className == "kb_knowledge" || className.startsWith('kb_template') || className.startsWith('u_kb_template')) {
var kbKnowledgeKeyword = new GlideRecord("kb_knowledge_keyword");
if (kbKnowledgeKeyword.get("knowledge", glideRecord.sys_id))
return false;
return this.isKnowledgeBaseOwner(glideRecord, this.PATH_TO_OWNER_FROM_KNOWLEDGE) || this.isKnowledgeBaseManager(glideRecord, this.PATH_TO_MANAGERS_FROM_KNOWLEDGE);
}
//check can create for related list view on kb_knowledge_base record
if (glideRecord.getRecordClassName() == "kb_knowledge_base") {
return this.isKnowledgeBaseOwner(glideRecord, this.PATH_TO_OWNER_FROM_KB) || this.isKnowledgeBaseManager(glideRecord, this.PATH_TO_MANAGERS_FROM_KB) || gs.hasRole('knowledge_manager');
}
return false;
},
/**
* If the user is knowledge_admin or owner/ manager of the KB
* they should be able to write
*
* @param GlideRecord: knowledgeKeywordGr
* @return Boolean: can logged in user read the record
*/
canWrite: function(knowledgeKeywordGr) {
if (gs.hasRole("knowledge_admin") || gs.hasRole('knowledge_manager'))
return true;
if (knowledgeKeywordGr.isNewRecord())
return this.canCreate(knowledgeKeywordGr);
return (this.isKnowledgeBaseOwner(knowledgeKeywordGr, this.PATH_TO_OWNER) ||
this.isKnowledgeBaseManager(knowledgeKeywordGr, this.PATH_TO_MANAGERS) || gs.hasRole('knowledge_manager'));
},
type: "KBKnowledgeKeyword"
});
additional step
if the record (kb_knowledge_keyword)is not editable
create a DenyUnless ACL like this
and you can ignore the last ACLs that you have created
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya