Link Search Menu Expand Document

Hiding a field based on role using a display formula

You can show and hide fields based on formula using JSONATA. For example, if you wanted to only show certain fields based on a setting or some value including role, use this formula:

user.highestRole = 'owner' or user.highestRole = 'author'

in the field settings

image

Aonther example of this is

(user.highestRole = 'owner'  or user.highestRole = 'author')  or $not(user._id in viewers)

where user._id is the user ID of the current logged in user.

In that example, it checks that the user is an owner or author and is not a viewer , this provides additional flexibility to show/hide fields based on viewers, and current logged in user.

You could also check to see if the current user is the creator of the row with user._id = userID , where userID is the user ID of the the user who created the row and user._id is the currently logged in user.

Note, currently, hiding a field does not stop the data being sent to the client from the server. So the data is there, it’s just hidden. So do not use this for security. For security, you’d be better storing the secure data in a separate microapp, which controls the security correctly, and then use “cross app” fields to link them.