KB knowledge base is not entertaining HR criteria at all whereas when you use User Criteria directly, it works fine.
Steps to Reproduce
- Add a new HR Criteria, Test HR criteria, add a condition, location > San Diego.
2. Now pick any knowledge base for ex: IT, add Test HR criteria to it.
3. Now pick any user whose location is not San Diego, login as the user and go to SP portal, search for 'network', notice it'll return articles from IT knowldege base (ex: How to confirm VPN for apple devices.)
When you add user critera to knowledge base instead of HR critera, it works fine.
Fresh Steps to replicate:
Login with admin
Create UserA [Simran S] – Home Country India.
Create UserB [Sidd S] – Home Country USA
Create UserC [Samarth S] – Home Country UK
Given role=sn_hr_sp.employee to all the 3 users.
Create 3 HR Criterias, IN Home Country HR Scope, US Home Country HR Scope, UK Home Country HR Scope. IN all these 3 HR Criterias, Table= sn_hr_core_profile, Colume= User. Condition = Home Country is India [for other 2 give US and UK respectively].
Go to Knowledge Bases
For Knowledge Base= Human Resource General Knowledge,
set Can Contribute = IN Home Country HR Scope
set Can Not Read = US Home Country HR Scope, UK Home Country HR Scope
[By this setting we are essentially saying that any article in this KB should be accessible to UserA, BUT UserB and UserC should NOT be able to view any article in this KB].
Clear cache [http://10.11.88.10:16001/cache.do]
Login as Admin.
Impersonate UserC [ie Samarth S]
Go to Knowledge Module, you'll see the error "Execute operation on script include 'hr_Criteria' from scope 'Global' was denied because the source could not be found. Please contact the application admin."
You can modify the "Caller Access" of Script Include "hr_Criteria" from "Caller Restriction" to "None"
Related Problem: PRB1259107