In dire need of support…we just launched our new app (kind of like a multi-sided marketplace), but now that we’re live, I’m seeing things work as expected when “previewing as” as a specific user, but seeing something different when I log in as that user. Details below…
The visibility of these tabs are filtered by user role (role = Customer). Everything looks fine in this view as I should be able to see the “View My Quotes” and “Client FAQ” tabs.
However, I created a test user with a personal email. When I log in as that user, I see blank screen. The role for this user is set to ‘Customer’. I can’t understand why this is happening.
Thanks, Jeff. I’m not sure what you mean by “user profile configuration”. Can you clarify? I have a user table (Glide table) where information for users is held, if that’s what you mean.
Is the User table the same table where your customers are stored? I assume so, but just making sure.
Can you verify that the ‘Customer’ value in the Role column doesn’t have any additional spaces, and also double check your tab visibility conditions for any extra spaces.
Jeff, in case it’s helpful…for some reason, all of my ‘Customer’ user roles have been deleted from the table (there was no action taken to do this). What on earth could be causing this to happen?
Estimator enters name/email. Submission creates the user with role of ‘Customer’. This is the ONLY use of the “Role” column that actually writes. There are other relations and lookups, but everything else is a read.
Do you really need Roles for securing data, or just for visibility of certain items? User Profile Role functionality is only useful for securing data through Row Owners. It does seem odd that you are giving each and every customer the same role, which if you used it for row ownership, would grant each customer access to the same data. That doesn’t really make sense to me. If you don’t need it for row ownership, then I would set the Role option in the user profile configuration to nothing. If you still need it only for row ownership for Admin roles, then you really don’t need a Role for each customer and can leave it blank for them. Instead use the Role column only when it applies to row owner columns in your tables, and create a separate role-ish column to be used for tab visibility (which CAN be set wit a Set Column action). Plus, you won’t eat through your Private User quota so quickly.
Thanks, Jeff - really helpful! The only reason I’m using roles is to filter tab visibility. I guess to accomplish this in this scenario, I treat ‘Customer’ as a blank role and filter tabs for when role is empty. All other roles are created in the data table (Contractor, Estimator, Admin). Alternatively, I’ll create an additional column as you’ve suggested if I find any gaps.
As for private users…I’ve not found any workarounds for this but am open to suggestionss. When a customer goes to “view my quotes” they are presented with quotes that are related to themselves (filter data where ‘email’ is ‘signed in user’). Is there a way to filter data to a specific person without them being a private user?
Filter is definitely not a secure method of protecting data. Tech smart customers could still snoop the underlying data of other users. I would still use Row Owners, but instead of asking row owners to a role, you simply apply row owners to a customer email address in the quotes table. If Contractor, Estimator, Admin also need access to the same data, and they still have a Role through user profiles, then you can add 3 additional columns in the quotes table and apply row owners to those columns as well. Then fill each one with Contractor, Estimator, Admin as necessary.
Since you would be using the customer’s email for row owners, then they wouldn’t be considered a private user.