How can we allow certain users to view critical fields while restricting access for others, all within the same application and read-only interface? What’s the best approach to achieve this?
Discussion posts and replies are publicly visible
Hello sanjuktab2257
You could add these people to specific groups and use these groups to determine the visibility. You can call the a!isUserMemberOfGroup() against the loggedInUser in a local and use it in the ShowWhen parameter of your critical fields.
On top of this (and this may not apply in your situation) I would consider if the real thing you are restricting access to the data OR if it's something else such as a user experience thing where different personas or situations benefit from a different UI experience.
I mention this as if it's the data that needs to be controlled I would also add in record level security to ensure you only show the data to the right people. It's another layer (you would still want to have dynamic UI elements) but can be critical in certain situations such as protected data (personal identifying and health data for example).
https://docs.appian.com/suite/help/24.4/record-level-security.html
This is probably the most straightforward way.
If you want to achieve true row level security you could also isolate the sensitive fields in a separate Record Type and secure it with whatever group you choose.
This way, the security will apply anywhere the Record is queried (i.e. Process HQ).
We are currently planning a design for a front interface with two radio buttons, each leading to a completely different application.
Suggestions from Mathieu Drouin and Andrew Hickingbotham will help with the first requirement, while Konduru Chaitanya 's suggestion will address the second requirement. I really appreciate all of your input!
Using a!isUserMemberOfGroup() won't meet my needs, as this function is only useful when users have already been added to a group. I’m aiming to define this for users' current sessions.
a!isUserMemberOfGroup()
Here are the steps I followed:
3. I called this expression from the interface containing the field I want to hide and utilized the showWhen condition.
showWhen
Even when abc logs in, abc can still see the field that should be hidden. I feel like I’m missing something here. Any suggestions or help would be greatly appreciated. Also, is there a way to track how local variables or rule inputs are changing in the backend when a user logs into the application and navigate different fields in the UI?