Visibility for users without profiles

I’m trying to hide select components of users with profiles from users who have not yet set up profiles. But, I can’t because the visibility is set to read the components of the existing profile, not the signed in user.

For example, I want too hide Jane’s email address from Jim, who has not, yet, completed a profile. Once Jim completes his profile, then he should be able to see Jane’s email address. Their profiles would be on the same Google sheet. Has anyone accomplished this?

2 Likes

Take a look at this. I think you can do something very similar. In the end you can use the lookup column in your visibility condition. Only show the component if name is not empty. You can further set up a series of IF statements in the user profile sheet that will set to true if all required profile items are filled in. If one is empty, then return false. You can then use this true/false in the lookup to control the component visibility.

I’ll try it! Thanks!

1 Like

Tried it, but still not working because all the columns are pulling from the existing profile’s row (Jane) rather than the signed in user’s row (Jim). Thanks, tho!

If it’s done correctly it will pull in values for the signed in user and show them in the row of the profile you are viewing. The true/false value that’s determined from Jim’s completed profile will show in Jane’s row when Jim is signed in. If someone else signs in, it will use their true/false value. I’m almost positive this will work for you. If you have any screenshots you can share of all the columns you created for this, we can help determine what’s wrong.

I’ve tried it a million ways including yours. The reason it doesn’t work is because it would require that info input by one user would have to change the info input by another user. The visibility function for most components is based on the profile that is being viewed, not by the signed in user. The only exception is the email which can be set to the signed in user. Component can only be conditioned from the profile being viewed, not from the info of the signed in user.

In my example, Jim is viewing Jane’s profile. Jim’s email makes him the signed in user, but he has not completed a profile so he has no name, pic, etc… in the app. Jane has completed a profile, so she has name, pic, etc… If I want to limit Jim’s ability to see Jane’s email until he completes a profile (i.e. he inputs his name, pic, etc…), the visibility would have to pull info from his row. But it’s actually pulling info from Jane’s row. So “show if Name is not empty” is pulling from Jane, who has a complete profile, not Jim, who has not input his name because he hasn’t completed a profile. The visibility only recognizes Jane’s name because it’s her profile we’re on. I can’t find a relation, lookup, or if-then-else combo that will ignore the profile and base visibility on the signed in user.

In other words, only show component to viewers who possess a certain quality (i.e. who have a “Name”)

Yep, that all sounds exactly like what my posted example does. What it does is creates a column in the user profile sheet that is filled for that one user ONLY when they are signed in. This allows you to create a relation to only that signed in user’s profile from every single row in every single sheet. With access to the signed in user’s profile on every row in every sheet, you can perform actions based on conditions you set within that user’s profile. Again, we could probably identify really quickly what you are missing if there were screenshots. When I have some free time, I’ll create a sample app to demonstrate.

This is the main key to everything working and it will only fill the column for the signed in user if that user is the one that’s signed in. The rest of it is what you put in all the other sheets where you want to control components by signed in user. Only the signed in user’s profile information will be pulled into the other sheets.

Thank you for being so helpful! Looking forward to this working!

1 Like

I’ll send some screen shots shortly

1 Like

Here are the screenshots. I’m not sure where I’m going wrong in the steps. Keep in mind that all of these steps have been taken in the PROFILE sheet.I made another TEMPLATE column in my POSTS sheet, so that’s where the relation is matching. I am trying to make this button visible to people who have emails (signed in users) with profiles only. In the last shot, the signed in user has a profile, but the button is still missing. In the shot before that, the signed in user has no profile and the button is still missing. The visibility is pulling from the viewed profile, not from the signed in user. Thanks for your help!



image
image


Read through this again:

The very first step is the if then column in the profile sheet. Don’t fill it with the persons name, fill it with the word ‘Name’, or ‘Profile’, or anything really. You are filling with the persons actual name which will not allow this to work, because we need a common value for the relation to work. With this step only the signed in user’s profile will have the word ‘Name’ in their profile row.

Next follow the rest of the bulleted items. Again, create the template with the WORD name. Not the actual persons name. Create the relation to link this column with the if/then column. This will build a relation with on every record where the matching row is only the signed in user. Then create the lookup column against the relation and you can pull back the signed in user’s first and last name. This will be the same signed in user’s name on every profile record. You can then build your visibility to check if the lookup first and last name is not empty.

Again, the key here is to build the templates with the word ‘name’. Not the person’s name.

2 Likes

Jeff pls when you can add an example of the to your concepts app seeing as it’s a common query. Tx

1 Like

@Wiz.Wazeer I will consider that. I may need to create a second sign in only version of concepts. I try to keep it Public only so it’s easily accessible and so it doesn’t accumulate user emails as it is an app that can be copied and I don’t want a bunch of other people’s email addresses being copied along with the app. That’s why I try to emulate the functionality of a signed in user the best I can.

The concepts app is getting a little old. I’ve updated a few examples as new features have become available, but it does need some work.

1 Like

It didn’t work, unfortunately. I followed all oft he steps and everything that you described happened. But once I went to do the visibility, it didn’t work. I think it’s because it’s the ACTUAL profile page. Not sure.

Does your relation column have the multiple checkbox selected? It should not be.

No… it’s not checked.

What’s not working with the visibility condition?

It’s still pulling in the profile’s info, not the signed in user. So, it can’t differentiate between a person who has completed a profile and a person who has not.

Can you show me a snippet of all of these additional columns you created in the profile sheet. I don’t need to see the settings for each column. Just some of the data, so I can see what’s going on.