Chuck Tomasi
Tera Patron

The best practice is to grant access to modules/menus by role. This is much more efficient as roles are cached during the user's session - that's why you need to logout/login when given new roles. Using a script means you are imposing a load on the system where caching is not involved and could cause performance issues. What's more, later administrators may find your script difficult to find and/or maintain.


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