- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-28-2022 03:28 AM
Hi,
The way it works OOB is as below:
1) UI Action calls a Script Include named "KBKnowledgeSNC" where "canRetire" function is defined.
2) Now this function check for below parameters before allowing Retire access:
a) If logged in User has a Role as Admin or has a role as "kcs_contributor" or "kcs_candidate"
b) If Knowledge Versioning is allowed then below parameters are checked:
i) Another Script Include named "KBVersioning" is called where it is checked as below:
ii) If State is Not Published, then Retire button will not be shown
iii) Then theis function is validated "hasAnyElevatedAccess" which basically validates if logged in User is an Admin then Retire will be shown. If Logged in User is a Knowledge Base Owner, if it is then Retire button will be displayed. And also same for Knowledge Base Manager will be able to see Retire button.
c) if Group Ownership at Knowledge article level has been defined then that override and allows access to ownership group
d) If Author has logged in and accessing the article then author will be allowed to retire the article.
e) Final check is made for Revisior which is nothing but the value of user in Revised by field in Knowledge article who is allowed to retire an article.
These many calculations are done before deciding who should have access to retire Knowledge article.
We had a similar requirement and we implemented the below situation to allow ITIL user to retire knowledge article which was easy to implement as well:
1) Create a group say name it as "Knowledge Can Retire" where only selected Fulfiller will be added by Knowledge manager who will have ability to retire the article and not all fulfillers having the ability to retire it.
So Create a Group and add "itil" tole to it and add the required Group members .
Finally update the condition of UI Action of Retire as below:
!(new KBCommon().isStackNameDialog()) && ((new KBKnowledge().canRetire(current)) || gs.getUser().isMemberOf('Knowledge Can Retire'))
Hope this helps. Please mark the answer as correct/helpful based on impact.
Regards,
Shloke