Hiding 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


Anther 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 “app”, which controls the security correctly and use “cross app” fields to link them.