Yes, per SN recommendation we will use a cost-added role for a user that only needs read access. That sounds efficient. SN clearly does not understand the use-case in these scenarios.

nayanawadhiya1
Kilo Sage

Hey Ankit,



Say Chuck said, give roles to that modules/menus.


Or you can give role to that group and hide on that basis -




if(gs.getUser().isMemberOf('Group_name') && gs.getUser().hasRole('group_role'))


  {


  var car= current.addQuery('title','!=','Self-Service');


  }


View solution in original post

Hey Nayan,



Thanks code working fine and i was facing issue because of cache.


Hi Nayan,



The code is not working for me. This business rule just appears very flaky.



Did you put your codes in the block of


(function executeRule(current, previous /*null when async*/) {



})(current, previous);



In the When to run tab, I just used "before" with "Query" ticked. No other change on this business rule.



I am on Istanbul Patch 5.



Any idea why it's not working?



Cheers


Johnny


My experience with manipulations on sys_app_module before query business rule is really very unfortunate.



ServiceNow caches the menu on the combination of the roles the user has. No way to get different menu for users with matching role set, full stop. If you try to, you end up with unpredictable menus based on the fact, user entitled to what menu content accessed the menu first after the cache got invalidated. A nightmare, never bother with it.